【发布时间】:2016-09-28 10:35:16
【问题描述】:
我有一个支持订购的现有 Web 服务,它有多个操作(大约 20 个)。这是一个支持排序功能的单一网络服务。它与多个其他服务交互以提供订购功能。
由于此应用程序中有很多业务功能,并且由 10 名成员团队提供支持,我相信它是一个整体(尽管我认为没有硬性规定来定义什么是整体)。
我们计划将应用程序部署在云代工环境中,并且我们计划将应用程序拆分为 2-3 个微服务,主要是为了使它们能够独立扩展。
用于搜索产品的前几个 api 通常具有更多的点击数,而支持实际订单提交的 api 获得的点击数少于 5%。因此,与订单提交 api 相比,产品搜索 api 的实例数应该显着增加。
虽然我不确定我们是否可以根据子域进行拆分(我已经阅读过应该是基础),但我们正在考虑根据前面解释的调用顺序来拆分它们。
我还读到微服务应该精心设计而不是编排。然而,为了确保我们现有的消费者不受影响,我认为我们应该公开一个 api 层来协调对这些微服务的调用。是否提供 api 网关,确保消费者最终不会调用多个微服务并提供抽象层的正常方法?
这似乎是编排而不是编排 - 虽然我并不热衷于理论方面,但我想了解在企业世界中为这个问题陈述所追求的不同解决方案。
【问题讨论】:
-
不要拆分搜索和更新/创建! API 使用差异不是拆分的好理由。
标签: spring rest spring-boot microservices