Kafka分区问题的记录

Kafka分区及相关的问题挺多的,目前就近期遇到的一些问题做一个总结。


生产者:

创建生产者时默认分区为0,也可以通过手动指定分区

//默认
ProducerRecord<String, String> record = new ProducerRecord<>(topic, key, msg);

//手动指定分区为1
ProducerRecord<String, String> record = new ProducerRecord<>(topic,1, key, msg);

消费者:

消费者可以通过低级api手动拉取指定分区

List<TopicPartition> topicPartitionList= new ArrayList<>();
//手动指定分区为0
topicPartitionList.add(new TopicPartition(consumer_kafka_topic,0));
this.consumer.assign(topicPartitionList);

高级api会自动根据策略选择分区,配置策略如下:

partition.assignment.strategy

partionAssignor根据给定的消费者和主题,决定哪些分区应该被分配给哪个消费者。kafka有两个默认的分配策略。默认策略为Range。

Range;该策略会把主题连续的若干个分区分配给消费者。

RoundRobin:该策略会把主题所有分区逐个分配给消费者。


补充问题(待验证)

1,高级api自动提交后同时消费两个分区会以何种策略消费,如何保证偏移量不出现错误,能在该种情境下手动异步提交偏移量吗。

2,高级api手动选择方式和手动配置策略。

3,同时消费多个topic时的上述问题


其他关于Kafka的内容

Kafka消费者的偏移量和高级/简单消费者https://blog.csdn.net/jyj1100/article/details/81068245

使KafKa每次读取消息到最新发送消息的解决方案https://blog.csdn.net/jyj1100/article/details/81066170

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值