在乙個程序中同乙個消費組建立多個消費者會出現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...