RocketMQ Broker的最佳实践
RocketMQ Broker的最佳實踐
翻譯自rocket官方文檔
Broker Role
Broker的方式有異步主,同步主,或者從。如果不能容忍消息丟失,建議以同步主從方式部署。如果對丟失沒那么嚴格,但是希望高可用,可以部署為異步主從,如果你想更簡單,可以使用異步主而不需要從機。
刷盤方式
異步刷盤是推薦的方式, 因為同步刷盤太多的消耗而且造成大量的性能丟失,如果希望可靠性高,建議使用同步主從。
ReentrantLock vs CAS
等待完成
os.sh
等待完成
題外話(非翻譯頁內容)
因為borker本身需要存儲消息信息,所以高可用方案選擇主從方式。
主從方式可以通過主從同步熱備或主從異步熱備兩種方式。
同步熱備需要主從都將消息信息處理完成以后才返回,所以性能要差一些。
異步熱備就是主結點成功處理消息完成就返回,從結點通過內部的同步機制主結點消息數據。
在RocketMQ默認的配置文件路徑下有${ROCKET_HOME}/conf/2m-2s-async/目錄路徑,在該路徑下有兩主兩從異步熱備配置的模板。
本案例因為只考慮高可用,不考慮高性能,所以只配置一主一從。只需要使用基于broker-a.properties和broker-a-s.properties兩個模板文件進行修改配置。
如果要考慮高性能,只需要將broker-b.properties做類似修改就可以了。如果竟考慮高可用,又考慮高性能,則配置從個broker-x.properties和broker-x-s.properties配置就可以了。
同步刷盤:在消息到達MQ后,RocketMQ需要將數據持久化,同步刷盤是指數據到達內存之后,必須刷到commitlog日志之后才算成功,然后返回producer數據已經發送成功。
異步刷盤:,異步刷盤是指數據到達內存之后,返回producer說數據已經發送成功。,然后再寫入commitlog日志。
總結
以上是生活随笔為你收集整理的RocketMQ Broker的最佳实践的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: RocketMQ 核心
- 下一篇: RocketMq Producer最佳实