检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
部被动触发的保护机制,作用于生产者层面。 消息顺序性 单队列(queue)内有序。 支持单分区(partition)级别的顺序性。 单线程发送、单线程消费并且不采用延迟队列、优先级队列等一些高级功能时,才能实现消息有序。 安全机制 支持SSL认证。 支持SSL、SASL身份认证和读写权限控制。
Heartbeats and TCP Keepalives。 一些客户端(如C语言客户端)没有发送心跳的逻辑,即使配置了心跳超时时间,开启了心跳,仍然无法发送心跳。此时需要额外启动一个线程,编写发送心跳的逻辑。 LVS的心跳超时时间 RabbitMQ集群实例使用LVS进行负载均衡,如图1所示,单节点实例不涉及LVS。
可以将消息重复的场景分为以下两类: 生产者发送消息时发生消息重复: 生产者发送消息时,消息成功发送至服务端。如果此时发生网络闪断,导致生产者未收到服务端的响应,此时生产者会认为消息发送失败,因此尝试重新发送消息至服务端。当消息重新发送成功后,在服务端中就会存在两条内容相同的消息
消息轨迹的参数说明如表3所示。 表3 消息轨迹的参数说明 参数 参数说明 生产者状态 生产者状态如下: 发送成功:消息发送成功,服务端已经成功存储消息。 生产耗时 生产者发送消息的耗时,单位ms。 地址 生产者的IP地址。 消费者状态 消费者状态如下: 消费成功 消费超时 消费异常
按需计费RabbitMQ实例生命周期 欠费预警 系统会在每个计费周期后的一段时间对按需计费资源进行扣费。当您的账户被扣为负值时,我们将通过邮件、短信和站内信的方式通知到华为云账号的创建者。 欠费后影响 账号欠费,资源进入宽限期 当您的账号因按需RabbitMQ实例自动扣费导致欠费
SDK概述 本文介绍了分布式消息服务RabbitMQ版提供的SDK语言版本,列举了最新版本SDK的获取地址。 在线生成SDK代码 API Explorer能根据需要动态生成SDK代码功能,降低您使用SDK的难度,推荐使用。 SDK列表 在开始使用之前,请确保您安装的是最新版本的S
设置告警策略和告警级别。 例如,在进行指标监控时,如果连续3个周期,连接数原始值超过设置的值,则产生告警,如果未及时处理,则每一天发送一次告警通知。 设置“发送通知”开关。当开启时,设置告警生效时间、产生告警时通知的对象以及触发的条件。 单击“立即创建”,等待创建告警规则成功。 父主题:
示例代码(Java) 连接实例并生产消息示例代码: VHOST_NAME:消息要发送的Queue所在的Vhost名称。 QUEUE_NAME:消息要发送的Queue名称。 Hello World!:要发送的消息,根据实际需要修改。 ConnectionFactory factory
示例代码(Java) 连接实例并生产消息示例代码: VHOST_NAME:消息要发送的Queue所在的Vhost名称。 QUEUE_NAME:消息要发送的Queue名称。 Hello World!:要发送的消息,根据实际需要修改。 ConnectionFactory factory
服务器资源。 消息特性丰富 支持AMQP协议,支持普通消息、广播消息、死信、延迟消息等特性。 灵活路由 在RabbitMQ中,生产者将消息发送到交换器,由交换器将消息路由到队列中。交换器支持Direct、Topic、Headers和Fanout四种路由方式,同时支持交换机组合和自定义。
ange”和“x-dead-letter-routing-key”参数。队列根据“x-dead-letter-exchange”将死信消息发送到死信交换机中,并根据“x-dead-letter-routing-key”为死信消息设置死信路由Key。 以下示例演示在Java客户端配置死信交换机和路由:
在实际或预测超过预算阈值时,自动发送通知给指定消息接收人。企业还可以创建预算报告,定期将指定预算进展通知给指定消息接收人。 例如企业需要创建一个RabbitMQ实例的按需成本预算,每月预算金额为2000元,当预测金额高于预算金额的80%时发送预算告警。那么,创建的预算如下: 图4
delayTime); return message; }); LOG.info("发送延迟消息:{},延时:{}ms", msg, delayTime); return true; } } 消费消息 import
Queue设置为持久化后,可通过客户端设置“MessageProperties”为“PERSISTENT_TEXT_PLAIN”,向Queue发送持久消息。 以下示例演示在Java客户端设置Message持久化: import com.rabbitmq.client.MessageProperties;
API同时支持使用AK/SK认证,AK/SK认证是使用SDK对请求进行签名,签名过程会自动往请求中添加Authorization(签名认证信息)和X-Sdk-Date(请求发送的时间)请求头。 AK/SK认证的详细说明请参见认证鉴权的“AK/SK认证”。 对于管理员创建IAM用户接口,使用AK/SK方式认证时,添加消息头后的请求如下所示。
问密钥一起使用,对请求进行加密签名。 SK(Secret Access Key):与访问密钥ID结合使用的密钥,对请求进行加密签名,可标识发送方,并防止请求被修改。 使用AK/SK认证时,您可以基于签名算法使用AK/SK对请求进行签名,也可以使用专门的签名SDK对请求进行签名。详
果连接失败,就会执行channel.close方法,关闭这个通道。 如果通道连接的不是队列所在的节点,消费者不会触发关闭动作,而是由服务端发送的一个取消动作。这个动作对amqp-client来说并不是异常行为,所以日志上不会有明显的报错,但是连接最终还是会关闭。 amqp-cli
e。 dead_letter_routing_key 否 String 死信Exchange的RoutingKey,死信Exchange会发送死信消息到绑定对应RoutingKey的Queue上。 message_ttl 否 Long 发布到Queue的消息在被丢弃之前可以存活多长时间
消息优先级 支持。 支持。 消息重试机制 支持。消息消费超过一定时间未响应会重新投递。重试间隔时间为1分钟,最多重试16次,超过则会丢弃或发送至死信Exchange。 不支持。 监控指标 指标丰富,维度可精确到Vhost、Exchange和Queue,便于您快速发现和定位问题。 支持以下两种方案:
35版本单条消息的最大长度为50MB,RabbitMQ AMQP-0-9-1版本单条消息的最大长度为4MB。 服务端限制了单条消息的最大长度,请勿发送大于此长度的消息,否则生产失败。