不臣
超小超大

火光

) 队列的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),接着再看更方便。

相关小说

独步江湖,一念逍遥 连载中
独步江湖,一念逍遥
卿临少军
简介:本来出生在王侯之家的他,本应该过着无忧无虑的生活,可是天有不测风云人有旦夕祸福,他一出世自己的父亲就被奸臣按上了一个通敌叛国的罪名,来了个全家抄斩,祸灭九族,在他们母子被押解进京的路上,被两个神秘人所救,因此,他才大难不死。他为了给自己的父亲洗刷冤屈,无奈之下才踏上了江湖之路。他拜名师,遇佳人,一路披荆斩棘,经历种种磨难,且看他如何让这个江湖翻云覆雨。
37.9万字2年前
御灵剑洲 连载中
御灵剑洲
哗啦花啦
简介:在一个以剑为尊的大陆,名为神剑洲。龙族是该洲的第一大家族,神剑宗是该洲的第一大宗门。某一天,龙族因迁怒神剑宗而惨遭屠杀,全族1200人几乎全部被杀,钱财皆被洗劫一空,龙族的第一天才强者龙行天是族长之子,他带着5岁大的儿子(龙宇)和一把龙魂剑、一本至尊剑技功法(御灵剑术)逃离神剑宗的追杀,在被追杀的路上,遇见一位神秘的老者,最终被救下。龙行天把儿子和剑技交付给了老者,自己则带着剑离开了。十年后,龙宇开启复仇之路,征服神剑洲成为第一强者。
6.5万字2年前
教主出山了 连载中
教主出山了
顾浔剑
简介:[停更]隐于诡山的天净坛重现于世间,是继续太平还是血雨腥风呢?我们是棋手,亦是棋子。对方的身份,我们究竟了解多少?对你流露出的情感,有多少真的又有多少假的?表面轻浮,内心你真的了解吗?亦炸毛的性格,又是真是假?〈一切都是伪装的,一切都不是伪装的。〉两位棋手,谁先动情,谁输。〈我输了。/我赢了。〉〈我输了棋局,赢了爱情。〉
3.0万字2年前
修仙系统带飞 连载中
修仙系统带飞
仙生
简介:一人打天下,人间至上俯瞰众生!无人匹敌,为我独尊,开启外挂之路
0.2万字1年前
道阁 连载中
道阁
祁漓
简介:都说这世间天道为至强至圣,可若是我执意逆天呢?
0.1万字1年前
异次元三国战纪 连载中
异次元三国战纪
小陈大人
简介:重生在三国系统姐姐随时陪伴前世恋人,今生陪伴(日常三更,上学不定期)
0.7万字1年前