我已经在 Java 微服务中实现了 MongoDB 更改流,当我复制我的微服务时,我看到更改流监视正在侦听两次。代码重复。有什么办法可以阻止这一切?
问问题
207 次
1 回答
1
我在这里给出了类似的答案,但是由于这个问题与 Java 直接相关,我觉得它实际上与这个问题更相关。我假设您所追求的是每个更改在许多复制过程中只处理一次。
在强有力的保证下做到这一点是困难的,但并非不可能。我在这里写了一个解决方案的细节:https ://www.alechenninger.com/2020/05/building-kafka-like-message-queue-with.html
该解决方案是在一个用 Java 编写的概念验证库中实现的,您可以免费使用/分叉来实现这一点(博客文章解释了它的工作原理)。
它归结为一些技术:
- 每个进程都尝试获取锁
- 每个锁(或每个更改)都有一个关联的防护令牌
- 处理每个更改必须是幂等的
- 在处理更改时,令牌用于确保有序的、有效的一次更新。
博客文章中的更多详细信息。
于 2020-10-02T23:54:09.093 回答