1

我最近开始了一个项目,涉及使用 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,但我找不到说明如何使用这种技术映射这种架构的文档。

任何提示、指南、参考和建议将不胜感激。谢谢你的支持。

卢卡

4

1 回答 1

0

您的问题更多地围绕服务编排而不是扩展。不可否认,如果您添加更多服务,您最终会更改编排层 - 没有办法解决这个问题。对于与特定 UI 要求相关的服务编排 - 请参阅 BFF 模式(后端为前端)。扩展是一个不同的方面——这更多是关于系统配置自身,当更多实例可用时,干预最少甚至没有干预。

于 2017-01-12T10:40:28.280 回答