microservices - 需要澄清微服务

标签 microservices

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

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

对吗?

最佳答案

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

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

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

相关文章:

database - docker-compose 服务的集中配置

java - bash 命令等待 TCP 端口打开

java - 跨多个微服务的 2PC 分布式事务?

docker - 试图了解 Kubernetes 工作节点和 Pod 与 Docker 的比较 "Service"

spring-boot - 如何将用户的身份验证(和授权)传播到其他微服务

security - 处理 JWT 和刷新 token 流

microservices - 向 Consul 注册的微服务的随机端口

java - 通过 SSL 从 Spring Cloud Config 获取配置

php - Docker:PHP、Apache 和 MySQL 在同一个容器/同一个 Dockerfile 中

protocol-buffers - 微服务架构中 protobuf 文件的组织