检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
死信消息会被RabbitMQ进行特殊处理,如果配置了死信队列,该消息将会被存储到死信队列中,如果没有配置死信队列,该消息将会被丢弃。 更多关于死信的说明,请参考Dead Letter Exchanges。 在RabbitMQ中,使用死信可能会对性能产生负面影响,请慎用。 使用队列参数配置死信交换机和路由
-cp .:rabbitmq-tutorial-sll.jar Send {host} {port} {user} {password} 参数说明如下: {host}:从前提条件中获取的连接地址。 {port}:RabbitMQ实例的连接端口,输入5671。 {user}:从前提条件中获取的用户名。
java -cp .:rabbitmq-tutorial.jar Send {host} {port} {user} {password} 参数说明如下: {host}:从前提条件中获取的连接地址。 {port}:RabbitMQ实例的连接端口,输入5672。 {user}:从前提条件中获取的用户名。
如图1所示,Producer生产9条消息,由于队列设置了单一活跃消费者特性,只有Consumer 1在消费消息。 更多关于单一活跃消费者的说明,请参考Single Active Consumer。 图1 单一活跃消费者消费流程 约束与限制 仅RabbitMQ 3.8.35版本支持单一活跃消费者特性。
在左侧导航栏,单击“用户管理”,进入“用户管理”页面。 单击“创建用户”,弹出“创建用户”对话框。 参考表1,设置用户名称和配置信息。 表1 用户参数说明 参数 说明 用户名 用户名支持自定义,但需要符合命名规则:长度为7~64个字符,由英文字母开头,只能由英文字母、数字、中划线、下划线组成。 用户名创建成功后,不可修改。
告警策略,配置监控指标的告警规则。 表1 RabbitMQ实例配置告警的指标(RabbitMQ 3.x.x版本) 指标名称 告警策略 指标说明 解决方案 内存高水位状态 告警阈值:原始值>=1 连续触发次数:1 告警级别:致命 告警阈值为1表示触发内存高水位,会阻塞消息生产 加快消费
停止生产,等待数据消费完,然后删除原有队列。 在“Overview”页签中,确认数据是否已消费完。 可消费消息数(Ready)和未确认的消息数(Unacked)都为0时,说明消费完成。 等数据消费完后,删除原有队列。 在“Queues”页签,单击需要删除的队列名称,进入队列详情页面。 单击“Delete Queue”,删除队列。
处于以下情况时,无需使用惰性队列: RabbitMQ需要高性能的场景。 队列总是很短(即队列中没有消息堆积)。 设置了最大长度策略。 更多关于惰性队列的说明,请参考Lazy Queues。 约束与限制 仅RabbitMQ 3.8.35版本支持惰性队列。 配置惰性队列 队列具备两种模式:defa
仲裁队列的消息会优先保存在内存中,使用仲裁队列时,建议定义队列最大长度和最大内存占用,在消息堆积超过阈值时从内存转移到磁盘,以免造成内存高水位。 更多关于仲裁队列的说明,请参考Quorum Queues。 约束与限制 仅RabbitMQ 3.8.35版本支持仲裁队列。 仲裁队列与镜像队列的差异 仲裁队列是RabbitMQ
的配置,消费者在处理消息时会将所有消息保存在内存中,太大的预取值会对消费者的性能产生负面影响,甚至可能会导致消费者崩溃。 更多关于预取值的说明,请参考Consumer Prefetch。 预取值设置建议 如果您只有一个或很少几个消费者在处理消息,建议一次预取多条消息,尽量让客户端
息后确认。 生产者确认会影响性能,如果需要很高的吞吐量,应禁用生产者确认。注意,不使用生产者确认会导致可靠性下降。 更多关于消息确认机制的说明,请参考Consumer Acknowledgements and Publisher Confirms。 生产者确认 生产者确认,即服务端在收到来自生产者的消息时进行确认。
在RabbitMQ实例的安全组中设置如表1所示规则后,才能成功通过IPv4弹性IP地址连接RabbitMQ。 表1 安全组规则 方向 类型 协议 端口 源地址 说明 入方向 IPv4 TCP 5672 RabbitMQ客户端所在的IP地址或地址组 客户端使用IPv4地址访问RabbitMQ实例(关闭SSL加密)
半。客户端在两次错过心跳后,会被认为是不可达的,TCP连接将被关闭。当客户端检测到服务端由于心跳而无法访问时,需要重新连接。更多关于心跳的说明,请参考Detecting Dead TCP Connections with Heartbeats and TCP Keepalives。
return; } //查询数据库中是否存在主键为messageID的记录,如果存在,说明这条消息已经被消费,无需处理,否则消费消息,并且在消费完成后将消息记录入库 //数据库查询逻辑省略
RabbitMQ的指定资源与对应路径 指定资源 资源名称 资源路径 rabbitmq 实例 【格式】 DMS:*:*:rabbitmq:实例ID 【说明】 对于实例资源,IAM自动生成资源路径前缀DMS:*:*:rabbitmq: 通过实例ID指定具体的资源路径,支持通配符*。例如: DM
${Exchange名称} -s 1024 -u ${队列名称} -x ${生产者个数} -y ${消费者个数} -z ${运行时间} 参数说明如下: 实例用户名:购买实例时设置的用户名。 实例密码:购买实例时设置的密码。 内网连接地址:购买实例后获取的内网连接地址。 队列名称:队列的名称。
若消费速度过低,服务端将不堪重负。 大量的连接和通道可能会影响RabbitMQ管理接口的性能 RabbitMQ会收集每个连接和通道的数据进行分析和显示,大量连接和通道会影响RabbitMQ管理接口的性能。 禁用未使用的插件 插件可能会消耗大量CPU或占用大量内存,建议禁用未使用的插件。