【发布时间】:2021-08-01 01:07:49
【问题描述】:
我目前正在尝试找出解决以下问题的最佳方法。
我们正在使用微服务架构,为了启用某些产品功能,它们需要以前的服务完成它们的工作。
在下面的示例中,Service4 要求 Service1 和 Service2 完成他们的任务。
我正在考虑使用一个知道哪个服务依赖的编排服务 并以正确的顺序发布服务消息。
但我想知道是否有办法避免这种编排服务并完全使用编排的传奇来完成它?
┌────────┐
┌───────►│Service1├───────┐
│ └────────┘ ▼
┌────┴────┐ ┌────────┐
│ Start │ │Service4│
└────┬────┘ └───▲────┘
│ ┌────────┐ │
└───────►│Service2├───────┘
└────────┘
我主要担心Service4 必须记录它在数据库中收到的每条消息,并跟踪是否已收到任务所需的所有消息,并且必须重新实现相同的逻辑每个服务都有多个依赖项。
【问题讨论】:
-
某些组件必须跟踪部分状态。除了保持状态之外,编排服务还可以很好地了解整个业务流程。它还支持取消和异步更新事务状态等功能,使用编排很难做到这一点。查看 temporal.io 进行编排。
标签: architecture rabbitmq microservices event-driven