我需要一些关于微服务的说明。 1)据我所知,只有编排需要事件源,在编排中我们使用发布/订阅模式。我们还使用 RabbitMQ 等程序来确保发布者和订阅者之间的通信。
2) Orchestration 不使用事件溯源。它使用观察者模式并直接与观察者进行通信。所以它不需要总线/消息代理(如 RabbitMQ)。为了协调编排中的所有流程,我们使用调解器模式。
对吗?
最佳答案
在微服务编排中,采用集中式方法在编排器的帮助下执行决策和控制。编排器必须直接与相应的服务通信,等待响应并根据来自的响应做出决定,因此它是紧密耦合的。它更像是主要在编排器中使用业务逻辑的同步方法,并且它拥有与业务逻辑相关的排序所有权。编排方法通常遵循请求/响应类型模式,服务之间存在点对点连接。
在微服务编排中,采用了一种去中心化的方法,因此每个微服务都可以独立执行其功能,它们具有 self 意识,并且不需要来自集中实体的任何指令。它更多的是异步方法,业务逻辑分布在微服务中,每个微服务都应监听其他服务事件并自行决定是否执行操作。因此,编排方法依赖于消息代理(发布/订阅)在微服务之间进行通信,每个服务都应观察系统中的事件并自主地对事件采取行动。
关于microservices - 需要澄清微服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60502976/