检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
实现RabbitMQ节点重启后消费者自动重连 方案概述 RabbitMQ的amqp-client虽然自带重连机制,但是自带的重连机制只会重试一次,重连失败后就不再执行。这时如果消费者没有做额外的重试机制,那么这个消费者就彻底断开与服务端的连接,无法消费消息。 amqp-clien
RabbitMQ实例开启SSL后,证书怎么获取? RabbitMQ 3.x.x版本实例开启SSL后只做单向认证,不需要证书。 父主题: 实例问题
实现网络异常时RabbitMQ客户端自动恢复 方案概述 由于服务端重启、网络抖动等原因造成客户端网络连接断开时,将导致客户端无法正常生产和消费消息。 通过在客户端侧设置重连机制,使客户端在网络连接断开时自动恢复连接,降低网络故障对业务的影响。以下场景会触发网络自动恢复: 在连接的I/O循环中抛出未处理的异常
到磁盘中。 非持久化的Queue、Exchange在重启之后会丢失。 非持久化的Message在重启之后会丢失(经过持久化Queue/Exchange的消息不会自动变为持久化消息)。 持久化消息在尚未完成持久化时,如果服务器重启,消息会丢失。 RabbitMQ AMQP-0-9-
延迟消息存储在Mnesia内存数据库中,堆积过多(数十万甚至数百万条)可能触发内存高水位阻塞生产消息,具体请参见Limitations。 延迟消息堆积数量越多,RabbitMQ节点启动加载耗时越久,可能导致节点重启后无法快速恢复业务。 延迟消息在RabbitMQ中为单副本存储,如果该节点发生重启,该节点上的延迟消息无法被消费端消费。
itmq_consistent_hash_exchange插件,如果需要开启,请提交工单联系技术人员在后台开启插件。 开启插件过程中,不会重启实例。 rabbitmq_shovel和rabbitmq_federation插件在特定场景下才支持开启,具体如表2所示。 表2 支持开启插件的场景
RUNNING 实例正常运行状态。在这个状态的实例可以运行您的业务。 ERROR 实例处于故障的状态。 RESTARTING 实例正在进行重启操作。 STARTING 实例从已冻结到运行中的中间状态。 EXTENDING 实例正在进行规格变更操作。 EXTENDEDFAILED 实例处于规格变更操作失败的状态。
该参数针对企业用户使用。修改企业项目,不会重启实例。 页面上方直接提示修改结果。 描述 单击,输入修改后的描述,单击。 长度为0~1024个字符。 页面上方直接提示修改结果。 安全组 单击,在下拉框中选择新的安全组,单击。 修改安全组,不会重启实例。 页面上方直接提示修改结果。 公网访问
RabbitMQ实例集群内部的队列是否有冗余备份? RabbitMQ实例是否支持持久化,如何定时备份数据? RabbitMQ实例开启SSL后,证书怎么获取? RabbitMQ实例的SSL开关是否支持修改? RabbitMQ实例是否支持扩容? RabbitMQ支持双向认证吗? RabbitMQ支持升级CPU和内存吗?
使用较小的队列长度 队列中存在大量消息时,会给内存使用带来沉重的负担。为了释放内存,RabbitMQ会将消息刷新到磁盘。刷盘需要重建索引,重启包含大量消息的集群,导致这个过程非常耗时。当刷盘的消息过多时,会阻塞队列处理消息,从而降低队列速度,影响RabbitMQ节点的性能。 要获
本章节提供了客户端重连示例代码,使客户端在网络异常导致连接断开时自动恢复连接,降低网络故障对业务的影响。 实现RabbitMQ节点重启后消费者自动重连 本章节提供了RabbitMQ节点重启后消费者自动重连示例代码,实现在通道关闭后重新为消费者创建新的通道继续消费。 提高RabbitMQ性能 本章节介
_shovel和rabbitmq_consistent_hash_exchange插件,实例创建后默认都是关闭状态。 开启插件过程中,不会重启实例。 支持区域: 全部 开启实例插件 高级特性 开源RabbitMQ提供了多个高级特性,如惰性队列、仲裁队列、死信和TTL等,您可以在客户端调用函数或使用RabbitMQ
AMQP-0-9-1版本Exchange默认开启持久化。 是否开启Exchange持久化。 开启:该Exchange在服务器重启后仍然存在。 不开启:该Exchange在服务器重启后会被删除,需要重新创建。 Internal 仅RabbitMQ 3.x.x版本包含此参数。 Exchange是否为RabbitMQ内部使用。
x版本需要设置此参数。RabbitMQ AMQP-0-9-1版本Queue默认开启持久化。 是否开启Queue持久化。 开启:该Queue在服务器重启后仍然存在。 不开启:该Queue在服务器重启后会被删除,需要重新创建。 自动删除 是否开启自动删除Queue。 开启:在订阅该Queue消息的最后一个消费者取消
消息的消费应用程序在未处理完消息前不应确认消息,以便消费者有足够的时间处理消息,无需担心消息处理过程中由于消费者进程异常(如工作程序崩溃、重启等)导致消息丢失。 消费者确认在客户端上配置,通过配置basicConsume方法启用确认。在channel中启用消费者确认适用于大多数场景。
environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment ak = os.environ["CLOUD_SDK_AK"] sk = os.environ["CLOUD_SDK_SK"]
消费者根据messageID对消息进行幂等处理,示例代码如下: //创建一个以messageID为主键的数据库表,利用数据库主键去重的方式来处理RabbitMQ幂等。 //在消费者消费前先去数据库查询这条消息是否存在,如果存在表示消息已被消费,无需处理;如果不存在表示消息未被消费,执行消费操作
environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment ak = os.environ["CLOUD_SDK_AK"] sk = os.environ["CLOUD_SDK_SK"]
企业项目ID。 is_logical_volume Boolean 实例扩容时用于区分老实例与新实例。 true:新创建的实例,允许磁盘动态扩容不需要重启。 false:老实例。 extend_times String 实例扩容磁盘次数,如果超过20次则无法扩容磁盘。 表3 错误码说明 错误码
连接未开启SSL方式的RabbitMQ实例 连接已开启SSL方式的RabbitMQ实例 连接RabbitMQ管理地址 05 实践 弹性云服务器(Elastic Cloud Server)是一种可随时自动获取、计算能力可弹性伸缩的云服务器。 部署web环境 什么是ECS 创建容器应用基本流程 快速创建一个kubernetes集群