基于漏桶(Leaky bucket)与令牌桶(Token bucket)算法的流量控制
互联网服务赖以生存的根本是流量, 产品和运营会经常通过各种方式来为应用倒流,比如淘宝的双十一等,如何让系统在处理高并发的同时还是保证自身系统的稳定,通常在最短时间内提高并发的做法就是加机器,但是如果机器不够怎么办?那就需要做业务降级或系统限流,流量控制中用的比较多的两个算法就是漏桶和令牌桶.
低噪声、高可扫读;标题、摘要、来源、标签一目了然。
采集自各技术站点的近期文章。
互联网服务赖以生存的根本是流量, 产品和运营会经常通过各种方式来为应用倒流,比如淘宝的双十一等,如何让系统在处理高并发的同时还是保证自身系统的稳定,通常在最短时间内提高并发的做法就是加机器,但是如果机器不够怎么办?那就需要做业务降级或系统限流,流量控制中用的比较多的两个算法就是漏桶和令牌桶.
我和很多设计师、开发人员、管理人员和其他团队成员等各种岗位的人一起工作过。一些人,和我变成了永久的朋友;另一些人,却让我多倍感头痛。但是我们都在努力地只做一件事:让产品变得更好。不幸的是,美好的意图常常无法转换成有帮助的注解。
一致性hash算法提出了在动态变化的Cache环境中,判定哈希算法好坏的四个定义: 1、平衡性(Balance); 2、单调性(Monotonicity); 3、分散性(Spread); 4、负载(Load);
同样一个人,去大公司干一辈子估计也就是中层退休了,但去一个创业公司,存在这个可能以高阶层身份退休。我们回顾一下BAT成长史,就知道他们成就了多少社会中上层人士。创业的氛围,的确给了机会,不仅是对创业者。 另外,我也承认一点,社会上升通道的打开是以很多创业失败为基石的。听上去貌似很残忍,但恐怕这比流血、革命之类的代价,小多了吧。 我其实完全同意,如果这个社会只有高考、好大学、大公司,这个社会一定结构化。
下面是一些利用CSS中border的特性绘制的各种角度的三角形。
互联网的产品设计,进入一个相对稳定的平淡时期。
本周前几天在西安做校园招聘的面试工作,也是第一次出去参加校园招聘,稍微写一下感悟和我面试学生的技术问题。
使用Smem精确显示Linux下内存使用情况 smem 能够为你报告内存的占用情况,提供 PID、User、Command、Swap、USS、PSS、RSS 等信息。 除了一般的文本信息报告外,smem 也可以生成条状或饼状图。
程序员有三大件:椅子、桌子、键盘,由于Macbook的触摸板实在是太好用了,鼠标倒变得不那么关键、乃至有必要。 以前在猎豹工作的时候,公司统一配的都是金卓B-ham,淘宝上大概1K4。现在不少公司招聘,人体工程学椅子常常也会成为一个福利。程序员每天对着电脑,敲代码的时候又常常忘记时间,一把好的椅子、一副好的键盘,对于腰肩、手腕的健康就至关重要了。键盘嘛,HHKB已经泛滥,我的机械键盘是大学的时候买的凯酷87红轴,300多块钱,一直没坏,感觉还行,就一直用到现在也不想换了,这块键盘可以说是记录了我敲过的无数的代码和文章,都有点感情了。 对于桌子,V2EX上的年度晒桌面,也可以看出这个群体,对于「物,聚」的一种癖好。
mailto: 做为一种 URL,尽管没有过去那么流行了,有时候仍然是最好的方式------差不多也是最容易的------能够让用户通过 web 应用程序发送 email。
本文是SVG学习基本且重要的知识点。本文相当详尽的讲解了SVG transform变换的语法、特点以及一些实际的处理等等。有相当多的截图,源代码展示,还有必要的demo,对了,还有很多gif示意。如果你要学习SVG, 本文内容一定会对你的学有所帮助的。
首先我表明一个根本的立场,我个人更喜欢用git,但是,这仅仅是一个个人偏好。当我们需要将一种技术方案带给整个团队的时候,并不是由我们的个人偏好作为主要决定因素,而应该充分去权衡利弊,选择对团队,对公司更有效率的方案。抛开个人立场,理性评估利弊,可能才是我认可的一个资深程序员,或者一个架构师的本分。 我所在的团队,现在选用的技术方案是git作为全公司的版本控制系统,我们一共有差不多20个程序员,使用五种以上的程序设计语言,研发维护四个左右的项目,属于小型创业公司中,研发规模中等偏上的企业。使用git作为版本控制系统,在我加入公司之前,已经是既成事实了,在我听说这一点的时候,我非常高兴,因为我说过,我喜欢git。
无论是在以前的团队,还是在现在的团队,都有人主张抽象出所谓的Service层,他们认为Model只负责跟数据库沟通,不应该混杂过多的东西,而同样也不赞成在Controller的Action里面,做太多事情,那样不利于复用。而他们赞成的方案,就是『抽象』出一层所谓的Service层,从而实现代码的复用。 而我通过观察他们具体的实现的代码,发现,这是一个很糟糕的想法。因为很少有人能忍住诱惑不去滥用。 在PHP里面,public static function其实就是最最原始的函数式编程模式的全局函数而已。任何一个软件里,如果全局函数满天飞,肯定不是一个『抽象』优秀的系统。如果不是绝对克制,那程序员会忍不住在任何地方,调用全局函数,甚至,只要一能复用代码,就忍不住去调用一下全局函数,得到好处后,就会进一步把更多的东西变成全局函数,而最后发现,所有的业务逻辑都在全局函数里了。
低级程序员认为自己与高级程序员的区别, 主要是高级程序员任何功能都能编码实现, 编码速度快, 代码无 bug. 正如一惯的那样, 低级程序员之所以低级, 正是因为他们勉强能看到(或者根本看不到)事物的表象而看不到本质. 所以, 低级程序员总结出的一切东西, 你都可以大胆的忽略. 所以, 我们来听听高级程序认为自己与低级程序员的区别是什么. 高级程序员之所以高级, 在于他们认识到代码 bug 是不可避免的, 有千万种理由可以导致 bug, 但他们可以在设计和逻辑上保证(追求)滴水不漏, 并用逻辑的百分之百准确性还减少代码 bug. 没错, 严谨的逻辑能力是高级程序员区别于低级程序员的最主要原因.
最近,梳理了一下公司的前端开发体系,准备给已经工作一年多的原有体系引入一些新的开发模式,其实也不算新了,只是对于我们一直采用的模式来说,是两个完全不同的方向,以前,我崇尚简单,一直按照简单易用的理念构建了公司现有的前端开发体系,现在随着人数的增多和业务的复杂度提升,感觉是时候引入一些差异化的开发体系了。 说来说去有点绕的慌,上面一段中说的 传统的开发模式,在团队内部我们叫做 被动编译,而新的开发方式,在团队内部叫做 主动编译。
本文大致介绍了哈希的几种用途,有可能是大家熟知的用途,也有可能是巧用,总之就是说了为什么我要用哈希。 在编程中,无论是实际用途还是自己玩玩的题目,多动动脑子就会出来一些“奇技淫巧”。哈希也好,别的东西也罢,反正都是为了解决问题的——千万别因为实际开发中通常性的“并没有什么卵用”而去忽视它们,虽然哈希已经是够常用的了。
oracle数据库从10g开始引入了对正则表达式的支持,正则表达式是一种描述简单和复杂的搜索和处理模式的方法,在与SQL一起使用时,正则表达式可以对Oracle数据库中存储的任何数据执行强大的搜索和处理。oracle数据库引入正则表达式以后一个明显的好处是,可以把匹配逻辑集中在数据库端,避免了在中间层中匹配处理,实现起来更加方便。
多文件、嵌套(借助 Sass)、像素单位、设备断点。我认为他们要说的话和真正的响应式设计没有关系。他答道,「理论上我是认可的,但是移动体验成功的关键在于理解现实世界」。
在企业中提到数据保护,大家可能常常想起文档,很少有人会关注文档中的内容,对数据的管理也比较单一,通常就是全加密、全授权,对文档的重要性不做区分,随着社会的发展,文档的格式越来越多,安全事件的不断爆发,使得人们对数据的关注度发生了变化,数据也分成了结构化数据和非结构化数据,更加的关注文档内容中的敏感信息,使用文档的应用有哪些,对不同类型的文档、含有不同内容的文档有区别的管理和存储
前言 之前使用Gearman的时候,遇到过一个卡顿的问题。今天微博上又有人问我是否遇到过此类问题。这个问题,当时是伯诚老师解决的。我把他的文章搬过来。希望能给遇到此类问题的人一点参考。 问题 使用Gearman作为异步消息处理中间件是却没有想象中的顺利。我们多 …