检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
建议在队列上设置最大长度。这样可以通过丢弃队列头部的消息来保持队列长度,队列长度永远不会大于最大长度设置。 最大长度可以通过Policy设置,也可以通过在队列声明时使用对应参数设置。 在RabbitMQ WebUI的Policy中设置。 在队列声明时使用对应参数设置。 //创建队列
配置RabbitMQ消息预取值 设置预取值可以限制未被确认的消息个数,一旦消费者中未被确认的消息数量达到设置的预取值,服务端将不再向此消费者发送消息,除非至少有一个未被确认的消息被确认。设置预取值本质上是一种对消费者进行流控的方法。 设置预取值时,需要考虑多种因素: 预取值设置太小可能会损害性能
Exchange和Topic Exchange需要设置Routing Key,Exchange会将消息路由到Routing Key匹配成功的Queue中。如果不设置Routing Key,消息无法路由到目标Queue中。 x-consistent-hash Exchange需要设置Routing Key,Routing
Routing Key 设置Key值字符串,用于告知Exchange应该将消息投递到哪些Queue中。 Direct Exchange和Topic Exchange需要设置Routing Key,Exchange会将消息路由到Routing Key匹配成功的Queue中。如果不设置Routing
TL后,消息会被丢弃,如果队列设置了死信交换机,丢弃的消息会被转发到死信交换机,由死信交换机将其路由到死信队列。更多关于TTL的说明,请参考TTL。 RabbitMQ支持设置消息和队列的TTL,消息的TTL可以通过以下两种方法设置: 通过队列属性设置:队列中所有消息的具有相同的过期时间。
发布到Queue的消息在被丢弃之前可以存活多长时间 lazy_mode 否 String 若设置惰性队列,请输入lazy。惰性队列模式会在磁盘上存储尽可能多的消息以减少内存使用;若不设置,队列将消息存储在内存缓存以尽可能快地传递消息。(AMQP版本默认将消息存储到磁盘,不涉及此字段)
时间间隔大于90s的场景,请在客户端开启心跳并设置小于90s的心跳超时时间,防止客户端断连。如果心跳超时时间设置过低,在短暂网络抖动情况下可能会导致连接重建。如果心跳超时时间设置过长,可能导致集群进行主备切换时感知时间过长。推荐设置心跳超时时间为10s。 什么是心跳 Rabbit
说明 Name 策略的名称,用户自定义。 Pattern 队列匹配模式,填写队列名称,会匹配包含此队列名称的队列。 例如:设置为“.*”时,表示匹配所有队列。设置为“.*queue-name”时,表示匹配队列名称包含queue-name的所有队列。 Apply to 策略所适用的目标,选择“Queues”。
关闭后重新为消费者创建新的通道继续消费。 提高RabbitMQ性能 本章节介绍如何通过设置队列长度、集群负载均衡、优先队列数量等参数,实现RabbitMQ的高性能。 设置队列负载均衡 本章节介绍如何设置节点间队列的负载均衡,提升集群的利用率。 通过消息幂等实现消息去重 本章节描述
确认。在channel中启用消费者确认适用于大多数场景。 以下示例演示在Java客户端配置消费者确认(使用Channel#basicAck设置basic.ack为肯定): // this example assumes an existing channel instance boolean
Exchange中,Exchange根据路由键查找Queue,如果查找到,将消息存放到Queue中,如果未查找到,将消息丢弃。 本章节指导如何在控制台创建Exchange。RabbitMQ 3.x.x版本在创建Vhost后会创建7个默认Exchange:(AMQP default)、amq
3.x.x版本 一般情况下消息如果未被消费会一直保留,只有被消费后,才会被删除。但是如果设置了过期时间(TTL),则以TTL时间为准。 RabbitMQ AMQP-0-9-1版本 如果消息设置了TTL,无论消息是否被消费,超过TTL后,消息将被删除或存入死信队列。TTL默认为48小时。
需求使用分布式消息服务RabbitMQ版提供的一系列常用实践。 表1 常用最佳实践 实践 描述 设置队列负载均衡 扩容节点、删除队列可能会导致队列在各个节点分布不均衡,本文介绍如何设置队列负载均衡。
图3 设置Vhost策略 表1 策略参数说明 参数 说明 Virtual Host 设置策略所应用的Vhost。如果为指定的Vhost设置,请在“Virtual Host”选择3创建的Vhost;如果没有,则默认为“/”。 Name 策略的名称,用户自定义。 Pattern Queue的匹配模式(正则表达式)。
最大优先级 仅RabbitMQ AMQP-0-9-1版本包含此参数。 设置Queue的优先级,取值范围为1~9。数值越大,优先级越高。 惰性队列模式 仅RabbitMQ 3.x.x版本包含此参数。 如果需要设置Queue为惰性队列,请输入“lazy”。 惰性队列会尽可能的将消息存
查询RabbitMQ产品规格核数 功能介绍 查询RabbitMQ产品规格核数。 调用方法 请参见如何调用API。 URI GET /v2/rabbitmq/products/cores 表1 Query参数 参数 是否必选 参数类型 描述 instance_id 是 String
使用Spring Boot连接RabbitMQ实例 本文介绍如何使用Spring Boot连接RabbitMQ实例进行消息的生产和消费。 使用前请参考收集连接信息收集RabbitMQ所需的连接信息。 本文的连接示例对于RabbitMQ 3.x.x版本与AMQP-0-9-1版本都适用。
RabbitMQ实例内核升级(废弃) 功能介绍 RabbitMQ实例内核升级。 调用方法 请参见如何调用API。 URI POST /v2/{project_id}/rabbitmq/instances/{instance_id}/upgrade 表1 路径参数 参数 是否必选 参数类型
单击“创建用户”,弹出“创建用户”对话框。 参考表1,设置用户名称和配置信息。 表1 用户参数说明 参数 说明 用户名 用户名支持自定义,但需要符合命名规则:长度为7~64个字符,由英文字母开头,只能由英文字母、数字、中划线、下划线组成。 用户名创建成功后,不可修改。 密码 设置用户的密码。 密码需要符合以下命名规则:
删除绑定 功能介绍 删除绑定。 调用方法 请参见如何调用API。 URI DELETE /v2/rabbitmq/{project_id}/instances/{instance_id}/vhosts/{vhost}/exchanges/{exchange}/destinatio