gpt4 book ai didi

java - 我们如何在 Kafka 发布/订阅中对消息进行版本控制?

转载 作者:行者123 更新时间:2023-11-30 10:52:04 24 4
gpt4 key购买 nike

我有一个关于使用 Apache Kafka 的问题,详情如下。

我构建了一个服务的 3 个实例,它们有自己的本地缓存,分别称为 S1、S2、S3。例如,当更新请求到达 S1 时,S1 将更新自己的本地缓存,然后将作业推送到 Kafka 以更新 S2、S3 的本地缓存。在这种情况下,我只想让 S2、S3 只得到这份工作,但实际上当我使用 Kafka 进行发布/订阅时,所有 S1、S2、S3 都会得到这份工作。

那么我该如何处理这个问题,任何建议都会有所帮助。

最佳答案

我看到 3 个选项:

  1. 当更新请求到来时,将其放入 kafka 并仅通过消费的消息更新缓存。
  2. 您可以将元信息添加到 kafka-key 并按该键过滤消息。例如:键:实例名=S1,如果 currentInstanceName != instanceName do_job

注意:key 用于分区程序 - key/round robin 的 hashCode(取决于 kafka 版本),因此行为可能会改变。

  1. 包装您的 kafka 消息并将元信息添加到包装器。例如,如果您使用 json:

    {
    "instanceName":"S1",
    "request":{...}
    }

关于java - 我们如何在 Kafka 发布/订阅中对消息进行版本控制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34510521/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com