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