微服务设计的循环依赖关系可以吗?

时间:2019-09-19 14:17:58

标签: architecture microservices disaster-recovery

服务A:面向定制的页面渲染服务,从B获取UI模式,并从gitlab版本API获取组件信息以渲染页面(SSR)。具有用于模式数据的缓存机制。该服务位于群集上,允许外部访问。

服务B:Web服务B在群集中,仅允许内部访问。该服务提供:

  1. 模式配置工具和配置工具使用的CURD API
  2. 模式获取A的API
  3. B还需要组件信息,以便工具用户(内部人员)可以选择构建自己的面向客户的页面。

C:组件库,通过gitlab CI / CD发布到CDN。发行信息(组件名称和其自己的CDN链接)通过gitlab发行API提供。 gitlab在内部服务器上。

我们争论的一个问题是:为了使gitlab关闭时B可用,有人建议发布信息应备份到A上,因此当gitlab关闭时B可以从A读取备份数据。

我担心的是,该建议使链条成为一个循环。我觉得单向设计比较合理。如果需要备份,可以使用数据库来备份发行信息。但是我不能为我的结论提供理论上的支持。此外,由于我们公司对群集A的支持尚缺乏路线图,也许有一天它会迁移到某个地方,所以我不希望B依赖于A。

任何人都可以帮助选择正确的解决方案吗?

0 个答案:

没有答案