我们以两个不同的团队/应用程序在敏捷模式下工作,我们正面临新的情况,我们需要您的建议。应用程序A的前端(由团队A开发)现在需要来自微服务B(由团队B开发)的服务。前端A应该直接询问微服务B,还是希望它通过微服务A?这是一个关注点分离的问题吗?
帮助/建议将受到高度赞赏。
Thanx很多!!
答案 0 :(得分:1)
前端A应该直接调用Microservice B.正如你的解决方案2。
简化,微服务架构应该由小型服务组成,以自包含和自我管理的方式提供单一功能。
通过让你的解决方案1,你打破了这个原则。
MicroserviceA不需要调用Microservice B来执行其功能。前端A需要它。保持微服务简单和专注,否则你没有做微服务架构,你正在做其他事情。
接近微服务架构的最佳方法是单独处理每个微服务功能,就好像它是唯一存在的微服务,然后根据需要添加依赖(调用其他微服务),不考虑需求您的微服务的客户,请考虑特定服务提供的内容。
答案 1 :(得分:0)
Tonz可能的解决方案。
1)尝试在后端前面添加像Nginx反向代理一样的新层。
2)几乎一样。使用API网关。
3)直接从后端A调用后端B并在后端A中创建新端点
4)重复数据和逻辑
5)再提取一个后端
6)等。
7)等......
这实际上取决于许多因素,如通用架构,代码组织,开发规则,工具......没有一个银弹。