我最近开始了一个项目,涉及使用 Spring Cloud 和 Netflix OSS 开发微服务架构。微服务是 RESTful 并产生 JSON 响应。
目标是组合每个微服务的 JSON 结果(它们可能是它们之间的依赖关系,例如 Service_B 需要 Service_A 的输出才能完成其计算)并通过 UI 呈现给最终用户(即 Angular.js 单页)。
作为参考,我遵循了callista enterprise的指南,其中三个示例微服务(产品、推荐、评论)的组成由另一个名为“product-composite”的微服务完成,该微服务基本上执行对其他微服务的一系列 http 调用.
在这一点上,我对这种组合/编排方法有点困惑,因为它无法扩展,并且每次向架构中添加新的微服务时都需要进行重大更改。
问题是:在结构化流程中组合/编排微服务的最佳/适当方法是什么?
我希望在单个 Angular.js 页面中组合每个服务,但我担心将每个微服务暴露给外部,因为需要调用单个 API 端点(比如说 /report)并获得所需的整个计算。
另一种选择似乎是 Spring Integration,但我找不到说明如何使用这种技术映射这种架构的文档。
任何提示、指南、参考和建议将不胜感激。谢谢你的支持。
卢卡