【发布时间】:2018-03-20 13:29:42
【问题描述】:
据我了解,在微服务设计应用程序中,每个微服务都服务于特定目的并且(必须)拥有自己的数据库。
但是,如果您显示来自财务微服务的订单列表并且每个订单都有客户在 CRM 微服务上,这意味着您必须为每个订单的行调用 getCustmerSimpeDetail 吗?
【问题讨论】:
标签: java spring rest design-patterns microservices
据我了解,在微服务设计应用程序中,每个微服务都服务于特定目的并且(必须)拥有自己的数据库。
但是,如果您显示来自财务微服务的订单列表并且每个订单都有客户在 CRM 微服务上,这意味着您必须为每个订单的行调用 getCustmerSimpeDetail 吗?
【问题讨论】:
标签: java spring rest design-patterns microservices
的确,微服务之间的数据库集成是故障点之一,因此最好的选择是为每个微服务单独存储。这并不意味着您不能在数据库之间复制数据,相反您可以。在这种情况下,您可以在金融微服务数据库中存储有关客户的基本信息。
如果您不希望重复数据,您可以创建方法 getCustmersSimpeDetail,参数为客户 ID 列表。哪个选项是最好的?这取决于具体的业务场景。
【讨论】: