检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
设置队列负载均衡 方案概述 在RabbitMQ集群上,由于扩容节点、删除队列等原因,会导致队列在各个节点分布不均衡,从而造成部分节点压力过大,无法更有效地利用集群。 这时候需要手动设置节点间队列的负载均衡,提升集群的利用率。设置队列负载均衡的方法如下: 删除队列重建 通过Policy修改master节点方式
为什么RabbitMQ集群只有一个连接地址? RabbitMQ集群实例的连接地址,实际上是实例的LVS节点地址(负载均衡地址),客户端连接实例时,通过负载均衡器将客户端请求分发到集群实例的各个节点。 图1 连接示意图 父主题: 连接问题
RabbitMQ集群实例如何均衡分发请求到每个虚拟机? 集群内部使用LVS做负载均衡,由LVS将请求均衡分发到每个虚拟机节点。 父主题: 实例问题
频繁打开和关闭连接或通道会发送和接收大量的TCP包,从而导致更高的延迟,确保不要频繁打开和关闭连接或通道。 生产者和消费者使用不同的连接 生产者和消费者使用不同的连接以实现高吞吐量。当生产者发送太多消息给服务端处理时,RabbitMQ会将压力传递到TCP连接上。如果在同一个TCP连接上消费,服务端可能
35版本:不支持,但可以自行封装。 AMQP-0-9-1版本:支持。 多租户 支持 支持 支持 多协议支持 兼容RocketMQ协议。 只支持Kafka自定义协议。 RabbitMQ基于AMQP协议实现。 跨语言支持 支持多语言的客户端。 采用Scala和Java编写,支持多种语言的客户端。
布式消息服务RabbitMQ版提供的一系列常用实践。 表1 常用最佳实践 实践 描述 设置队列负载均衡 扩容节点、删除队列可能会导致队列在各个节点分布不均衡,本文介绍如何设置队列负载均衡。
的通道继续消费。 提高RabbitMQ性能 本章节介绍如何通过设置队列长度、集群负载均衡、优先队列数量等参数,实现RabbitMQ的高性能。 设置队列负载均衡 本章节介绍如何设置节点间队列的负载均衡,提升集群的利用率。 通过消息幂等实现消息去重 本章节描述了重复消息产生的原因,以
次错过心跳后,会被认为是不可达的,TCP连接将被关闭。当客户端检测到服务端由于心跳而无法访问时,需要重新连接。更多关于心跳的说明,请参考Detecting Dead TCP Connections with Heartbeats and TCP Keepalives。 一些客户端
这个临时响应用来通知客户端,它的部分请求已经被服务器接收,且仍未被拒绝。 101 Switching Protocols 切换协议。只能切换到更高级的协议。 例如,切换到HTTP的新版本协议。 200 OK 请求成功。 201 Created 创建类的请求完全成功。 202 Accepted 已经接受请求,但未处理完成。
您从请求消息中单独传递它,所以在此单独强调。 表1 URI中的参数说明 参数 描述 URI-scheme 表示用于传输请求的协议,当前所有API均采用HTTPS协议。 Endpoint 指定承载REST服务端点的服务器域名或IP,不同服务不同区域的Endpoint不同,您可以从地区和终端节点获取。
安全组规则(RabbitMQ 3.x.x版本) 方向 类型 协议 端口 源地址 说明 入方向 IPv4 TCP 5672 RabbitMQ客户端所在的IP地址或地址组 客户端使用IPv4地址访问RabbitMQ实例(关闭SSL加密) 入方向 IPv4 TCP 5671 RabbitMQ客户端所在的IP地址或地址组
* 3 12000 16核 | 32GB * 3 24000 rabbitmq.16u32g.cluster * 3 48000 新老规格区别如下: 新规格性能更好,同等价格下性价比更优。 老规格使用的非独享资源,在高负载情况下容易出现资源抢占情况。新规格使用的独占资源,性能更优、稳定性更好。
RabbitMQ实例SSL连接的协议版本号是多少? TLS v1.2版本。 父主题: 实例问题
表示使用自己定义的Exchange和队列参数。 测试开启SSL的实例时,需要将“amqp://”修改为“amqps://”,表示以加密形式传输数据。 单队列测试脚本: ./runjava com.rabbitmq.perf.PerfTest -h amqp://${实例用户名}:${实例密码}@${内网连接地址}
消费完成。 图7 RabbitMQ WebUI 调用API查看。 curl -s -u username:password -XGET http://ip:port/api/overview 参数说明: username:原实例登录RabbitMQ WebUI的账号 password:原实例登录RabbitMQ
配置ECS安全组 表1 安全组规则 方向 协议端口 目的地址 出方向 全部放通 Default_All RabbitMQ实例所在安全组需要增加如下规则,以保证能被客户端访问。 图2 配置RabbitMQ实例安全组 表2 安全组规则 方向 协议端口 源地址 入方向 全部放通 sg-53d4
持企业项目,表示仅能在IAM中给用户组授权并生效,如果在企业管理中授权,则该自定义策略不生效。关于IAM项目与企业项目的区别,详情请参见:IAM与企业管理的区别。 DMS for RabbitMQ管理控制操作相关的企业项目细粒度权限授权项,明细如下表所示。用户调用如下API时,需
确认。在使用RabbitMQ时,生产者确认和消费者确认对于确保数据可靠性至关重要。如果连接失败,传输中的消息可能会丢失,需要重新传输。消息确认机制可以让服务端和客户端知道何时重新传输消息。客户端可以在收到消息时确认消息,也可以在客户端完全处理完消息后确认。 生产者确认会影响性能,
实例问题 RabbitMQ使用的版本是多少? RabbitMQ实例SSL连接的协议版本号是多少? 创建实例时为什么无法查看子网和安全组等信息? RabbitMQ集群实例如何均衡分发请求到每个虚拟机? RabbitMQ实例集群内部的队列是否有冗余备份? RabbitMQ实例是否支持持久化,如何定时备份数据?
调整资源使用,无需提前预置资源,从而降低预置过多或不足的风险。一般适用于电商抢购等业务需求量瞬间大幅波动的场景。 表1列出了两种计费模式的区别。 表1 计费模式 计费模式 包年/包月 按需计费 付费方式 预付费 按照订单的购买周期结算。 后付费 按照RabbitMQ实例实际使用时长计费。