与RabbitMQ消息代理的微服务体系结构通信

mnowg1ta  于 2022-11-08  发布在  RabbitMQ
关注(0)|答案(1)|浏览(186)

我已经开始开发一个使用微服务架构的电子商务应用程序。每个微服务都将有一个单独的数据库。现在,我知道我想使用Node.js微服务来处理产品,并作为它们的搜索引擎。我计划使用Ruby on Rails服务器微服务来处理所有请求,如果请求不是由它处理的,(例如,请求是添加一个新产品)以某种方式使用RabbitMQ将此信息发送到Node.js微服务,并让它执行该操作。这是一个可接受的架构设计还是我完全偏离了路线?

cs7cruho

cs7cruho1#

Ruby on Rails服务器微服务应该处理所有请求(您可以做得更好)
答:为此,您需要一个反向代理。

  • 反向代理能够将每个传入请求转发到负责处理该请求的微服务。
  • 它还可以充当负载平衡器:它将跨多个服务分发传入的请求(例如,如果您希望部署同一服务的多个示例)
  • ...

B.您还需要一个API网关来管理身份验证和授权,并处理请求的安全性、可跟踪性、日志记录等。
对于(A)和(B),您可以使用NginxKong
如果你想在你的微服务之间建立基于事件的和/或异步的通信,可以使用RabbitMQ。每次用户确认订单时,OrderService都会通知ProductService更新已订购产品的数量。
在这里使用RabbitMQ的好处是,OrderService在等待ProductService通知他是否收到了信息,或者是否更新了数量时,不会停留在阻塞状态......他将继续处理其他传入的请求。

相关问题