性能设计技术之浅谈过载保护(2)

发表于:2012-05-11来源:腾讯大讲堂作者:不详点击数: 标签:软件测试
对于每个系统要有能力发现哪些是有效的请求,哪些是雪球无效的请求,这里推荐一种方案:在该系统每个机器上新增一个进程:interface进程。Interface进程

  对于“每个系统要有能力发现哪些是有效的请求,哪些是雪球无效的请求”,这里推荐一种方案:在该系统每个机器上新增一个进程:interface进程。Interface进程能够快速的从socket缓冲区中取得请求,打上当前时间戳,压入channel。业务处理进程从channel中获取请求和该请求的时间戳,如果发现时间戳早于当前时间减去超时时间(即已经超时,处理也没有意义),就直接丢弃该请求,或者应答一个失败报文。

  Channel是一个先进先出的通信方式,可以是socket,也可以是共享内存、消息队列、或者管道,不限。

  Socket缓冲区要设置合理,如果过大,导致及时interface进程都需要处理长时间才能清空该队列,就不合适了。建议的大小上限是:缓存住超时时间内interface进程能够处理掉的请求个数(注意考虑网络通讯中的元数据)。

3.gif

 

原文转自:http://www.ltesting.net