挫败感强烈

挫败感强烈_第1张图片

对于旧项目我一直在尝试寻找优化点,这个月的版本终于下定决心进行一个优化,主要围绕的就是mq的文件传输方式。

AMQ提供Blobmessage的方式传输文件,对于性能压力不大的场景表现很好,但是如果出现几千个client同时取一个文件的时候,成功率很低,有这几个现象:

  1. client与mq的http端口的连接无法释放,client显示下载时卡在inputstream的read()方法上。且用tcpdump抓包时发现服务端与客户端的连接上已经没有数据交互了。
  2. mq服务器的操作系统日志报错syn flooding,怀疑判断大量下载文件的请求是洪水攻击。

想了几个解决方法,在必须使用blobmessage的前提下,放慢消息的下发速度,将负载在时间维度分散。同时blobmessage会发送到mq集群的多台mq上,将负载在空间维度分散。此外,还进行了mq和操作系统的参数调优。

但是问题没有得到解决,两个现象仍然出现,且随着一个个文件的下发,mq上僵死的连接数量会持续增多。进一步影响到mq的性能。

折腾了3周的问题,一个个解决方案的提出,开发,测试,然后失败。挫败感越来越强烈了。

还有什么方向可以尝试呢。。。

你可能感兴趣的:(挫败感强烈)