我应该使用微服务或映射实体在多个应用程序之间共享数据吗?

问题描述 投票:1回答:1

我有一个包含多个应用程序的场景,每个应用程序都会处理自己的数据。但随着业务的耦合,我们需要访问彼此的应用程序数据。

我们基本上有数据库依赖策略,与某些应用程序共享实体或在其他应用程序中映射视图它创造了一个依赖地狱!

  1. 微服务如何在这种情况下帮助我们?
  2. 如何访问倍数url比使用数据库JOIN更好的策略? (前EntityA与EntityB有映射依赖关系。如果我使用微服务策略,我必须调用/ apirest / resourceA和/ apirest / restourceA / resourceB,对吗?这比从entityA中选择*更好/更快?内连接实体B?)
  3. 如何在所有应用程序之间解耦数据(就像10个应用程序在某些时候访问相同的数据一样)?
  4. 任何材料/文章/技术指示?
java spring orm dependencies microservices
1个回答
0
投票
  1. 微服务定义了清晰的边界。他们不会奇迹般地让一切变得更快。
  2. 数据库连接也是可行的解决方案。如果您的数据微服务之间有很强的耦合可能不是正确的选择。微服务允许您的不同服务使用独立的技术。假设您有服务A和B.您可以在服务A中使用关系数据库,用于强耦合的数据,需要事务安全性,服务B中的图形数据库用于管理关系数据。服务A和B不关心对方正在使用什么,因为它隐藏在服务边界之后。
  3. 如果您可以将数据划分为域,只需最少的交互,这些域边界就是您服务的良好起点。服务最终必须引用另一项服务的实体。两种可能的选项是始终调用其他服务或保留远程数据的最小本地副本(例如,仅保留远程实体的主键)。本地副本当然需要保持数据(有事件吗?)。目前我们正在努力解决这一问题......
  4. 如果你谷歌微服务,你将淹没信息。我喜欢https://martinfowler.com/articles/microservices.html作为起点。

我确信我没有触及微服务的所有方面,这只是一个短暂的暗示,开始你的旅程......

© www.soinside.com 2019 - 2024. All rights reserved.