聊一下kafka的消费组和消费模式

介绍

消费组使kafka中很重的概念,只有弄清楚消费组的概念,才能在项目中把它运用好,在kafka中,每个消费者都对应一个消费组,消费者可以是一个线程,一个进程,一个服务实例,如果kafka想要消费消息,那么需要指定消费那个topic的消息以及自己的消费组id(groupId),也可以直接指定那个主题的哪些分区,不然无法消费消息,消费组是一个逻辑上的概念,如下图是主题,分区,消费组,消费者的关系图。

image.png

从上图看出都两个消费组,分别为消费组a和消费组b,消费组a有三个消费者c1,c2,c3,其中c1消费分区1,c2消费分区2,c3消费分区3和分区4,消费组b有c4和恶c5两个消费者,c4消费分区1和分区2,c5消费分区3和分区4,我们可以看出,一个消费组内的消费者可以同时消费一个或者几个分区,反之,一个分区只能被同一个消费组内的消费者消费

消费组增加消费者

此时我们在消费组a中添加了一个消费者c6,我们看到,原来的c3消费分区3和分区4,现在c3只消费分区4,把分区4让给了c6去消费,由此可以看出kafka会使消费者平均消费分区。

image.png

继续在消费组a中增加一个消费者c7,如下图,那么由于消费组a中的每个消费者都订阅了一个分区,因为秉承一个分区只能被同一个消费组内的一个消费者消费的原则,四个分区刚好对应4个消费者,所以c7消费者就只能空闲下来。

image.png

消费模式

从上面的消费组的一些介绍,我们就可以引申出消息中间件的消费模式,我们知道消息中间件的消费模式有发布订阅模式点对点模式,在不同的场景下使用的消费模式也不一样,这样根据我们的业务需求去选择,下面我们消息介绍一下这两种模式。

发布订阅模式

发布订阅模式顾名思义就是生产者发布消息以后,消费者订阅对应的主题分区,然后进行消费,它是一对多的,就像学校的在广播里面通知,所有的学生都能听到,还有微信的订阅号,一个订阅号会有很多人关注,当订阅号的号主发布一篇文章,关注的人都能收到。

那么在kafka中,怎么做发布订阅模式呢?很简单,就是不同的消费组就能实现发布订阅模式,在上面我们说了一个分区只能被同一个消费组内的消费者消费,那么我们使用不同的消费组的消费者消费同一个分区就行了,这就实现了发布订阅模式,如下图,有三个消费组a,b,c的消费者c1,c2,c3消费同一个分区,在kafka中使用groupId来表示消费组,如果所有的消费者的groupId都设置一样,那么他们就属于同一个消费组。

image.png

发布订阅模式的应用场景有很多,比如下游有很多服务都需要使用同一份数据,如果通过编码的方式来实现的话,可以通过RPC方式来调用,但是就会造成系统的耦合,使用消息中间件的话,上游只管投递消息,下游服务订阅后,就可以消费到消息,大大降低了耦合。

点对点模式

点对点模式就是一对一模式,现实生活中我们打电话,私聊都属于点对点模式,在kafka中要使用点对点模式,那么我们还是要回到一个分区只能被同一个消费组内的消费者消费这个问题,那么我们就创建一个消费组,每个分区的数据只能被这个消费组内的消费者消息,就实现了点对点模式。

image.png

点对点的应用场景也很多,因为它的数据只能被一个消费者使用,比如可以削峰,比如上游服务发送了很多数据过来,如果下游服务的就只有一个消费者实例,那么就可能造成消息的积压,这时候就可以多开几个消费者实例一起消费,就加快了消息的消费速度,不过也得考虑一些因素,比如消息的顺序。

总结

上面对消费组和消费者进行了详细的图文介绍,也引申出了消费模式的发布订阅模式,点对点模式,并说了一些应用场景,在实际使用的时候,我们需要根据自己的业务去衡量需要多少消费者,消费者与主题分区之间的数量规划等等,对于kafka的参数调优啊,消息的顺序消费,消息的丢失,重复消费等问题,后续我们再继续。

感谢你的观看,我们下期见,如果文中有说得不合理或者不正确的地方,希望你能进行指点!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,761评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,953评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,998评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,248评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,130评论 4 356
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,145评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,550评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,236评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,510评论 1 291
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,601评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,376评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,247评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,613评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,911评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,191评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,532评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,739评论 2 335

推荐阅读更多精彩内容