【问题标题】:Microservices and message consumption in mixed sync/async interaction混合同步/异步交互中的微服务和消息消费
【发布时间】:2016-02-13 16:14:06
【问题描述】:

我正在使用微服务架构开发文档管理系统 (DMS)。虽然大多数服务通过直接同步调用(Netflix Ribbon + Hystrix)相互交互,但中间有消息系统(Apache Kafka)用于异步文档处理。

我的DocumentService,处理文档(也使用其他服务)并提供公共 API 非常“胖”,我无法决定是否值得让 DocumentService 使用文档或创建另一个微服务,这将将文档委托给DocumentService 进行进一步处理?

以下是这些变体的图表: Without pre-processing microservice


With document consuming service


一方面我不想创建太多的微服务,因为实例比较难控制,但我也不想让微服务太胖。

附:每个微服务可能有多个实例。

【问题讨论】:

    标签: java architecture message-queue microservices


    【解决方案1】:

    如果文档消费者的目的只是隐藏文档服务的 API,那几乎肯定是浪费时间。如果问题是文档服务太大,并且难以按照异步文档处理所需的方式进行扩展,那就是另一个问题了。

    过去我通过采用相同的二进制文件并为其创建多个接口来解决此问题,允许我将其部署为“服务模式”或“工作模式”。在“服务模式”下,它服务于公共和同步请求。在工作模式下,系统的一个子集被启动,只为队列中的消息提供服务。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-15
      • 2021-07-04
      • 2017-01-11
      • 2015-11-25
      • 2018-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多