Андрей Алексеев Asked:2022-07-11 01:00:26 +0000 UTC2022-07-11 01:00:26 +0000 UTC 2022-07-11 01:00:26 +0000 UTC 如何在 Kafka 中指定消息发往哪个微服务? 772 我是卡夫卡的新手。我研究了很多理论,但在实践中我不再了解如何最好地使用 Kafka。 如果所有微服务都从一个公共队列中读取,如何在 Kafka 中指示消息发往哪个微服务? 或者为每个服务创建一个单独的主题,只有一个微服务会从中读取? apache-kafka 1 个回答 Voted Best Answer asanisimov 2022-07-13T17:02:45Z2022-07-13T17:02:45Z 如果所有微服务都使用相同的消息(微服务 A 等待电子邮件,微服务 B 等待电子邮件,微服务 C 等待电子邮件),则无需将其拆分为不同的主题。绝对没有理由重复不同主题的帖子。 如果您希望所有微服务处理来自该主题的所有消息,那么在您提出的每个微服务中consumer使用group.id. 是保持offset话题的小组。因此,每个具有唯一组的微服务将与其他微服务分开阅读主题。 如果微服务需要从一个主题中读取特定的消息,那么有很多选择,例如 - 将消息按 key 拆分为分区,并告诉每个服务读取特定的分区。但是这里需要正确思考分区键和分区数(在工作中,分区数不能再减少,只能增加)。您还可以设置某种标志,headers服务将在该标志中决定是否处理消息(但它会读取所有内容)。 如果微服务在等待不同的消息,那么它们当然应该在不同的主题中)
如果所有微服务都使用相同的消息(微服务 A 等待电子邮件,微服务 B 等待电子邮件,微服务 C 等待电子邮件),则无需将其拆分为不同的主题。绝对没有理由重复不同主题的帖子。
consumer使用group.id. 是保持offset话题的小组。因此,每个具有唯一组的微服务将与其他微服务分开阅读主题。headers服务将在该标志中决定是否处理消息(但它会读取所有内容)。如果微服务在等待不同的消息,那么它们当然应该在不同的主题中)