microservices - 需要澄清微服务

标签 microservices

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

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

对吗?

最佳答案

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

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

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

相关文章:

python - 如何在具有共享模型和数据库的同一项目中拆分 Django 应用程序的部署?

kubernetes - 如何在 EKS CLI 中检查微服务的网络连接

java - 公开 jhipster 微服务客户端类

java - Spring Cloud Eureka - 如何模拟 RestTemplate 以避免请求第二个服务

node.js - 共享模块的 NestJS 问题

tomcat - 带有嵌入式 tomcat 和 apache http 服务器的端口绑定(bind)、负载平衡器和横向扩展架构

docker-compose - 微服务的本地开发,有效工作的方法和工具

microservices - 为什么两阶段提交不适合微服务架构?

java - Cumulocity微服务部署: access is denied

java - 微服务和事务管理器如何处理并发问题