不臣
超小超大

火光

) 队列的DoS攻击 。首先,我们思考一下,这个队是个单纯地排队的吗?这样做还不够好,因为这样我们不能杜绝黄牛,而且单纯的ticket_id很容易发生DoS攻击,比如,我发起N个 ticket_id,进入购票流程后,我不买,我就耗你半个小时,很容易我就可以让想买票的人几天都买不到票。有人说,用户应该要用身份证来排队, 这样在购买里就必需要用这个身份证来买,但这也还不能杜绝黄牛排队或是号贩子。因为他们可以注册N个帐号来排队,但就是不买。黄牛这些人这个时候只需要干一个事,把网站搞得正常人不能访问,让用户只能通过他们来买。

2) 对列的一致性 ?对这个队列的操作是不是需要锁?只要有锁,性能一定上不去。试想,100万个人同时要求你来分配位置号,这个队列将会成为性能瓶颈。你一定没有数据库实现得性能好,所以,可能比现在还差。 抢数据库和抢队列本质上是一样的 。五、异步、 throttle 和 批量处理

异步、throttle(节流阀) 和批量处理都需要对并发请求数做队列处理的。

异步在业务上一般来说就是收集请求,然后延时处理。在技术上就是可以把各个处理程序做成并行的,也就可以水平扩展了。但是异步的技术问题大概有这些,a)被调用方的结果返回,会涉及进程线程间通信的问题。b)如果程序需要回滚,回滚会有点复杂。c)异步通常都会伴随多线程多进程,并发的控制也相对麻烦一些。d)很多异步系统都用消息机制,消息的丢失和乱序也会是比较复杂的问题。

throttle 技术其实并不提升性能,这个技术主要是防止系统被超过自己不能处理的流量给搞垮了,这其实是个保护机制。使用throttle技术一般来说是对于一些自己无法控制的系统,比如,和你网站对接的银行系统。

批量处理的技术,是把一堆基本相同的请求批量处理。比如,大家同时购买同一个商品,没有必要你买一个我就写一次数据库,完全可以收集到一定数量的请求,一次操作。这个技术可以用作很多方面。比如节省网络带宽,我们都知道网络上的MTU(最大传输单元),以态网是1500字节,光纤可以达到4000多个字节,如果你的一个网络包没有放满这个MTU,那就是在浪费网络带宽,因为网卡的驱动程序只有一块一块地读效率才会高。因此,网络发包时,我们需要收集到足够多的信息后再做网络I/O,这也是一种批量处理的方式。批量处理的敌人是流量低,所以,批量处理的系统一般都会设置上两个阀值,一个是作业量,另一个是timeout,只要有一个条件满足,就会开始提交处理。

所以,只要是异步,一般都会有throttle机制,一般都会有队列来排队,有队列,就会有持久化,而系统一般都会使用批量的方式来处理。

这和电子商务的订单系统很相似,就是说,我的系统收到了你的购票下单请求,但是我还没有真正处理,我的系统会跟据我自己的处理能力来throttle住这些大量的请求,并一点一点地处理。一旦处理完成,我就可以发邮件或短信告诉用户你来可以真正购票了。

从业务和用户需求上来说可能还是有一些值得我们去深入思考的地方:还有一种方法是使用抢占式的方式进行负载均衡,由下游的计算服务器去任务服务器上拿任务。让这些计算服务器自己决定自己是否要任务。这样的好处是可以简化系统的复杂度,而且还可以任意实时地减少或增加计算服务器。但是唯一不好的就是,如果有一些任务只能在某种服务器上处理,这可能会引入一些复杂度。不过总体来说,这种方法可能是比较好的负载均衡。四、后端系统负载均衡

前面说了数据分区,数据分区可以在一定程度上减轻负载,但是无法减轻热销商品的负载,对于火车票来说,可以认为是大城市的某些主干线上的车票。这就需要使用数据镜像来减轻负载。使用数据镜像,你必然要使用负载均衡,在后端,我们可能很难使用像路由器上的负载均衡器,因为那是均衡流量的,因为流量并不代表服务器的繁忙程度。因此,我们需要一个任务分配系统,其还能监控各个服务器的负载情况。

任务分配服务器有一些难点:

负载情况比较复杂。什么叫忙?是CPU高?还是磁盘I/O高?还是内存使用高?还是并发高?还是内存换页率高?你可能需要全部都要考虑。这些信息要发送给那个任务分配器上,由任务分配器挑选一台负载最轻的服务器来处理。

任务分配服务器上需要对任务队列,不能丢任务啊,所以还需要持久化。并且可以以批量的方式把任务分配给计算服务器。

任务分配服务器死了怎么办?这里需要一些如Live-Standby或是failover等高可用性的技术。我们还需要注意那些持久化了的任务的队列如何转移到别的服务器上的问题。

不臣提示您:看后求收藏(同创文学网http://www.tcwxx.com),接着再看更方便。

相关小说

忍者传奇 连载中
忍者传奇
寒月_40833390869771663
简介:五个高中生被选为忍者,决定一起保护世界。
1.3万字2年前
都市梦幻人生 连载中
都市梦幻人生
冰山凤凰
简介:唯有坚守本心,方能得到始终。林森睡梦中得到异世修真者记忆,从此踏上修炼之路,将现代科技和修真充分结合碰撞出一朵朵灿烂的火花,在繁华都市中磨砺本心,在未知的修炼路上不断前行。如果你得到了修真界的基本知识你能做什么?大家一起来跟着主角的无限脑洞探索未知的道路吧!披星戴月,洛云所向披靡
17.6万字2年前
侠岚将至篇 连载中
侠岚将至篇
许艾
简介:伸出你的左手,看看手心之中是否有着这样一个印记,如果有,也许世间的命运将掌握在你的手里。玖宫岭大战后,各路侠岚重振旗鼓,举行神坠试炼,他们通过不断训练,不断学习中提升了进步。假叶的阴谋、裴左的阻拦,使辗迟、辰月、千钧等人收获更加真挚的友情。新的挑战在等待着他们,一个神秘女子的出现又会将发生什么样的故事呢?
0.7万字2年前
剑舞花落 连载中
剑舞花落
青涩海螺
简介:花前美酒,离凡仙子,醴凡一瞥,惊鸿天下。雪樱纷飞,蓬莱仙岛,若得醴凡,死而无憾。
4.3万字2年前
噬灵传说 连载中
噬灵传说
跨爱云海
简介:万古前,魔域入侵,一代女帝,率领百万神将与魔域大军对抗,大战异常惨烈,尸骨成山,血流成河,百万神将无一幸免,全部战死,而那位女帝,则与魔域五位荒帝,大战到星空深处,至此不知所踪……那位女帝失踪后,太荒大陆局势异常混乱,各方势力纷纷涌出,太荒大陆再次陷入了危机之中……
2.5万字2年前
七界魔尊 连载中
七界魔尊
狼染
简介:魔就是恶?神就是善?此由天定?那我定逆天!!!弑神!!!
2.3万字1年前