首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何拆分多对多表实现松耦合微服务

问如何拆分多对多表实现松耦合微服务
EN

Stack Overflow用户
提问于 2021-06-29 15:03:29
回答 1查看 45关注 0票数 0

我有三个表Invoice(InvoiceId,Invoicetotoalprice),表投诉(ComplaintId),和表是complaintType(complaintTypeID)。我有两个微服务发票管理和投诉管理。因此,表complaintType由投诉表和发票表来标识;发票管理和投诉管理共享该表,其中的图片用于表示关系。有没有解决这个问题的模式?微服务通信也将通过API网关enter image description here进行。

EN

回答 1

Stack Overflow用户

发布于 2021-06-29 18:04:47

有两种方法可以解决这类问题。第一个也是更容易实现的是将表保存在一个微服务中,在您的情况下,我认为在投诉服务中维护它更有意义,而在发票服务中只保留表的id,因此如果您在任何时候需要请求投诉信息,您必须向投诉服务请求传递id。

第二个选择也是最好的选择,因为通过这种方式,您可以最大限度地减少服务之间的通信,并减少它们之间的耦合,即复制该表,以便在搜索微服务中成为两个不同的表,但只有一个微服务是所有者,在这种情况下,我认为它将是投诉微服务。因此,当该表中发生任何修改时,投诉微服务将使用某个消息代理(如kafka )发布消息,而发票服务将使用该消息并更新该表,因此两个模型之间不会出现不一致。这样,您就可以将两个服务解耦,例如,如果投诉服务器宕机,它不会影响发票服务

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68173993

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档