微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Kafka 中相同主题的相同服务消费和发布

如何解决Kafka 中相同主题的相同服务消费和发布

在这里,我描述了我正在使用 Kafka 开发解决方案的业务流程。我是第一次在这里使用 Kafka,所以可能我不太熟悉用于实现它的不同模式。对于服务既是消费者又是发布者的同一主题(或者可能永远不会发生)的场景,我无法找到一些好的信息。

  1. 我有一个服务(服务 A),它接收一个请求,用某些参数创建一个客户端。
  2. 这个请求应该发布在 Kafka 上,供 Service B 消费,这会丰富 Client 信息,查看原始对象的一些参数。
  3. 然后服务 B 将在 Kafka 上发布丰富的客户端。
  4. 服务 C 将消费服务 B 发布的内容,进一步丰富客户端信息并发布回 Kafka。
  5. 服务 A 将订阅服务 C 发布的内容并存储以备后用。

我正在寻找一种干净的解决方案,其中每个服务都是几乎相同对象的使用者和发布者。我想到的解决方案是:

解决方案 1: 即使主题看起来完全相同或相似,每项服务也应发布各自独立的主题

解决方案 2: 所有服务都可以在同一主题上发布。但是可以有某种额外的状态/事件类型字段可以区分每个发布的消息。这将有助于每个服务只选取那些具有他们正在寻找的状态的消息进行处理,而忽略其他消息。

如果我选择解决方案 2,那么我会有一些问题,例如:

  1. 每项服务将发布在同一个分区还是不同的分区上?
  2. 然后每个服务会侦听相同的分区还是不同的分区?
  3. 对于该分区上的消息,每个服务是否都有自己的偏移量?
  4. 是否有更好的方法让每项服务仅连接到具有相关客户信息的频道或流?

或者可能我对 kafka 的理解是错误的,在 Kafka 上可以有其他的使用方法!!!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。