【发布时间】:2018-05-08 01:40:29
【问题描述】:
我是 kafka 的新手,有一些基本的疑问。 我正在尝试进行多节点 kafka 设置(主动-主动)。这是场景:-
- 运行单个 zookeeper(端口:2181)
- 启动了三个 kafka 经纪人 (9092,9093,9094)
- 创建单个主题测试(分区:1,复制 3)
- 使用代理列表 (9092,9093) 开始生产者
- 在 9092,9093,9094 上启动了消费者,但他们都使用相同的主题。
现在我的疑问是,当我从生产者发送消息时,它会被所有三个消费者消费,
q1。这是否意味着它正在复制消息?
q2。由于生产者在 9092,9093 上运行,那么为什么端口 9094 上的消费者正在消费消息?是因为它使用了相同的主题名称吗?
第三季度。我如何确保当我从生产者发送消息时,它应该由单个消费者使用? (我尝试过分组,但如果有任何消费者在不同的组中,它就会收到消息。)
第四季度。如果我想在消费者之间分发消息,我该如何实现?
q5。任何其他方式来设置具有单个生产者和多个消费者的多节点 kafka(Active-Active)?
感谢任何帮助。
【问题讨论】:
-
1.您的消费者必须属于不同的群体。如果您不希望消息被多次阅读,请设置 group.id
-
2.端口是服务器端口。您正在运行 3 个相互通信的独立代理。你引导到哪一个并不重要,你会被引导到你在消费和生产中都需要的那个。
-
3.为此,您必须使用消费者组。
-
4.不知道这意味着什么。我认为您再次指的是在消费者之间不重复,这意味着利用消费者群体。
-
5.看来您走在正确的轨道上,您只需要阅读有关消费者群体的更多信息。
标签: java apache-kafka kafka-consumer-api