首页 文章

混 Contract 步/异步交互中的微服务和消息消耗

提问于
浏览
0

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

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

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


With document consuming service
With document consuming service


从一方面来说,我不想创建太多的微服务,因为控制实例更难,但我也不想让微服务太胖 .

附:每个微服务可以具有多个实例 .

1 回答

  • 1

    如果文档消费者的意思是隐藏文档服务的API,那么这几乎肯定是浪费时间 . 如果问题是文档服务太大,并且难以扩展您进行异步文档处理所需的方式,那就是另一个问题 .

    我在过去通过使用相同的二进制文件并创建多个接口来解决这个问题,允许我以“服务模式”或“工作模式”部署它 . 在“服务模式”中,它提供公共和同步请求 . 在工作模式下,系统的一个子集仅用于服务来自队列的消息 .

相关问题