前言
在某些场景中,消费者组中不同的消费者需要从某个topic下的不同分区接收消息,并确保消息的有序性,或者producer端需要根据一定的业务规则对消息进行分类然后发送到不同的分区,然后不同的消费者就可以获取指定分区的消息了
在上一篇中,我们讨论过如何在producer端将消息发送到指定的分区的两种实现方式,结合上面的需求,我们继续在此基础上实现消费端消费指定分区的消息
代码流程说明
1、创建测试topic
提前在开启了kafka服务的虚拟机或服务器上创建一个名为 "zcy3"的topic,为3个分区,可执行下面的命令进行创建
./kafka-topics.sh --zookeeper localhost:2181 --create --topic zcy3 --partitions 3 --replication-factor 1
2、编写producer代码
public class ParProducer {
private final KafkaProducer<String, String> producer;
public final static String TOPIC = "zcy3";
public ParProducer() {
Properties props = new Properties();
props.put("bootstrap.servers", "101.15.37.145:9092");
//所有follower都响应了才认为消息提交成功,即"committed"
pro