检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
当您购买了RabbitMQ实例后,可以根据自身的业务需求使用分布式消息服务RabbitMQ版提供的一系列常用实践。 表1 常用最佳实践 实践 描述 设置队列负载均衡 扩容节点、删除队列可能会导致队列在各个节点分布不均衡,本文介绍如何设置队列负载均衡。
实现RabbitMQ的高性能。 设置队列负载均衡 本章节介绍如何设置节点间队列的负载均衡,提升集群的利用率。 通过消息幂等实现消息去重 本章节描述了重复消息产生的原因,以及处理措施,避免因消息重复而对业务产生影响。 DMS for RabbitMQ安全使用建议 本章节提供了Ra
Host 设置策略所应用的Vhost。如果为指定的Vhost设置,请在“Virtual Host”选择3创建的Vhost;如果没有,则默认为“/”。 Name 策略的名称,用户自定义。 Pattern Queue的匹配模式(正则表达式)。 Apply to 策略所适用的目标。 Priority
RabbitMQ实例在到期前续费成功,所有资源得以保留,且RabbitMQ实例的运行不受影响。RabbitMQ实例到期后的状态说明,请参见到期后影响。 续费相关的功能 包年/包月RabbitMQ实例续费相关的功能如表1所示。 表1 续费相关的功能 功能 说明 手动续费 包年/包月RabbitMQ实例
删除RabbitMQ实例 对于按需计费的RabbitMQ实例,控制台支持删除单个实例,也可批量删除实例。对于包年/包月的RabbitMQ实例,如果不再使用,单击“操作”栏下的“更多 > 退订”,退订成功后,RabbitMQ实例会自动被删除。 删除的实例能否恢复取决于是否开启回收站策略
通过队列属性设置:队列中所有消息的具有相同的过期时间。 对消息本身单独设置:每条消息可以设置不同的TTL。 如果两种方法同时使用,以较小的TTL为准。 TTL是RabbitMQ中需要慎用的特性,它可能会对性能产生负面影响。 设置队列TTL 通过channel.queueDeclare方法中的“x-ex
tMQ官方团队维护的3个客户端(Java、.NET、Erlang语言)的心跳超时时间协商逻辑如下: 服务端和客户端设置的心跳超时时间都不为0时,两者间较小的值生效。 服务端和客户端任意一端设置的心跳超时时间为0,另一端不为0时,非0的值生效。 服务端和客户端的心跳超时时间都设置为0时,表示禁用心跳。
为目标RabbitMQ实例添加新的消费者,准备消费目标实例的消息。 图4 添加新消费者 为目标RabbitMQ实例添加新的生产者,下线原RabbitMQ实例的生产者,旧的消费者继续消费原RabbitMQ实例中的消息。 图5 迁移生产者 旧的消费者消费完原RabbitMQ实例的全部消息后,下线旧的消费者和原RabbitMQ实例。
单击Vhost名称,进入Vhost详情页。 在“Queue”页签的待绑定的Queue所在行,单击“查看详情”,弹出“查看详情”页面。 在“绑定信息”页签,单击“添加绑定”,弹出“添加绑定”对话框。 参考表2,设置绑定参数。 表2 绑定参数说明 参数 说明 绑定源端 在下拉框中选择需要绑定的Exchange。 Routing
开启回收站策略的实例在被删除后,会被临时存入回收站中,此时实例中的数据尚未被彻底删除,在保留天数内支持从回收站中恢复此实例。超过保留天数的实例会被彻底删除,无法恢复。 回收站策略默认是关闭状态。 约束与限制 回收站中的按需实例不会收取实例的费用,但是会收取存储空间的费用。 包年/
减少惰性队列的消息堆积 减少持久化队列的消息堆积 删除队列 内存使用率 告警阈值:原始值>业务预期使用率(推荐30%) 连续触发次数:连续3~5个周期 告警级别:重要 该指标需要分别为每个节点设置内存使用率告警,避免触发内存高水位阻塞生产 加快消费 采用生产者确认的发送模式,并监
Key匹配成功的Queue中。如果不设置Routing Key,Exchange会将消息路由到所有与它绑定的Queue中。 x-consistent-hash Exchange需要设置Routing Key,Routing Key表示Queue的权重。数值越大,Queue的权重越大,分发消息时接收到的消息越多。
客户端和RabbitMQ实例部署在同一个Region的不同VPC中,利用VPC对等连接将两个VPC间的网络打通,实现跨VPC访问。 对等连接 客户端连接RabbitMQ实例前,需要放通如下安全组,否则会连接失败。 创建安全组后,系统默认添加入方向“允许安全组内的弹性云服务器彼此通信”规则和出方向“
Key):与访问密钥ID结合使用的密钥,对请求进行加密签名,可标识发送方,并防止请求被修改。 使用AK/SK认证时,您可以基于签名算法使用AK/SK对请求进行签名,也可以使用专门的签名SDK对请求进行签名。详细的签名方法和SDK使用方法请参见API签名指南。 签名SDK只提供签名功能,与服务提供的SDK不同,使用时请注意。
可访问的Vhost:在下拉框中选择用户可以访问的Vhost。 可配置的资源:为用户授予Vhost下资源的权限,使用正则表达式匹配资源。例如输入“^test-.*”,表示为用户授予Vhost下所有名称以“test-”开头的资源的权限。 可写的资源:为用户授予Vhost下资源的写权限,使用正则表达式匹配资源。例如输入“
对于管理员创建IAM用户接口,您可以从接口的请求部分看到所需的请求参数及参数说明,将消息体加入后的请求如下所示,其中加粗的字段需要根据实际值填写。 accountid为IAM用户所属的账号ID。 username为要创建的IAM用户名。 email为IAM用户的邮箱。 **********为IAM用户的登录密码。
{password} 参数说明如下: {host}:从前提条件中获取的连接地址。 {port}:RabbitMQ实例的连接端口,输入5671。 {user}:从前提条件中获取的用户名。 {password}:从前提条件中获取的密码。 图1 生产消息示例 运行消费消息示例。 java -cp
{password} 参数说明如下: {host}:从前提条件中获取的连接地址。 {port}:RabbitMQ实例的连接端口,输入5672。 {user}:从前提条件中获取的用户名。 {password}:从前提条件中获取的密码。 消费消息示例如下: [root@ecs-test RabbitMQ-Tutorial]#
在“Queue”页签中,通过以下任意一种方法,删除Queue。 勾选Queue名称左侧的方框,可选一个或多个,单击信息栏左上侧的“删除Queue”。 在待删除的Queue所在行,单击“删除”。 单击“确定”,完成Queue的删除。 删除单个Queue(RabbitMQ WebUI) 登录RabbitMQ
x版本支持以上两种创建Vhost的方式,RabbitMQ AMQP-0-9-1版本只支持在控制台创建Vhost。 约束与限制 实例创建后,RabbitMQ 3.x.x版本会自动创建一个名为“/”的Vhost,RabbitMQ AMQP-0-9-1版本会自动创建一个名为“default”的Vhost。