kafka中consumer和partition的对应关系_风情客家__的博客-CSDN博客_consumerpartition


本站和网页 https://blog.csdn.net/justlpf/article/details/107400534 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

kafka中consumer和partition的对应关系_风情客家__的博客-CSDN博客_consumerpartition
kafka中consumer和partition的对应关系
风情客家__
于 2020-07-17 09:39:31 发布
5942
收藏
19
分类专栏:
kafka&logstash&flume&rabbitMq
文章标签:
kafka
consumer
partition
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/justlpf/article/details/107400534
版权
kafka&logstash&flume&rabbitMq
专栏收录该内容
36 篇文章
3 订阅
订阅专栏
参考文章:https://www.cnblogs.com/gxyandwmm/p/11442328.html
一个partition只能被同组的一个consumer消费,同组的consumer则起到均衡效果。
1. 消费者多于partition
1> 创建一个名称为test的topic, 该topic只有一个partition:
[root@bigdata02 ~]# bin/kafka-topics.sh --create --zookeeper localhost:2181
--replication-factor 1 --partitions 1 --topic test
2> 在g2组中启动两个consumer
1. [root@bigdata02 ~]# bin/kafka-console-consumer.sh --bootstrap-server localhost:9092
--topic test --from-beginning --consumer.config config/consumer_g2.properties
2. [root@bigdata02 ~]# bin/kafka-console-consumer.sh --bootstrap-server localhost:9092
--topic test --from-beginning --consumer.config config/consumer_g2.properties
3> 消费者数量为2大于partition数量1,此时partition和消费者进程对应关系如下:
[root@bigdata02 ~]# bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092
--describe --group g2
TOPIC PARTITION CURRENT-OFFSET LOG-END-OFFSET LAG CONSUMER-ID HOST CLIENT-ID
test 0 9 9 0 consumer-1-4a2a4aa8-32f4-4904-9c16-1c0bdf7128a2 /127.0.0.1 consumer-1
- - - - - consumer-1-fd7b120f-fd21-4e07-8c23-87b71c1ee8a5 /127.0.0.1 consumer-1
消费者consumer-1-fd7b120f-fd21-4e07-8c23-87b71c1ee8a5无对应的partition。用图表示为
如上图,向test发送消息:1,2, 3,4,5,6,7,8,9只有C1能接收到消息,C2则不能接收到消息,
结论:即同一个partition内的消息只能被同一个组中的一个consumer消费,当消费者数量多于partition的数量时,多余的消费者空闲。 也就是说如果只有一个partition你在同一组启动多少个consumer都没用,partition的数量决定了此topic在同一组中被可被均衡的程度,例如partition=4,则可在同一组中被最多4个consumer均衡消费。
2. 消费者少于和等于partition
1> topic:test2包含3个partition
[root@bigdata02 ~]# bin/kafka-topics.sh --create --zookeeper localhost:2181
--replication-factor 1 --partitions 3 --topic test2
2> 开始时,在g3组中启动2个consumer
1.[root@bigdata02 ~]# bin/kafka-console-consumer.sh --bootstrap-server localhost:9092
--topic test2 --from-beginning --consumer.config config/consumer_g3.properties
2.[root@bigdata02 ~]# bin/kafka-console-consumer.sh --bootstrap-server localhost:9092
--topic test2 --from-beginning --consumer.config config/consumer_g3.properties
则对应关系如下:
TOPIC PARTITION CURRENT-OFFSET LOG-END-OFFSET LAG CONSUMER-ID HOST CLIENT-ID
test2 0 8 8 0 consumer-1-8b872ef7-a2f0-4bd3-b2a8-7b26e4d8ab2c /127.0.0.1 consumer-1
test2 1 7 7 0 consumer-1-8b872ef7-a2f0-4bd3-b2a8-7b26e4d8ab2c /127.0.0.1 consumer-1
test2 2 8 8 0 consumer-1-f362847d-1094-4895-ad8b-1e1f1c88936c /127.0.0.1 consumer-1
其中,consumer-1-8b872ef7-a2f0-4bd3-b2a8-7b26e4d8ab2c对应了2个partition用图表示为:
消费者数量2小于partition的数量3,此时,向test2发送消息1,2,3,4,5,6,7,8,9 C1接收到1,3,4,6,7,9 C2接收到2,5,8 此时P1、P2对对应C1,即多个partition对应一个消费者,C1接收到消息量是C2的两倍
3> 在g3组中再启动一个消费者,使得消费者数量为3等于topic2中partition的数量
[root@bigdata02 ~]# bin/kafka-console-consumer.sh --bootstrap-server localhost:9092
--topic test2 --from-beginning --consumer.config config/consumer_g3.properties
对应关系如下:
TOPIC PARTITION CURRENT-OFFSET LOG-END-OFFSET LAG CONSUMER-ID HOST CLIENT-ID
test2 0 8 8 0 consumer-1-8b872ef7-a2f0-4bd3-b2a8-7b26e4d8ab2c /127.0.0.1 consumer-1
test2 1 7 7 0 consumer-1-ab472ed5-de11-4e56-863a-67bf3a3cc36a /127.0.0.1 consumer-1
test2 2 8 8 0 consumer-1-f362847d-1094-4895-ad8b-1e1f1c88936c /127.0.0.1 consumer-1
此时,partition和消费者是一对一关系,向test2发送消息1,2,3,4,5,6,7,8,9 C1接收到了:2,5,8 C2接收到了:3,6,9 C3接收到了:1,4,7 C1,C2,C3均分了test2的所有消息,即消息在同一个组之间的消费者之间均分了!
3.多个消费者组
1> 启动g4组,仅包含一个消费者C1,消费topic2的消息,此时消费端有两个消费者组
[root@bigdata02 ~]# bin/kafka-console-consumer.sh --bootstrap-server localhost:9092
--topic test2 --from-beginning --consumer.config config/consumer_g4.properties
--delete-consumer-offsets
2> g4组的C1的对应了test2的所有partition:
[root@bigdata02 ~]# bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092
--describe --group g4
TOPIC PARTITION CURRENT-OFFSET LOG-END-OFFSET LAG CONSUMER-ID HOST CLIENT-ID
test2 0 36 36 0 consumer-1-befc9234-260d-4ad3-b283-b67a2bf446ca /127.0.0.1 consumer-1
test2 1 35 35 0 consumer-1-befc9234-260d-4ad3-b283-b67a2bf446ca /127.0.0.1 consumer-1
test2 2 36 36 0 consumer-1-befc9234-260d-4ad3-b283-b67a2bf446ca /127.0.0.1 consumer-1
用图表示为
如上图,向test2发送消息1,2,3,4,5,6,7,8,9 消息被g3组的消费者均分,g4组的消费者在接收到了所有的消息。 g3组: C1接收到了:2,5,8 C2接收到了:3,6,9 C3接收到了:1,4,7 g4组: C1接收到了:1,2,3,4,5,6,7,8,9 启动多个组,则会使同一个消息被消费多次,即组与组之间的消息是否被消费是相互隔离互不影响的。
那么,在消息消费的过程中,如果有一个consumer宕机了kafka会如何应对呢? 
此处可参考:Kafka Consumer Group和Consumer Rebalance机制
风情客家__
关注
关注
点赞
19
收藏
打赏
评论
kafka中consumer和partition的对应关系
参考文章:https://www.cnblogs.com/gxyandwmm/p/11442328.html一个partition只能被同组的一个consumer消费,同组的consumer则起到均衡效果。1. 消费者多于partition1> 创建一个名称为test的topic, 该topic只有一个partition:[root@bigdata02 ~]# bin/kafka-topics.sh --create --zookeeper localhost:2181 --repl
复制链接
扫一扫
专栏目录
consumer和partition的数量建议
Leon_Jinhai_Sun的博客
01-26
666
1. 如果consumer比partition多,是浪费,因为kafka的设计是在一个partition上是不允许并发的,所以consumer数不要大于partition数
2. 如果consumer比partition少,一个consumer会对应于多个partitions,这里主要合理分配consumer数和partition数,否则会导致partition里面的数据被取的不均匀。最好partiton数目是consumer数目的整数倍,所以partition数目很重要,比如取24,就很容易设定cons
Consumer(topic,partition和offset)使用详解
dwjlyl
11-03
478
Consumer(topic,partition和offset)使用详解
参与评论
您还未登录,请先
登录
后发表或查看评论
线上 kafka 消息堆积,consumer 掉线,怎么办?
最新发布
Q54665642ljf的博客
11-10
76
线上 kafka 消息堆积,所有 consumer 全部掉线,到底怎么回事?最近处理了一次线上故障,具体故障表现就是 kafka 某个 topic 消息堆积,这个 topic 的相关 consumer 全部掉线。整体排查过程和事后的复盘都很有意思,并且结合本次故障,对 kafka 使用的最佳实践有了更深刻的理解。好了,一起来回顾下这次线上故障吧,最佳实践总结放在最后,千万不要错过。
关于kafka中一个consumer消费多个partition时消息拉取的问题
weixin_45614626的博客
05-18
1661
今天思考的时候突然想到一个问题。正常情况下,我们都知道一个partition只能被同一个消费组中的一个consumer消费,而且实际场景中,一般我们都是consumer多于partition或者等于partition,也就是,一个consumer只会从一个partition里pull消息。
但是如果consumer比partition数量要少时,一个consumer就会对应多个partition,这个时候它会怎么拉消息呢?你的配置文件max.poll.records到底是从一个partition拉取的消息最
kafka的分区(partion)和消费者(consumer)
mimsmile的博客
04-27
3230
分区(partion)
kafka中的topic可以细分为不同的partion,一个topic可以将消息存放在不同的partion中。
leader和follower
每个partion可以设置一个leader和多个follower。kafka的消息没有设置读写分离,每个消息发送时,都是发送至对应的partion的leader-paertion,follower-partion主要是为了备份数据而...
kafka中partition和消费者对应关系
weixin_30413739的博客
12-21
98
1个partition只能被同组的一个consumer消费,同组的consumer则起到均衡效果
消费者多于partition
topic: test 只有一个partition
创建一个topic——test,
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --pa...
Kafka-partition和消费者的关系
zmj199536的博客
07-22
816
Kafka-partition和消费者的关系
kafka consumer、partition、rebalance
耘田
04-24
1691
kafka consumer、partition、rebalance
kafka的topic,broker,partition之间的关系
qq_36042938的博客
03-03
9587
一个topic对应多个partition,partition分布在多broker上,多broker一起提供kafka服务。
kafka中,Topic是一个存储消息的逻辑概念,可认为为一个消息的集合。物理上,不同Topic的消息分开存储,每个Topic可划分多个partition,同一个Topic下的不同的partition包含不同消息。每个消息被添加至分区时,分配唯一offset,以此保证partition内消息的顺序性。
kafka中,以broker区分集群内服务器,同一个topic下,多个parti
#### kafka里broker、topic、partition、consumerGroup、consumer的关系 ####
仅做个人笔记
03-12
4364
目录
partition和consumerGroup和consumer
broker和集群
topic和partition
offset的维护
更多参考
partition和consumerGroup和consumer
同一个group内,consumer数量不能大于partition数,多出来的收不到消息。
同一个消息只能被同组的单个消费者消费,但是是可以被其他组的消费者消费到
broker和集群
broker:一个独立的kafka服务器被称为broker。broker接收来自生产者的
Kafka中consumer和partition关系思考
fsstyle的专栏
02-14
2593
1.一般一个topic被一指定的consumer组消费,组中的consumer数量等于partition数量。
若consumer数量大于partition数量,会造成限制的consumer,产生浪费。
若consumer数量小于partition数量,会导致均衡失效,其中的某个或某些consumer会消费更多的任务。
当然等于的情况为consumer最大数,如需要消费的任务压力不大。可以是第...
kafka系列之Consumer 消费模式(10)
热门推荐
03-12
3万+
消费模式
Standalone Consumer(独立消费者)
和消费者组相同的是,它们也要配置 group.id 参数值,但和消费者组调用 KafkaConsumer.subscribe() 不同的是,独立消费者调用 KafkaConsumer.assign() 方法直接消费指定分区。
使用assign的consumer就是standalone consumer,一旦给消费者分配分区之后,就可以和consumer group 一样,在循环中调用‘poll’ 方法获取数据
独立消费者就是没有使用消费者组机
Kafka分区与消费者的关系
weixin_34377919的博客
09-17
282
1. 前言
我们知道,生产者发送消息到主题,消费者订阅主题(以消费者组的名义订阅),而主题下是分区,消息是存储在分区中的,所以事实上生产者发送消息到分区,消费者则从分区读取消息,那么,这里问题来了,生产者将消息投递到哪个分区?消费者组中的消费者实例之间是怎么分配分区的呢?接下来,就围绕着这两个问题一探究竟。
2. 主题的分区数设置
在server.properties配置文件中可...
kafka基础知识(二)
Computer_hello的博客
10-25
77
kafka 提供了两套 consumer API:
1. The high-level Consumer API
2. The SimpleConsumer API
其中 high-level consumer API 提供了一个从 kafka 消费数据的高层抽象,而 SimpleConsumer API 则需要开发人员更多地关注细节。
1.1The high-level consumer API
high-level consumer API 提供了 consumer group 的语义,一..
关于Kafka Consumer 与 Partitions
abc33880238的博客
03-16
143
Consumers and Consumer Groups
假设我们有一个应用程序需要从Kafka主题中读取消息,对它们运行一些简单的验证,并将结果写入另一个数据存储中。 因此,我们需要将创建一个Consumer对象,订阅相应的主题,并开始接收消息,验证它们并编写结果。 这可能会有一段时间,但如果写入主题的速率超过应用程序验证它们的速率怎么办? 如果您仅限于单个消费者阅读和处...
kafka consumer partition分配
zilong230905的专栏
10-19
2452
成功Rebalance的结果是,被订阅的所有Topic的每一个Partition将会被Consumer Group内的一个(有且仅有一个)Consumer拥有。每一个Broker将被选举为某些Consumer Group的Coordinator。某个Cosnumer Group的Coordinator负责在该Consumer Group的成员变化或者所订阅的Topic的Partititon变化时协...
kafka中topic、partition、broker、consumerGroup、consumer之间的关系、区别及存在意义
Tec Log
08-27
861
topic:逻辑概念,用于联系Producer 和 Consumer的message生产和消费。Producer 生产的消息放入一个topic中,由Consumer通过对同一个topic的订阅进行消费broker:物理资源,一般一个broker指底层的一台物理服务器。partition:逻辑分区存储,用于将topic在不同的物理资源上进行逻辑存储。实际Producer 放入topic的消息,会存入不同broker上的partition中。因此partition可以理解为最细I粒度的topic。.......
kafka topic-broker-partition关系及优化切入点
小二黑嘿嘿的博客
02-22
1万+
一个topic对应多个partition,partition分布在多broker上,多broker一起提供kafka服务。
kafka中,Topic是一个存储消息的逻辑概念,可认为为一个消息的集合。物理上,不同Topic的消息分开存储,每个Topic可划分多个partition,同一个Topic下的不同的partition包含不同消息。每个消息被添加至分区时,分配唯一offset,以此保证part...
kafka中partition数量与消费者对应关系
@涂涂博客
10-08
1878
kafka是由Apache软件基金会开发的一个开源流处理平台。kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。
kafka中partition类似数据库中的分表数据,可以起到水平扩展数据的目的,比如有a,b,c,d,e,f 6个数据,某个topic有两个partition,一般情况下partition-0存储a,c,e3个数据,partition-1存储b,d,f另外3个数据。
消费者组数量的不同以及partition数量的不同对应着不同的消费情况...
Kafka分区分配的概念,哪个consumer消费哪个partition
张俊杰 的博客
01-28
810
文章来源于我的知识库:
https://www.yuque.com/crow/message_oriented_middleware
Kafka分区分配的概念,哪个consumer消费哪个partition
Kafka分区分配的概念
一个consumer group中有多个consumer,一个 topic有多个partition,所以必然会涉及到partition的分配问题,即确定那个partition由哪个consumer来消费。
Kafka有两种分配策略,一是RoundRobin,一是Ran
“相关推荐”对你有帮助么?
非常没帮助
没帮助
一般
有帮助
非常有帮助
提交
©️2022 CSDN
皮肤主题:Age of Ai
设计师:meimeiellie
返回首页
风情客家__
CSDN认证博客专家
CSDN认证企业博客
码龄11年
暂无认证
266
原创
1万+
周排名
727
总排名
239万+
访问
等级
1万+
积分
1733
粉丝
793
获赞
273
评论
4469
收藏
私信
关注
热门文章
GitLab使用教程(详细)
409625
linux xfs和ext4的区别
81831
Javascript中点击(click)事件的3种写法
43739
java List复制:浅拷贝与深拷贝
40150
Druid监控功能的深入使用与配置-基于SpringBoot-完全使用 .properties配置文件
35926
分类专栏
FlinkVL
付费
1篇
Bat_Windows
21篇
虚拟化
13篇
Openshift
5篇
Drools
7篇
项目管理
12篇
数据库
11篇
AI
25篇
TiDB
21篇
面试
22篇
银行金融
2篇
Confluent
9篇
Prometheus
7篇
NLTP
5篇
Camunda
13篇
前端
2篇
Elasticsearch
45篇
Ansible
13篇
LDAP
4篇
ClickHouse
1篇
7篇
Java Swing
12篇
Scala
4篇
SparkSql
2篇
Kudu
22篇
Flink编程
2篇
kafka&logstash&flume&rabbitMq
36篇
Flink
36篇
CDH
17篇
大数据框架
30篇
sparkStreaming_storm
8篇
impala&greenplum
18篇
Spark
47篇
编程规范
9篇
Springboot
111篇
安全
7篇
Docker&k8s
38篇
Shell
6篇
jmeter&loadrunner
9篇
微服务
88篇
Hibernate
12篇
jwt&OAuth2&spring security
9篇
Redis
17篇
Postgresql
31篇
log4j2
3篇
maven
20篇
Git
13篇
Java
81篇
springMvc
13篇
spring
32篇
mysql
54篇
多线程
7篇
jvm
12篇
nginx
20篇
mongodb
10篇
Hive
5篇
网络通信
12篇
其它
23篇
idea
12篇
Linux
67篇
jsp
6篇
jeesite
mybatis
9篇
jquery
17篇
javascript
10篇
druid
6篇
消息队列
4篇
minio
3篇
java-设计模式
8篇
Python
34篇
hadoop
3篇
Arangodb
11篇
neo4j&知识图谱
10篇
软件架构图
10篇
最新评论
机器学习及flinkML算法学习
数道难:
看https://mvnrepository.com/artifact/org.apache.flink/flink-ml似乎flink-ml从19年开始就没更新了?
常见的工作流引擎(osworkflow、jbpm、activiti、flowable、camunda)比较
wangduqiang747:
https://stackoverflow.com/questions/74556755/will-there-be-new-releases-from-jbpm-after-7-73-0
jbpm7 从7月起已经事实上的停止维护了 . 不要趟坑
CDH--kafka配置
两只老虎学大数据:
你操作过成功了吗
GitLab使用教程(详细)
恋茶:
四个月前说的这句话,现在是不是已经是大佬了
使用jpa的注解@Query 进行分页查询
ChenforCode:
返回值从list改成page就行了,图中为例就是Page<TaskInfo>
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
提交
最新文章
win10修改DNS
Centos7修改DNS Server教程
JVM调优手段
2022
12月
7篇
11月
39篇
10月
27篇
09月
32篇
08月
30篇
07月
8篇
06月
3篇
05月
2篇
04月
10篇
03月
12篇
02月
8篇
01月
6篇
2021年223篇
2020年238篇
2019年208篇
2018年271篇
2014年1篇
2013年1篇
2012年6篇
目录
目录
分类专栏
FlinkVL
付费
1篇
Bat_Windows
21篇
虚拟化
13篇
Openshift
5篇
Drools
7篇
项目管理
12篇
数据库
11篇
AI
25篇
TiDB
21篇
面试
22篇
银行金融
2篇
Confluent
9篇
Prometheus
7篇
NLTP
5篇
Camunda
13篇
前端
2篇
Elasticsearch
45篇
Ansible
13篇
LDAP
4篇
ClickHouse
1篇
7篇
Java Swing
12篇
Scala
4篇
SparkSql
2篇
Kudu
22篇
Flink编程
2篇
kafka&logstash&flume&rabbitMq
36篇
Flink
36篇
CDH
17篇
大数据框架
30篇
sparkStreaming_storm
8篇
impala&greenplum
18篇
Spark
47篇
编程规范
9篇
Springboot
111篇
安全
7篇
Docker&k8s
38篇
Shell
6篇
jmeter&loadrunner
9篇
微服务
88篇
Hibernate
12篇
jwt&OAuth2&spring security
9篇
Redis
17篇
Postgresql
31篇
log4j2
3篇
maven
20篇
Git
13篇
Java
81篇
springMvc
13篇
spring
32篇
mysql
54篇
多线程
7篇
jvm
12篇
nginx
20篇
mongodb
10篇
Hive
5篇
网络通信
12篇
其它
23篇
idea
12篇
Linux
67篇
jsp
6篇
jeesite
mybatis
9篇
jquery
17篇
javascript
10篇
druid
6篇
消息队列
4篇
minio
3篇
java-设计模式
8篇
Python
34篇
hadoop
3篇
Arangodb
11篇
neo4j&知识图谱
10篇
软件架构图
10篇
目录
评论
被折叠的 条评论
为什么被折叠?
到【灌水乐园】发言
查看更多评论
打赏作者
风情客家__
原创不易,觉得好的话给个打赏哈
¥2
¥4
¥6
¥10
¥20
输入1-500的整数
余额支付
(余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付
您的余额不足,请更换扫码支付或充值
打赏作者
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额
抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。
余额充值