从以下几个方面考虑
- 发送端可靠性保证
- 消息存储的可靠性保证
- 消息系统的扩容处理
- 消息投递的可靠性保证
这里主要从消息存储的可靠性和队列的扩容展开。
消息存储的可靠性
单个消息中间件机器变成主从多个节点
- slave节点订阅master节点的所有消息,进行消息的备份。这是一个异步的操作,slave收到的信息少于master分支消息。
- 同步复制方式,mater收到的消息主动写入slave,收到slave响应后才向发送者返回成功消息。
队列的扩容
- 原队列扩容后有标志,即便新消息过来,不接受。
- 通知消息发送端新队列的位置
- 消息接收端会收到新旧两个位置,旧队列数据接收完毕后,则只关心新队列的位置,完成切换。