当前位置: 首页 > 知识库问答 >
问题:

为什么要运行消息队列(例如RabbitMQ)集群?

弘兴言
2023-03-14

你为什么要这么做?我理解增加消息的持久性(如果一个节点关闭,其他队列仍然获得消息)。但是性能呢?集群如何提高性能。难道所有的消费者/生产者都不会连接到主节点的队列吗?如果是这样,我们不是仍然在单个节点上获得流量吗?我们是否设置了负载均衡器,使得流量每次都指向不同的节点?

RabbitMQ集群如何提高性能?

共有1个答案

谷涵容
2023-03-14

就在这一段之后,文档中有如下内容:

什么是复制?

RabbitMQ代理操作所需的所有数据/状态都在所有节点上复制。这方面的一个例外是消息队列,它默认驻留在一个节点上,尽管它们是可见的,并且可以从所有节点访问。要在集群中跨节点复制队列,请参阅关于高可用性的文档(注意,您将首先需要一个工作集群)。

默认情况下,RabbitMQ集群中队列的内容位于单个节点(声明队列的节点)[1]

如果没有镜像,当该节点关闭时,其上的消息将丢失。集群将把队列放到一个不同的节点上。RabbitMQ不能很好地处理网络分区,所以这可能是一个问题。

“我们不是还在不顾一切地在单个节点上获取流量吗?”-如果您只有一个队列,那么是。然而,一个更大的问题是“为什么要运行一个只有一个队列的消息代理?”同样,如果您只在一个节点上创建队列,那么您在html" target="_blank">系统中仍然会有一个故障点。

 类似资料:
  • 在队列选项卡的rabbitMQ web界面上,我看到了“概述”面板,我在其中找到了以下内容: 排队消息: 准备好了 未确认 总数 我猜“总数”是多少。但什么是“准备就绪”和“未确认”?“准备好了”——传递给消费者的信息?“未确认”-? 消息费率: 发表 交付 重新交付 承认 这些信息是什么?尤其是“重新交付”和“确认”?这是什么意思?

  • 本文向大家介绍为什么要使用 kafka,为什么要使用消息队列?相关面试题,主要包含被问及为什么要使用 kafka,为什么要使用消息队列?时的应答技巧和注意事项,需要的朋友参考一下 缓冲和削峰:上游数据时有突发流量,下游可能扛不住,或者下游没有足够多的机器来保证冗余,kafka在中间可以起到一个缓冲的作用,把消息暂存在kafka中,下游服务就可以按照自己的节奏进行慢慢处理。 解耦和扩展性:项目开始的

  • 我发送消息从JavaSpring Boot应用程序到消费者是Python应用程序。 除了输入命令rabbitmqctl list\u queues时,一切正常,它显示视频队列0,这意味着队列中没有消息。 消费者正在接收消息并执行一些长过程;所以如果我连续发送多条消息,应该会有一些消息在队列中等待。我说得对吗? 制片人: 消费者 在哪里可以看到我声明的队列上的消息?因为虽然我知道队列中有消息,但使用

  • 本文向大家介绍RabbitMQ 怎么实现延迟消息队列?相关面试题,主要包含被问及RabbitMQ 怎么实现延迟消息队列?时的应答技巧和注意事项,需要的朋友参考一下 延迟队列的实现有两种方式: 通过消息过期后进入死信交换器,再由交换器转发到延迟消费队列,实现延迟功能; 使用 RabbitMQ-delayed-message-exchange 插件实现延迟功能。

  • 面试题 为什么使用消息队列? 消息队列有什么优点和缺点? Kafka、ActiveMQ、RabbitMQ、RocketMQ 都有什么区别,以及适合哪些场景? 面试官心理分析 其实面试官主要是想看看: 第一,你知不知道你们系统里为什么要用消息队列这个东西? 不少候选人,说自己项目里用了 Redis、MQ,但是其实他并不知道自己为什么要用这个东西。其实说白了,就是为了用而用,或者是别人设计的架构,他从

  • 这就是事情。 我正在使用PHP AMQP从Rabbitmq读取结果队列,以便处理发送的每封电子邮件上的重要信息。完成后,我需要将该消息删除或标记为已写入,以便下次读取队列时,不会得到已处理的消息。 由于Rabbitmq服务器每小时发送超过10.000封电子邮件,每次我读取队列以处理结果发送时,脚本至少可以运行5分钟,以便处理队列中的所有消息,因此在完成后,在这5分钟内会发送数百条新消息。这使得我无