我的主题有很多分区。我希望许多应用程序都读取该主题中的所有消息。一些应用程序经常阅读,而其他应用程序则在午夜阅读。
对于stackoverflow或书籍中的此问题,我没有找到任何帮助。
我如何在kafka中实现它?
谢谢
答案 0 :(得分:0)
您需要Kafka使用者才能让您的应用程序使用来自Kafka主题的消息。如果您的每个应用程序都需要使用所有消息,则必须为每个应用程序分配一个不同的组ID。
Kafka将主题的分区分配给组中的使用者。它还可以保证消息仅由组中的单个使用者读取。分区是Kafka中并行性的级别(如果您有2个分区,则同一使用者组中最多可以有2个使用者)。
示例:
假设您有主题example-topic
,其中包含5个分区和2个应用程序,每个应用程序必须使用来自example-topic
的所有消息。您将需要两个不同的消费者组(每个应用程序一个),第一个应用程序说group.id=app-group-1
,第二个应用程序说group.id=app-group-2
。在每个使用者类别中,您最多可以启动5个使用者,以使用您主题中的消息。因此,多达5个消费者将订阅主题example-topic
并属于group.id=app-group-1
,另外5个消费者将订阅主题example-topic
并属于group.id=app-group-2
。