如何在 Apache Kafka 中进行扇出?

6 apache-kafka apache-kafka-streams

我需要向所有消费者发送消息,但在检测谁应该收到此消息之前,如何使用 Kafka 做到这一点?

我应该使用 Kafka 流来过滤数据然后发送给消费者吗?据我所知,每个消费者都应该添加到唯一的消费者组中,但是如何实时检测谁必须接收消息?

Mat*_*Sax 10

Kafka 将消费者和生产者解耦,当您写入主题时,您不知道哪些消费者可能会读取数据。

因此,在 Kafka 中,你永远不会“向消费者发送消息”,你只需将消息写入主题即可。

消费者只是阅读主题。因此,您只需要启动多个消费者(没有消费者group.id,或不同的消费者group.id配置),每个消费者将读取所有数据,从而进行扇出。

  • 因为据我了解,这个人问的问题与您提供的答案非常不同,看起来您在纠正他,而我相信他的问题是合法的,并且需要与您提供的答案不同的答案 (3认同)
  • 你好,RabbitMQ 也解耦了生产者和消费者,生产者也不向消费者发送消息,它们写入交换 x) (2认同)
  • 我也是来自rabbitMq 世界的Kafka 新手。如果您想要扇出,这意味着所有消费者都收到相同的消息,则每个消费者都需要位于自己的组中。由于消息是通过组内的分区分发给消费者的。如果一个组中有 2 个消费者,则只有 1 个消费者会收到该消息。 (2认同)