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

如果微服务实例被复制,则更改流复制

如何解决如果微服务实例被复制,则更改流复制

我已经在Java微服务中实现了MongoDB变更流,当我执行微服务的副本时,我看到变更流监视正在监听两次。代码重复。有什么办法阻止这个吗?

解决方法

我给出了类似的答案here,但是由于该问题与Java直接相关,因此我认为它实际上与该问题更相关。我假设您要做的是,在许多复制的流程中,每个更改仅被处理一次。

要做到这一点很困难,但并非没有可能。我在这里写了一种解决方案的详细信息:https://www.alechenninger.com/2020/05/building-kafka-like-message-queue-with.html

此解决方案在proof-of-concept library written in Java中实现,您可以免费使用/使用它来完成此任务(博客文章中说明了其工作原理)。

这归结为一些技巧:

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

blog post中的更多详细信息。

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