网站开发有什么软件,建站软件有哪些功能,wordpress目录在哪里设置,凡科邮箱什么是同步通信#xff1f; 考虑以下微服务架构示例#xff1a;
微服务架构
您让 Microservice1 调用 Microservice2#xff0c;而 Microservice2 又调用 Microservice3。假设 Microservice3 提供简单的 Web 服务功能。因此#xff0c;Microservice1 可以通过 HTTP 向其发…什么是同步通信 考虑以下微服务架构示例
微服务架构
您让 Microservice1 调用 Microservice2而 Microservice2 又调用 Microservice3。假设 Microservice3 提供简单的 Web 服务功能。因此Microservice1 可以通过 HTTP 向其发送数据请求并返回包含所请求数据的响应。
这两个微服务之间存在的通信称为同步通信。Microservice1发送请求等待数据返回然后继续。
同步通信的缺点 当响应几乎立即到达时这种通信模式效果很好。但是它对所涉及的微服务施加了限制。为了使 Microservice1 可用Microservice2 也需要可用。
在某些情况下同步通信甚至可能对用户不友好。
假设 Microservice2 宕机了。在这种情况下需要告知提交请求的用户。你并不总是想这样做。在这种情况下异步通信提供了更好的选择。
异步通信 看一下以下应用程序架构
微服务应用架构
在上图中我们使用了 ZipkinDistributedTracingServer。不同的微服务发送日志最终在 Zipkin 跟踪服务中进行整合。每个微服务将其跟踪信息放入 RabbitMQ 消息队列中。服务器在消息进入队列时对其进行处理。
在此架构中应用程序通过 RabbitMQ 进行通信。CurrencyCalculationService 将其自己的跟踪信息放入 RabbitMQ然后忘记它。它不担心返回给它的响应。
现在如果 ZipkinDistributedTracingServer 宕机会发生什么
与之通信的服务一点也不担心。他们将继续向队列发送消息。当服务器恢复时它会继续处理队列中存在的消息并将它们保存到数据库中。
异步通信的优点 让我们看看异步通信的一些优点
在涉及异步消息传递的系统中服务器不需要始终启动并运行。放入消息队列的消息可以稍后批量处理。 您可以生成多个实例来减轻负载而不是使用跟踪服务器的单个实例来处理消息队列。 如果您使用现代版本的消息队列那么您很有可能使用重播功能。这有助于重新处理最初引发错误的消息。 异步通信对于需要最终一致性的系统来说非常有用。 最棒的是只要我们修复错误并重新处理消息发起错误请求的服务的用户甚至不需要知道它们。
异步通信的局限性 如果处理需要实时即如果对某个请求的响应时间存在严格限制则不能使用异步通信。
概括