rabbitmq channel池实现,采用单条连接,IO多路复用方式,rabbitmq channel池和我们普通连接池的实现方式稍有差别,不是建立多个tcp连接,而是使用channel pool的方式实现,性能很好,分享出来
- channel池实现,用单条连接,IO多路复用方式
- 增加断线重新支持;
- 增加channel异常处理;
- 支持订阅多个队列;
使用连接池(创建多个TCP连接,每个TCP连接创建channel池)做了一下测试,结果和单连接channel池性能相差不大,发现没必要创建连接池;
序号 | 消息大小(byte) | 测试结果(s) |
---|---|---|
1 | 85 | 41250 |
2 | 180 | 39805 |
3 | 225 | 44504 |
4 | 888 | 39092 |
测试环境:
系统:ubuntu 19.04
CPU: intel core i5-7500 CPU 3.4GHZ *4
内存:16G
硬盘:ST2000DM005-2CW102, SATA III
网卡:1000M