Consumer group理解深入
每一個consumer實例都屬于一個consumer group,每一條消息只會被同一個consumer group里的一個consumer實例消費。(不同consumer group可以同時消費同一條消息)
很多傳統的message queue都會在消息被消費完后將消息刪除,一方面避免重復消費,另一方面可以保證queue的長度比較少,提高效率。而如上文所將,Kafka并不刪除 已消費的消息,為了實現傳統message queue消息只被消費一次的語義,Kafka保證保證同一個consumer group里只有一個consumer會消費一條消息。與傳統message queue不同的是,Kafka還允許不同consumer group同時消費同一條消息,這一特性可以為消息的多元化處理提供了支持。實際上,Kafka的設計理念之一就是同時提供離線處理和實時處理。根據這一 特性,可以使用Storm這種實時流處理系統對消息進行實時在線處理,同時使用Hadoop這種批處理系統進行離線處理,還可以同時將數據實時備份到另一 個數據中心,只需要保證這三個操作所使用的consumer在不同的consumer group即可。
說明:創建一個topic (名為topic1),創建一個屬于group1的consumer實例,并創建三個屬于group2的consumer實例,然后通過producer 向topic1發送key分別為1,2,3r的消息。結果發現屬于group1的consumer收到了所有的這三條消息,同時group2中的3個 consumer分別收到了key為1,2,3的消息。
轉載于:https://www.cnblogs.com/xubiao/p/5361400.html
總結
以上是生活随笔為你收集整理的Consumer group理解深入的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ubuntu下查询SSH状态和安装SSH
- 下一篇: POJ 2251 Dungeon Mas