RocketMQ建立多個消費者問題分析

2021-10-24 19:36:10 字數 1198 閱讀 2221

在乙個程序中同乙個消費組建立多個消費者會出現the consumer group [groupname] has been created before, specify another name please.

defaultmqpushconsumer consumer1 = new defaultmqpushconsumer();

consumer1.setconsumergroup(groupname);

consumer1.setnamesrvaddr(namesserver);

consumer1.start();

defaultmqpushconsumer consumer2 = new defaultmqpushconsumer();

consumer2.setconsumergroup(groupname);

consumer2.setnamesrvaddr(namesserver);

consumer2.start();

org.apache.rocketmq.client.impl.consumer.defaultmqpushconsumerimpl#start()

boolean registerok = mqclientfactory.registerconsumer(this.defaultmqpushconsumer.getconsumergroup(), this);
public boolean registerconsumer(final string group, final mqconsumerinner consumer) 

mqconsumerinner prev = this.consumertable.putifabsent(group, consumer);

if (prev != null)

return true;

}

if (!registerok)
可以看到 在註冊消費者的時候是以消費者組作為key,消費者作為value存到消費者快取map中,因此在同乙個客戶端例項使用相同的消費者組會提示the consumer group has been created before, specify another name please.

使用 不同消費者組

使用不同的客戶端例項(參考

RocketMQ消費者實踐

最近工作中用到了rocketmq,現記錄下,如何正確實現消費 防止重複消費 如何快速消費 消費失敗如何處理 重複消費會造成資料不一致等問題。所以,消費者要做到消費冪等。1 每次消費,記錄messageid 如果再次消費該message,查詢messageid是否已存在,已存在,就跳過消費 2 使用具...

RocketMQ 消費者核心配置詳解

topic 下佇列的奇偶數會影響 customer 個數裡面的消費數量 如果是4個佇列,8個訊息,4個節點則會各消費2條,如果不對等,則負載均衡會分配不均。如果 consumer 例項的數量比 message queue 的總數量還多的話,多出來的 consumer 例項將無法分到 queue,也就...

多執行緒 多個生產者多個消費者問題

還是之前的問題 廚師負責做菜,服務員負責給客人上菜,廚師做好的菜放在工作台上,服務員從工作台上取菜品,但是這次的廚師和服務員都有多個.首先建立出多個廚師和多個服務員是很簡單的,為了方便,我們給執行緒重新命名一下,做乙個標記,在後面方便進行觀察.public class testcommunicate...