microservices - 学习nestJS时了解微服务
解决方案
我想你可能会在这里混合概念。微服务可以同步通信(例如通过 RESTful HTTP API)或异步通信(例如使用带有 AMQP 协议的 RabbitMQ)。
API-Gateway:API 网关是多个或所有微服务的外观(或单点访问)。它通常还包含服务发现(定位服务实例)和跨实例负载平衡等功能。通常用于微服务之间的同步通信或作为客户端的接口。
消息代理:消息代理(如 RabbitMQ)使您能够使用发布-订阅,通常在微服务之间。这还包括服务发现(通过每个实例在代理注册以使用消息)和负载平衡(例如通过使用消费者组)。它用于微服务之间的异步通信,通常不与客户端通信。
根据您的系统是同步通信还是异步通信(或两者兼有),您将拥有 API 网关、消息代理或两者兼有。但它们通常不会交织在一起。也许使用网关路由到消息代理 - 仅此而已。
推荐阅读
- python - 如何按列和固定时间窗口/频率分组
- c - 如何通过 UART 发送计数器
- javascript - 如何在 react native 中构建一个文本输入,该文本输入具有一个占位符,单击时顶部会更改为 textview
- mongodb - 根据 MongoDB 中的值进行条件 $lookup 吗?
- laravel - 在 Laravel Vapor Docker 运行时运行 Puppeteer 和 Browsershot 的问题
- android-contentprovider - Android 11 Scope 存储访问旧创建的文件
- docker - 我已经使用 SSH 执行器在我的服务器中设置了 gitlab 运行器,但是在 Gitlab 管道中查看时,它显示 docker 执行器正在运行。如何解决这个问题?
- robotframework - 如何读取作为机器人框架启动进程执行的日志
- splunk - Splunk 查询:登录不成功或帐户锁定登录、使用 OCONUS IP 登录
- c - 尽管存在 unistd.h,但 Make 找不到