通过桥接增加消息服务器的负载和可靠性

通过桥接增加消息服务器的负载和可靠性

 

·使用MQ桥接,隔离消息的生产和消费服务,增加吞吐量和稳定性.

·在消息生产服务应用主从,解决单点故障,提高可用行,也避免对依赖消息服务器的应用产生影响

·消息服务器使用了基于磁盘的消息交换,减少了对内存的压力,但IO会出现瓶颈,这里物理机器使用了企业级的SSD,解决此问题。

·应用端使用了连接池,降低应用和MQ服务器之间的网络开销。

 

mq

使用大小 8K 的文本消息测试了一下:

MQ生产速率:   1500条/秒
MQ消费速率:   4000条/秒

在配置20G的情况下,在Consumer端可承载未消费消息数量: 260万条.

Master收到消息会即时的同步到Consumer端,Master异常宕机时会切换到Slave.这个过程对应用是透明的,使用Failover协议可以再次重连。

 

这个配置目前已经应用在了生产环境,使用了Avtivemq的5.9版本.

大多数时候是稳定的,还是遇到了些问题:

·Master-Consumer之间的假死,和网络、持久订阅会有一些联系,具体原因还在进一步的排查中。

·本身的Bug导致Master服务停止。ref:https://issues.apache.org/jira/browse/AMQ-4923

 

留下回复