周二晚上,在美国2012年总统大选揭晓的时刻,微博网站Twitter遭遇了有史以来最大的访问冲击,服务的负载量陡增,但却没让用户感到丝毫的反应迟钝——一些Twitter的开发人员把这归功于公司把后端软件从Ruby迁移到Java的正确决策。
根据Twitter公司负责架构的副总工程师Mazen Rawashdeh在 博客上透露的信息,周二在太平洋时间的晚上8:11分到9:11分期间,Twitter用户平均每秒钟发布9965条信息。
Rawashdeh写到,在8:20分里的有一个一秒里,Twitter用户共写出了15107条新微博,在访问量最顶峰的那一分钟里,人们共制造了874560条信息。
这样的数量对于Twitter来说是很不寻常的,Rawashdeh说,这表明人们对Twitter服务使用上了一个新台阶。而在过去,在一些特殊 的日子里,Twitter曾经经历过短暂的服务停顿,比如平安夜或运动的闭幕式,而像这次这样长时间持续的高访问量的状况,还是头一遭。这也是 Twitter网站开创以来在竞选期间遇到的最大的一次访问冲击。
在过去,Twitter用户一般都会知道,在这样大的负载压力下,Twitter服务通常会出问题。在Twitter早年,服务宕机如此常见,以至于网站有创意的“休克大鲸鱼”的报错界面成了Web2.0大众的文化标识。
但是,周二晚上由于竞选而带来的访问量冲击却一点没有撼动它,Rawashdeh把这归功于Twitter仍在进行的把后端服务从Ruby和Ruby on Rails框架迁移到基于Java虚拟机(JVM)的新技术架构的工作。
当Twitter运行在Ruby上时,这休克大鲸鱼会经常的出现在你面前,但使用Java后,不多见了。
当Twitter运行在Ruby上时,这休克大鲸鱼会经常的出现在你面前,但使用Java后,不多见了。
Twitter首次撤离Ruby起于2008年,引用前Twitter开发者Alex Payne的话,当时公司的基于Ruby的消息队列系统(mq)”摔了个跟头”。
“Ruby擅长于做很多事情,”当时Payne说,“但对于长时间的处理过程,尤其是需要大量内存的操作,并不是很在行。”
Twitter对于此种情况的是,把部分的Ruby程序移植到基于JVM的架构上。起初,公司的开发团队拒绝Java而偏爱Scala—— 另一种JVM上的编程语言,混合有面向对象和面向过程等多种语言特征。如今,Twitter里程序是Scala程序和普通Java程序的复合体。
但有一部分Twitter服务仍然运行于Ruby之上,但根据Rawashdeh的说法,对Ruby的使用会逐渐减少。特别的他提到,Twitter系统正在进行重新配置,这样一来,来自移动设备的访问再也不会接触到任何的基于Ruby的程序。
而Twitter中使用的Ruby程序是部署在一个定制的,高度优化过得Ruby runtime上的,专门针对执行长处理操作而进行更高效管理内存的优化。
对那些钟爱Ruby的语法、Ruby的快速开发效率、以及所有这种语言的编程理念的狂热粉丝来说、这真不是一个受欢迎的消息。他们认为跟其它语言比 起来性能问题并不重要,Ruby在性能上的劣势,并不能掩盖这种语言优雅的语法、高效的生产率、以及它的所有编程哲理上的光芒。
但对于Twitter来说,结果才是重要的。“底线:无论人们何时、何地、何种方式访问Twitter,我们都要保持它24/7小时的可访问,在世界任何一个角落。”Rawashdeh写到,“我们为这个目标奋斗不止。”
他们干的不错。根据这汹涌的跟竞选相关的评论来看,在奥巴马做美国总统的第二届任期里,Twitter的平均访问量将会继续攀升。
双十一原本是单身的狂欢节,但自从淘宝去年推出双十一促销后,双十一就演变成了购物狂欢节了。去年双十一淘宝的交易额为52亿,今年双十一促销的支 付宝总销售额191亿,其中天猫为132亿,淘宝为59亿。笔者在原本猜想今年双十一交易额应该是100亿左右,但是191亿出现在了我们的眼前,不可思 议,此数字震惊了古今外,连政府都震惊了。
那么这次的双十一谁才是受益者?
笔者在想,双十一多么美好的日子,结婚的结婚,单身的狂欢,购物的购物,送货的送货,聚会的聚会,就连速途的作家们都五湖四海相聚一堂。所以说,这次的双十一笔者觉得所有人都是受益者。
淘宝天猫是最大的受益者
不用多说,双十一本来就是淘宝发起的节日,所以淘宝天猫是最大的受益者,从52亿到191亿,疯狂增长了260%。淘宝天猫改变了历史,改变了 人们的购物模式,改变了传统企业对电子商务的又一看法,天猫活了,淘宝亮了,阿里神了,马云赚钱了,电子商务又进入了历史的又一顶峰。191亿对于淘宝天 猫来说,最大的受益者唯我独尊。
商家是第二大受益者
双十一对于商家来说莫过于最大的清仓时期了,不管以前堆积了多久的货物,到了双十一,咱都有机会一销而空了,有钱收又能清货,何乐而不为。根据 天猫方面的数据,今年参与双十一的商家数达到1万家,是去年的5倍。商家多,货物就多,例如,酒类电商酒仙网今年的备货量就是去年的10倍。总之,双十一 淘宝天猫好,商家就好。
淘宝客是第三大受益者
为什么会说淘宝客是第三受益者?中国做淘宝客的至少有数十万,而在双十一这一天,起码有百分之九十的淘宝客都赚了钱。笔者师弟今天才刚接触淘宝 客,而就在双十一这一天,就成效了几十页,单这一天就赚了一个月的工资,比上班干活拿钱要爽很多。而根据淘宝客的榜单来看,基本大一点的淘宝客都赚了上万 元。
客户是第四大受益者
为什么客户也是受益者?虽然客户是消费群体,但是客户购物的热情一点都不比淘宝天猫差,双十一那些守在电脑旁边就为购物的人儿,不为什么,就为 了购物的优惠时刻。很多人说此双十一的物品基本都没有折扣,因为商家与平台之间的猫腻不是我们能清楚的。但是客户真的是受益者,因为客户满足了心理需求, 这很重要,一个人购物有两种情况,一是物品需求,二是心理需求。绝对没有第三种了,而双十一,恰恰很多人都是为了心理需求,客户在需求什么?优惠的吸引 力,红包的吸引力,买多少送多少,买到多少再送多少的点,就让客户达到了真正的需求。
所以说双十一不管你信不信,不管你伤不伤,不管你优惠还是不优惠,你都是受益者。唯一不是受益者的就是快递员,对于他们来说双十一就是苦逼的馒头节。
我们在写驱动过程中,经常看到有上拉电阻,有时候会听硬件工程师说上拉不够,或者说上拉太小了。以前我也没仔细研究过它的作用,只是知道可以起到稳定电平,提高驱动能力的作用。一般用于OC(Open Colector极电集开路)门、OD门(Open drain,漏极开路,其中一个应用是i2c总线)或者输出驱动能力不够的电路中。最近我上网搜了一下相关的知识,查看了以前大学时的课件,发现以前的基础真的很重要的啊。其实这些知识以前都学过的,但是为什么感觉学得不深入,很快就忘记了呢?这其中又引起了我的一个思考,这就是,我们在学校学习,一般只是为了学习而去学习,而没有具体的目的。比如说你想做一个项目,这些项目就需要某些知识。我们学完很多知识,但是并得不到应用,在不久后就会忘记了,这样子学习是做不到深入的。正确的学习方法是理论->实践->理论->实践......不断循环。现在我看回电路的一些理论知识,有一种恍然大悟的感觉,哦,原来是这样子!
好了,不扯远了。以下我讲解一下OC门的上拉电阻原理和应用。电子类专业毕业的学生应该都觉得这些很简单的了,但是计算机类的可能情况跟我一样,就是似懂非懂。如果你是这种状况,读完这篇文章后你可能会有所领悟。本文其中可能也有许多错漏的地方,请大家指正。
上图就是一个OC门,它其实就是一个与非门。A、B为输入端,F为输出端。其中RL是不属于OC门的,它是输出的一个上拉电阻,接到Vcc上。只要恰当地选择电源电压和负载电阻,就可以保证输出电平F的高、低要求,而又有效地防止输出管(T5)电流过大。
对于OC门,我们可以理解得简单一点。把OC门看作是一个黑盒子,当输入端为低电平时,OC门截止(T5管截止,相当于集电极开路),F端输出高电平,此时可看作只有Vcc,RL和外部负载相连。当输入端为高电平时,OC门饱和,在输出端会有固定的饱和电流(T5管集电极的饱和电流)流进OC门,F端输出低电平。
当有m个OC门直接并联,并带有n个与非门作负载时,只要公共外接负载电阻RL选择适当,就可以保证输出高电平不低于规定的VOHmin值;又可以保证输出低电平不高于规定的VOLmax。而且也不会在电源和地之间形成低阻通路。
集电极负载电阻RL的选择:
输出端F输出高电平的情况。
若m个OC与非门的输出都为高电平直接并联,则线与结果为高电平,下面的如下图所示。
此时必须满足:
VCC-IRLRL≥VOHmin
VCC-(mIOH+pIIH)RL≥VOHmin
RL≤(VCC-VOHmin)/(mIOH+pIIH)
也就是RL的最大值是(VCC-VOHmin)/(mIOH+pIIH),而一般来说,VCC,VOHmin,IOH,IIH,m,p都是固定的,VOHmin,IIH一般可以从负载的手册上找出,VOHmin一般就是器件的低电平阀值,IIH一般就是器件的额定电流(注意上面把与非门作为负载只是一种举例,而实际上负载有很多种)。我们在上面说过,当输出高电平时,可以把OC门开作是开路,也就是IOH为0。上面公式可以简化为:
RL≤(VCC-VOHmin)/pIIH
也就是说,RL的最大值为(VCC-VOHmin)/pIIH,如果再大的话,就不能产生负载所需要的高电平VOHmin了。
好,休息一下。现在我们已经知道怎么算出上拉电阻的最大值了。如果有时候输出端得不到要求的高电平,那么就有可能是上拉电阻太大了(一般为1k~10k,而有的说是4.7k~10k,反正是大于1k吧)。
下面继续算上拉电阻的最小值了。
上面是输出端F为高电平的情况,现在看输出端F为低电平的情况。
当OC门线与输出为低电平时,从最不利情况考虑,设只有一个OC门处于导通状态,而其它的OC门均截止(实际上可能只有一个OC门)。
我们上面提过,当OC门输出低电平时,OC门是饱和的,也就是相当于集电极处直接对地(但仍有一个饱和电流IOL),此时上拉电阻电流IRL和负载电流IIS共同流向OC门,这时候电流IOL就是我们经常所说的灌电流(这里一个题外话,就是接了上拉电阻后,即使输出低电平也会消耗很小的电流)。
RL不能太小,应保证在所有的负载电流全部流入唯一导通的OC门时,线与输出低电平仍能低于规定的VOLmax值,也就是要能产生负载要求的低电平。
VCC-IRLRL≤VOLmax
VCC-(IOL-nIIS)RL≤VOLmax
RL≥(VCC-VOLmax)/(IOL-nIIS)
也就是RL的最小值是(VCC-VOLmax)/(IOL-nIIS),其中VCC,VOLmax,IOL,nIIS都是已知的,IOL大概就等于管子的饱和电流,IIS是负载的短路电流就样就可以把RL的最小值算出来了。
也就是说,RL的最小值为(VCC-VOLmax)/(IOL-nIIS),如果忽略掉负载的短路电流,如果RL的值更小,那么就不能产生比负载要求的低电平更低的电平了。
综上所述,(VCC-VOLmax)/(IOL-nIIS) ≤RL≤(VCC-VOHmin)/(mIOH+pIIH),如果要粗略地计算,忽略掉IIS和IOH,那么就是(VCC-VOLmax)/IOL≤RL≤(VCC-VOHmin)/pIIH。