【问题标题】:synchronize tables across different services(projects)跨不同服务(项目)同步表
【发布时间】:2021-09-03 04:07:00
【问题描述】:

我需要一些关于跨服务(项目)的 snyc 数据表的建议 我使用 AWS lambda。

问题:

service_A 有 table_A,

每次对 table_A 进行任何更新都会向 service_B 发送一条消息,以对与 table_A 相同的 table_B 进行相同的更新

有时这些消息会失败

所以 table_B 现在与 table_A 不同。

一个建议的解决方案是创建一个调度程序作业并查询 table_A 并将其发布到 table_B

对处理这种情况还有什么建议吗?

【问题讨论】:

标签: java sql spring-boot aws-lambda microservices


【解决方案1】:

系统总是失败。所以我认为你需要的是解决失败场景的策略。这是我的建议:

table_A 更新 > Lambda X > SQS 队列 > Lambda Y > Table_B

这里,Lambda X 将只负责将更新发送到 SQS 队列。 Lambda Y 将从队列中选择消息并更新表 B。您需要在队列中设置重试策略以防出错。如果在某些重试后失败,您可能希望将消息发送到死信队列并决定在失败消息旁边做什么。

** 最重要的是,这个更新必须是幂等的,因为通过重试,可能会多次处理相同的消息。

【讨论】:

  • 这正是现在的情况,在某些情况下,正如你提到的那样,失败发生了。我需要的是始终保持 table_A 和 table_B 同步
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-09-21
  • 1970-01-01
  • 2015-12-10
  • 2012-11-19
  • 1970-01-01
  • 2020-11-29
  • 1970-01-01
相关资源
最近更新 更多