多個消費者組訂閱了多個topic,並且每個消費者組裡的多個消費者例項的訂閱關係應該保持一致。
例如下消費關係, 不同的消費組,消費不同的佇列,相同的消費組訂閱相同的佇列,tag
錯誤示例:
乙個消費者組訂閱了多個topic,但是該消費者組裡的多個consumer例項的訂閱關係並沒有保持一致。
示例1: 訂閱了不同topic
該例中的錯誤在於,同乙個消費者組中的兩個consumer例項訂閱了不同的topic。
consumer例項1-1:(訂閱了topic為jodie_test_a,tag為所有的訊息)
properties properties = new properties();
properties.put(propertykeyconst.group_id, "gid_jodie_test_1");
consumer consumer = onsfactory.createconsumer(properties);
consumer.subscribe("jodie_test_a", "*", new messagelistener()
});
consumer例項1-2:(訂閱了topic為jodie_test_b,tag為所有的訊息)
properties properties = new properties();
properties.put(propertykeyconst.group_id, "gid_jodie_test_1");
consumer consumer = onsfactory.createconsumer(properties);
consumer.subscribe("jodie_test_b", "*", new messagelistener()
});
示例2: 訂閱了不同tag該例中的錯誤在於,同乙個消費者組中的兩個consumer訂閱了相同topic的不同tag。
consumer例項2-1:(訂閱了topic為jodie_test_a,tag為taga的訊息)
properties properties = new properties();
properties.put(propertykeyconst.group_id, "gid_jodie_test_2");
consumer consumer = onsfactory.createconsumer(properties);
consumer.subscribe("jodie_test_a", "taga", new messagelistener()
});
consumer例項2-2:(訂閱了topic為jodie_test_a,tag為所有的訊息)
properties properties = new properties();
properties.put(propertykeyconst.group_id, "gid_jodie_test_2");
consumer consumer = onsfactory.createconsumer(properties);
consumer.subscribe("jodie_test_a", "*", new messagelistener()
});
示例3: 訂閱了不同數量或者種類的topic該例中的錯誤在於,同乙個消費者組中的兩個consumer訂閱了不同數量的topic。
consumer例項3-1:(該consumer訂閱了兩個topic)
properties properties = new properties();
properties.put(propertykeyconst.group_id, "gid_jodie_test_3");
consumer consumer = onsfactory.createconsumer(properties);
consumer.subscribe("jodie_test_a", "taga", new messagelistener()
});consumer.subscribe("jodie_test_b", "tagb", new messagelistener()
});
consumer例項3-2:(該consumer訂閱了乙個topic,或者兩個和上面不同的topic都算)
properties properties = new properties();
properties.put(propertykeyconst.group_id, "gid_jodie_test_3");
consumer consumer = onsfactory.createconsumer(properties);
consumer.subscribe("jodie_test_a", "tagb", new messagelistener()
});
注意,上面的幾種錯誤示例,在執行時並不會報錯,並且在少量的訊息消費中,可能也看不出什麼問題,但是當消費量很大,broker集群比較複雜時,將有可能出現不可預料的問題, 同時官網也不建議我們這樣做. 一次Rocketmq的維修之路
始終不知道開發和運維的區別。現在我這全套環境都是自己搭建的 1 起因 專案本地啟動,本地和測試環境使用同樣的topic,又不想單獨建立topic,計畫更改mq的配置,可以自動建立topic和topic消費組 3 結論 要先啟動nameserver,再啟動broker。因為broker要向namese...
發布訂閱 跟 觀察者模式的關係和區別
什麼是發布訂閱?這裡實現乙個簡單的發布訂閱說明一下。myevent emit myevent.on myevent.on myevent.on myevent.emit 列印三個訂閱順序 發布訂閱原理比較簡單。每次訂閱就往陣列裡面新增乙個方法。當emit觸發是將整個陣列遍歷一遍讓方法逐個執行。什麼是...
mysql學習(5) 多表之間的關係
mysql相互關聯的表之間存在一對一,一對多 多對一 多對多的關係。1,一對一的關係 這種關係即多個表具有相同的主鍵,實際中用的並不多,因為完全可以將這種關係的合併為同一張表。2,一對多 多對一 的關係 其中表1的主鍵是表2的外來鍵 即表1的某欄位作為主鍵,表2的相同欄位字段繫結到表1的主鍵欄位上 ...