【发布时间】:2020-08-24 18:23:37
【问题描述】:
我有一个包含多个应用程序的场景,每个应用程序都处理自己的数据。但是由于业务是耦合的,我们需要访问彼此的应用程序数据。
我们基本上有一个数据库依赖策略,与一些应用程序共享实体或在其他应用程序中映射视图。它创建了一个依赖地狱!
-
微服务如何在这种情况下帮助我们?
-
访问多个 url 是比使用数据库 JOIN 更好的策略吗? (例如 EntityA 与 EntityB 有映射依赖关系。如果我使用微服务策略,我将不得不调用 /apirest/resourceA 和 /apirest/resourceA/resourceB,对吗?这会比从 entityA 中选择 * 更好/更快吗?内连接实体B?)
-
如何解耦所有应用程序之间的数据(就像 10 个应用程序在某个时候访问相同的数据)?
-
任何材料/物品/技术指示?
【问题讨论】:
-
这是微服务中的一个常见问题,您会在“微服务”标签下找到已经回答的类似问题。简而言之,通常不建议同步访问多个 url,因为它会紧密耦合服务。当有人遇到这种情况时,通常推荐的两条路线是:1. 重新审视您的设计以确保“有界上下文”是正确的,2. 应用“物化视图模式”,它讨论将数据异步传递到各个微服务在自己的数据库中构建本地“物化视图”,以便他们可以在本地访问数据。
标签: java spring orm dependencies microservices