microservices - 需要澄清微服务

标签 microservices

我需要一些关于微服务的说明。 1)据我所知,只有编排需要事件源,在编排中我们使用发布/订阅模式。我们还使用 RabbitMQ 等程序来确保发布者和订阅者之间的通信。

2) Orchestration 不使用事件溯源。它使用观察者模式并直接与观察者进行通信。所以它不需要总线/消息代理(如 RabbitMQ)。为了协调编排中的所有流程,我们使用调解器模式。

对吗?

最佳答案

在微服务编排中,采用集中式方法在编排器的帮助下执行决策和控制。编排器必须直接与相应的服务通信,等待响应并根据来自的响应做出决定,因此它是紧密耦合的。它更像是主要在编排器中使用业务逻辑的同步方法,并且它拥有与业务逻辑相关的排序所有权。编排方法通常遵循请求/响应类型模式,服务之间存在点对点连接。

在微服务编排中,采用了一种去中心化的方法,因此每个微服务都可以独立执行其功能,它们具有 self 意识,并且不需要来自集中实体的任何指令。它更多的是异步方法,业务逻辑分布在微服务中,每个微服务都应监听其他服务事件并自行决定是否执行操作。因此,编排方法依赖于消息代理(发布/订阅)在微服务之间进行通信,每个服务都应观察系统中的事件并自主地对事件采取行动。

关于microservices - 需要澄清微服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60502976/

相关文章:

java - 具有多个微服务的蓝绿部署,内部调用

mysql - mysql 连接池如何与 Node 微服务一起工作?

java - Eureka /发现服务与路线

docker - 如果外部无法直接访问api,为什么内部服务之间的通信需要像oauth这样的授权?

微服务。服务注册和服务发现有什么区别

spring - 无法推断基本网址。这在使用动态 servlet 注册或 API 位于 API 网关后面时很常见

testing - Mountebank 与 Rest Assured 相比有哪些优势?

java - 微服务部署-简单的jar与docker容器

java - 有没有办法保持与 Restful Web 服务的连接?

java - 彼此隔离的两个 vertx 实例