Rabbitmq 关于性能的分布式集群问题

Rabbitmq 关于性能的分布式集群问题,rabbitmq,Rabbitmq,我使用6台服务器组成一个集群,它们都是磁盘节点。我使用rabbitmq为我们的网站收集日志文件。现在在高峰时间,发布速率约为每秒30k条消息。有两个主要用户(hdfs和elasticsearch),每个用户都需要处理所有消息,因此传输速率达到每秒60k左右 在我的场景中,一台服务器可以容纳10k的传输速率,我使用6个节点来负载平衡压力。我的解决方案是在每个节点上创建2个队列。每条消息都有一个随机路由键(比如message.0、message.1等),用于将压力分配给每个节点 让我困惑的是: 将所

我使用6台服务器组成一个集群,它们都是磁盘节点。我使用rabbitmq为我们的网站收集日志文件。现在在高峰时间,发布速率约为每秒30k条消息。有两个主要用户(hdfs和elasticsearch),每个用户都需要处理所有消息,因此传输速率达到每秒60k左右

在我的场景中,一台服务器可以容纳10k的传输速率,我使用6个节点来负载平衡压力。我的解决方案是在每个节点上创建2个队列。每条消息都有一个随机路由键(比如message.0、message.1等),用于将压力分配给每个节点

让我困惑的是:

将所有消息发送到一个节点。我应该使用HA代理来平衡这个发布压力吗

  • 持久队列和临时队列之间是否存在性能差异
  • 内存节点和磁盘节点之间是否存在性能差异?我所知道的是内存节点和磁盘节点之间的区别只是关于元数据,比如队列配置
  • 如何提高发布和交付代码的性能?我研究过,知道几种方法:
    • 禁用确认机制(在发布代码中?)
    • 启用HiPE(我已经这样做了,而且帮助很大)
  • 例如,输入为1w mps(每秒消息),有两个消费者消费所有消息。然后输出为2w mps。如果我的服务器可以处理1w mps,我需要两台服务器来处理2w mps压力。现在,新消费者也需要消费所有消息。结果,输出达到3w mps,所以我需要另外一台服务器。作为结论,所有消息多了一个消费者,多了一个服务器
  • “所有消息都发送到一个节点。我是否应该使用HA代理来平衡此发布压力?”

    本文概述了一些旨在在RabbitMQ中分配负载的设计

    “持久队列和临时队列之间是否存在性能差异?”

    是的,例如,持久队列会备份到磁盘,以便在服务器重新启动时恢复。这增加了名义上的开销,尽管实际过程是异步发生的

    “内存节点和磁盘节点之间是否存在性能差异?”

    我不知道,但这取决于机器本身

    “如何提高发布和传递代码的性能?”


    试一试。

    您看过问题3吗?您是指导入还是改进?哦,是的,我想键入“改进”