在kafka中,多个消费者监听同个topic,此时一个消息过来,那么应该有以下两种情况可选:
1、多对一消费:所有消费者都能消费这个消息
2、一对一消费:只有一个消费者可以能消费到这条消息
请问kafka可以实现一对一消费吗?
如果可以,请提供实现的代码或链接给我,谢谢。
可以,用户编号设置权限
这个是和消费者所属的组相关,如果所有的消费者都属于一个消费者组,那么一个消费者能消费到该消息,如果均属于不同的组,所有消费者均能消费到该消息
如果你想一对一消费,你多个tomcat或者多个线程设置同一个consumerGroup就可以了,如果你想指定某个消费者消费某个pattion可以这样
KafkaConsumer<String, String> consumer = new KafkaConsumer<>(props);
consumer.assign(Arrays.asList(new TopicPartition("kafka.wshare.match_meta_data.topic",0)));