微服务架构求教

Micro-service architecture need advice

我们以敏捷模式与两个不同的 teams/applications 一起工作,我们面临着新的情况,我们需要您的建议。应用程序 A 的前端(由 A 团队开发)现在需要来自微服务 B(由团队 B 开发)的服务。前端 A 应该直接询问微服务 B 还是你更希望它通过微服务 A?这是一个关注点分离的问题吗?

Help/advise 将不胜感激。

非常感谢!!

前端A应该直接调用微服务B。正如您的解决方案 2.

简单地说,微服务架构应该由小型服务组成,这些服务以自包含和自我管理的方式提供单一功能。

您的解决方案 1 违反了该原则。

微服务A不需要调用微服务B来执行它的功能。前端 A 需要它。保持微服务的简单和专注,否则你不是在做微服务架构,而是在做其他事情。

接近微服务架构的最佳方式是孤立地接近每个微服务功能,就好像它是唯一存在的微服务,然后按需添加依赖项(调用其他微服务),不要考虑需求在您的微服务客户中,考虑该特定服务提供的内容。

大量可能的解决方案。

1) 尝试在后台添加Nginx反向代理等新层。

2) 差不多。使用 API 网关。

3) 直接从后端A调用后端B,并在后端A中创建新端点

4) 重复数据和逻辑

5) 再提取一个后端

6) 等等

7) 等等...

这真的取决于很多因素,比如通用架构、代码组织、开发规则、工具……没有万灵药。