首页 > 解决方案 > 学习nestJS时了解微服务

问题描述

刚开始学rabbitmq,怎么看不懂微服务是如何通过网关进行通信的。学习nestJS、微服务架构、网关、它们是如何通信的,你能理解吗?

在此处输入图像描述

标签: microservicesnestjs

解决方案


我想你可能会在这里混合概念。微服务可以同步通信(例如通过 RESTful HTTP API)或异步通信(例如使用带有 AMQP 协议的 RabbitMQ)。

API-Gateway:API 网关是多个或所有微服务的外观(或单点访问)。它通常还包含服务发现(定位服务实例)和跨实例负载平衡等功能。通常用于微服务之间的同步通信或作为客户端的接口。

消息代理:消息代理(如 RabbitMQ)使您能够使用发布-订阅,通常在微服务之间。这还包括服务发现(通过每个实例在代理注册以使用消息)和负载平衡(例如通过使用消费者组)。它用于微服务之间的异步通信,通常不与客户端通信。

根据您的系统是同步通信还是异步通信(或两者兼有),您将拥有 API 网关、消息代理或两者兼有。但它们通常不会交织在一起。也许使用网关路由到消息代理 - 仅此而已。


推荐阅读