RocketMQ 是基于内存方式保存消息,然后再刷硬盘的。如果我们想发送可靠的消息,哪些,有两种方式:
1、sendMessageWithVIPChannel 是否走 VIP 快速通道。
这个可以减少消息的丢失率。加快刷到硬盘的速度。这个通道很少生产者走的。所以,保证了消息稳定地到达了 broker 端,特别是 当 洪水般的消息涌过来的话,对于 金钱方面的消息,这个通道非常快速。
2、msg.setWaitStoreMsgOK(true) 这样设置就可以保证了,在同步刷盘的过程中。保证了这条消息优先刷到硬盘中的。
–通过上面的两个步骤的话。消息是可以安全的到达 broker 。
当然了,如果需要发送 金融方面的消息。我建议采用另外一个集群,并且,同步刷盘,每条消息都 msg.setWaitStoreMsgOK(true) 这样设置一下,而且,硬盘要好点的。虽然这样的消息不是很高。但金融方面的消息不是很大。足够了!