当有多个服务处理一种模型时,如何确保数据一致?

时间:2019-06-25 02:15:47

标签: microservices

我有2个名为JobService和CompanyService的服务。这些服务还具有位置表。位置表最终始终是一致的。   但是您可以想象,我在Location表中有一条记录(其JobService和CompanyService中的数据相同):

{
    Id:5jg3,
    Address: "Dai La, VN"
} (0)

在JobService中,我将其调整为:

{
    Id:5jg3,
    Address: "Thang Long, VN"
} (1)

此刻,一条消息发布到Job-Company队列中。虽然CompanyService尚未收到此消息,但我可以在CompanyService中对其进行调整:

{
    Id:5jg3,
    Address: "Ha Noi, VN"
}(2)

此刻,一条消息发布到Company-Job队列中。   最后,JobService接收数据(2)并将其记录更改为(2),同时CompanyService接收数据(1)并将其记录更改为(1),与具有ID的位置表的记录同义JobService和CompanyService中的5jg3具有不同的数据。   我查看了一些解决方案,例如Orchestration(SAGAS),事件存储,API组合,但是它们之所以遥遥无名,是因为我的应用程序是很久以前构建的。 我的数据没有ModifiedDate或VersionID,所以我无法检查,我是否在使用此解决方案。   我希望服务的数据是一致的。我有什么更容易解决此问题的解决方案?

0 个答案:

没有答案