检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
设置队列负载均衡 方案概述 在RabbitMQ集群上,由于扩容节点、删除队列等原因,会导致队列在各个节点分布不均衡,从而造成部分节点压力过大,无法更有效地利用集群。 这时候需要手动设置节点间队列的负载均衡,提升集群的利用率。设置队列负载均衡的方法如下: 删除队列重建 通过Policy修改master节点方式
exchange插件优化负载均衡。该插件使用交换器来平衡队列之间的消息。根据消息的路由键,发送到交换器的消息一致且均匀地分布在多个队列中。该插件创建路由键的散列,并将消息传播到与该交换器具有绑定关系的队列中。使用此插件时,需要确保消费者从所有队列中消费。使用示例如下: 使用不同的路由键来路由消息。
为什么RabbitMQ集群只有一个连接地址? RabbitMQ集群实例的连接地址,实际上是实例的LVS节点地址(负载均衡地址),客户端连接实例时,通过负载均衡器将客户端请求分发到集群实例的各个节点。 图1 连接示意图 父主题: 连接问题
RabbitMQ集群实例如何均衡分发请求到每个虚拟机? 集群内部使用LVS做负载均衡,由LVS将请求均衡分发到每个虚拟机节点。 父主题: 实例问题
解绑RabbitMQ Queue 本章节指导如何在控制台为Exchange解绑Queue。解绑Queue后,Exchange将无法把消息路由并存放到该Queue。 前提条件 已创建Exchange。 已创建Queue。 Exchange已绑定Queue。 为Exchange解绑Queue
来,在生产者发送消息到Exchange后,Exchange根据路由规则将消息发送到与其关联的Queue中。 本章节指导如何在控制台为Exchange绑定Queue,只有绑定Queue后,Exchange才能把消息路由并存放到Queue。一个Exchange可以绑定多个Queue。
最新动态(html) 本文介绍了Huawei Cloud EulerOS产品新特性和对应的文档动态,新特性将在各个区域(Region)陆续发布,欢迎体验。
布式消息服务RabbitMQ版提供的一系列常用实践。 表1 常用最佳实践 实践 描述 设置队列负载均衡 扩容节点、删除队列可能会导致队列在各个节点分布不均衡,本文介绍如何设置队列负载均衡。
Exchange和Topic Exchange需要设置Routing Key,Exchange会将消息路由到Routing Key匹配成功的目标Exchange中。如果不设置Routing Key,Exchange会将消息路由到所有与它绑定的目标Exchange中。 x-consistent-hash Exchange需要设置Routing
在“Exchange”页签中,在Exchange后,单击“绑定”,弹出“绑定”页面。 在待解绑的Exchange后,单击“解除绑定”,弹出“解除绑定”对话框。 解除绑定后,该路由将不再提供服务,且无法恢复,请谨慎操作。 单击“是”,完成Exchange的解绑。 为Queue解绑源Exchange 登录管理控制台。 在管理控制台左上角单击,选择区域。
的通道继续消费。 提高RabbitMQ性能 本章节介绍如何通过设置队列长度、集群负载均衡、优先队列数量等参数,实现RabbitMQ的高性能。 设置队列负载均衡 本章节介绍如何设置节点间队列的负载均衡,提升集群的利用率。 通过消息幂等实现消息去重 本章节描述了重复消息产生的原因,以
x-delayed-message Exchange根据设定的Exchange类型的路由规则路由消息。 direct:该类型Exchange会将消息路由到Routing Key完全匹配的Queue中。 fanout:该类型Exchange会将消息路由到所有与其绑定的Queue中。 topic:该类型Exchange将Routing
将消息发送到Exchange中,Exchange根据路由键将消息发送到对应的Queue。 创建Queue Queue用于存储消息,每个消息都会被发送到一个或多个Queue中。 绑定Queue Exchange收到消息后,根据路由键将消息发送到绑定的Queue。 连接实例 客户端使
Live)即过期时间。消息在队列中的生存时间超过了TTL后,消息会被丢弃,如果队列设置了死信交换机,丢弃的消息会被转发到死信交换机,由死信交换机将其路由到死信队列。更多关于TTL的说明,请参考TTL。 RabbitMQ支持设置消息和队列的TTL,消息的TTL可以通过以下两种方法设置: 通过
支持AMQP协议,支持普通消息、广播消息、死信、延迟消息等特性。 灵活路由 在RabbitMQ中,生产者将消息发送到交换器,由交换器将消息路由到队列中。交换器支持Direct、Topic、Headers和Fanout四种路由方式,同时支持交换机组合和自定义。 高可用 RabbitMQ集群
Exchange接收到消息后,不会立刻投递,而是在到达延迟投递时间后才会根据Exchange类型的路由规则路由消息。 路由规则: 根据创建x-delayed-message Exchange时设定的Exchange类型的路由规则路由消息。 应用场景: x-delayed-message Exchange适用于需要延时投递消息的场景。
将死信消息发送到死信交换机中,并根据“x-dead-letter-routing-key”为死信消息设置死信路由Key。 以下示例演示在Java客户端配置死信交换机和路由: channel.exchangeDeclare("some.exchange.name", "direct");
需要额外启动一个线程,编写发送心跳的逻辑。 LVS的心跳超时时间 RabbitMQ集群实例使用LVS进行负载均衡,如图1所示,单节点实例不涉及LVS。 图1 集群实例的负载均衡 LVS对客户端连接设置了心跳超时时间,默认为90s。如果客户端在90s内没有向LVS发送心跳(AMQP
retry logic } 客户端使用建议 生产者端 网络异常可能导致消息路由失效,消息丢失。建议在生产者客户端中将Mandatory参数设置为“true”,以便在Exchange根据路由规则无法将消息路由到符合条件的Queue时,调用Basic.Return方法将消息返回给生产者。
消息。 消费者(Consumer) 接收消息的一方。消费者订阅RabbitMQ的队列,当消费者消费一条消息时,只是消费消息的消息体。在消息路由的过程中,会丢弃标签,存入到队列中的只有消息体。 队列(Queue) 队列是用于存储消息的,生产者将消息送到队列,消费者从队列中获取和消费