最近在調試RocketMQ消息發送與消費的Demo時,發現一個問題:只要重啟程序,RocketMQ消息就會重復消費。
那么這是什么原因導致的,又該如何解決呢?
經過一番排查,發現程序使用的RocketMQ客戶端版本是3.6.2,而測試環境安裝的RocketMQ環境的版本是4.1.0。原來是客戶端和服務器端版本不一樣導致的,消息並沒有最終被消費,即沒有ACK消息確認,只要程序重啟就會重復消費。
解決方案:RocketMQ客戶端版本使用與服務器端的同一版本,即4.1.0版本。
划重點:使用RocketMQ的時候,客戶端與服務器端一定要使用相同的版本。
