【问题标题】:kafka multi node set up active-Activekafka多节点设置active-Active
【发布时间】:2018-05-08 01:40:29
【问题描述】:

我是 kafka 的新手,有一些基本的疑问。 我正在尝试进行多节点 kafka 设置(主动-主动)。这是场景:-

  1. 运行单个 zookeeper(端口:2181)
  2. 启动了三个 kafka 经纪人 (9092,9093,9094)
  3. 创建单个主题测试(分区:1,复制 3)
  4. 使用代理列表 (9092,9093) 开始生产者
  5. 在 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


【解决方案1】:

我已经在 cmets 中回答过,但这确实是一个归结为对 Kafka 中的消费者群体缺乏了解的问题。以这种形式讨论太长了,所以我会在这里指导你https://kafka.apache.org/documentation/#theconsumer

【讨论】:

  • 一个疑问,我们使用 5 个线程/每个(2 个不同的系统)运行我们的消费者,但是在测试期间,消息仅由一台服务器而不是服务器上的服务器使用(我们有 10 个分区用于 kafka 队列)。当我们将线程数更改为 2(每个服务器单个使用者)时,它工作正常。你能告诉我为什么在使用 5 个消费者/每个服务器时它无法在另一台服务器上发送消息吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多