rabbitmq辣眼睛的忙等
目录
背景
用golang做了一个分布式结构的系统, 消息服务器用了rabbitmq。
整体是基于machinery+rabbitmq形式的分布式任务系统
在做压力测试时,发现rabbitmq的cpu使用率飙升
分析
- 官方给出的解释
scheduler采用了忙等,来提高消息传递性能
https://www.rabbitmq.com/runtime.html#cpu
其中也讲了一些方法来降低cpu使用率
- 官方建议
-
rabbtimq最好是装在单独的服务器,不与其它应用共用。
-
也介绍了修改cpu使用个数的方法
- 对我而言
通信关cpu什么事,导致cpu飙升,就是不应该
- 站在传统语言java/python/…等语言角度
忙等好像也没啥
- 站在go的角度
忙等是上世纪的技术了。
看起来太辣眼睛。
- 从我的应用场景上来看
系统规模可大可小, 而且业务高峰时间很短
在系统规模小时,不大愿意单独给rabbitmq一台服务器
在业务高峰的这几分钟,正好会影响其它系统
- 是否有其它选择
nats