微服务中是否有队列系统的示例或设计?

问题描述 投票:0回答:1

我刚刚开始学习微服务和消息队列(rabbitmq),我了解一些交换,如 Direct、Topic、Fanout、Header 等。但我不清楚什么时候应该关闭连接之类的事情?我们应该有多少队列和交换台?非常感谢 (ps:我正在使用express来运行服务)

我已经创建连接、交换、队列并成功发送和接收消息。我希望了解构建整个系统的设计或知识

express architecture rabbitmq microservices message-queue
1个回答
0
投票

我建议您仔细阅读 RabbitMQ 文档,特别是 API 指南(这里是 Java 指南)。

  1. 关于关闭连接/通道 - 请参阅连接和通道寿命

客户端连接应该是长期存在的。底层协议 专为长时间运行的连接而设计和优化。这意味着 每个操作打开一个新连接,例如发布了一条消息, 是不必要的并且强烈建议不要这样做,因为它会引入很多 网络往返和开销。

通道也应该是长期存在的,但由于许多通道是可恢复的 协议错误将导致通道关闭,通道寿命可能 比它的连接短。关闭和打开新的 每个操作的通道通常是不必要的,但可能是适当的。 如有疑问,请首先考虑重用渠道。

  1. 关于您应该使用多少个队列和交换机 - 答案是这取决于。这 100% 取决于您的业务案例和架构。有些人会选择通过消息模型来分隔队列,而另一些人则不关心同一个队列中有不同的模型。有些人会定义队列拓扑来优化性能,而另一些人则不关心性能。
© www.soinside.com 2019 - 2024. All rights reserved.