没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
一、分区分配策略
Kafka 的分区分配策略主要包括默认分区策略和其他可配置的策略,如Range、RoundRobin、
Sticky 和CooperativeSticky。
1. 默认分区策略:DefaultPartitioner,当消息中指定了分区时使用该分区,如果没有指
定但存在 key,则根据 key 使用murmur2 哈希算法对分区数取模来分配。如果既没有指定分
区也没有 key,则使用粘性分区策略。1
2. Range 策略:将分区均匀分配给消费者,确保每个消费者处理大致相等的分区数。这种
策略适用于消费者数量固定且已知的情况。2
3. RoundRobin 策略:按顺序将每个分区分配给消费者,直到所有分区被分配完毕。这种
策略试图平衡每个消费者的负载,避免某些消费者处理过多的分区。
4. Sticky 策略:尽量保持消费者的分区分配不变,同时尝试保持分配的均匀性。这种策
略适用于希望保持消费者和分区之间的长期稳定关系的情况。
5. CooperativeSticky 策略:结合了 Sticky 策略和均衡分配的特性,旨在保持一定的稳
定性同时优化分配的均衡性。3
这些策略可以通过配置参数 partition.assignment.strategy 进行选择,以满足不同应用场
景的需求。
二、多个消费者多个分区
1 个 partition 只能被同组的一个 consumer 消费,同组的 consumer 则起到均衡效果
消费者多于 partition
topic: test 只有一个 partition
创建一个 topic——test,
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic
test
1.
在 g2 组中启动两个 consumer,
1. bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
--consumer.config config/consumer_g2.properties
2. bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
--consumer.config config/consumer_g2.properties
1.
2.
消费者数量为 2 大于 partition 数量 1,此时 partition 和消费者进程对应关系如下:
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
1.
2.
3.
4.
资源评论
saikol_c
- 粉丝: 0
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功