2

我已经在 J​​ava 微服务中实现了 MongoDB 更改流,当我复制我的微服务时,我看到更改流监视正在侦听两次。代码重复。有什么办法可以阻止这一切?

4

1 回答 1

1

我在这里给出了类似的答案,但是由于这个问题与 Java 直接相关,我觉得它实际上与这个问题更相关。我假设您所追求的是每个更改在许多复制过程中只处理一次。

在强有力的保证下做到这一点是困难的,但并非不可能。我在这里写了一个解决方案的细节:https ://www.alechenninger.com/2020/05/building-kafka-like-message-queue-with.html

该解决方案是在一个用 Java 编写的概念验证库中实现的,您可以免费使用/分叉来实现这一点(博客文章解释了它的工作原理)。

它归结为一些技术:

  • 每个进程都尝试获取锁
  • 每个锁(或每个更改)都有一个关联的防护令牌
  • 处理每个更改必须是幂等的
  • 在处理更改时,令牌用于确保有序的、有效的一次更新。

博客文章中的更多详细信息。

于 2020-10-02T23:54:09.093 回答