
# RabbitMQ扩容/缩容会影响业务吗？
扩容/缩容RabbitMQ实例的影响如[表1]所示。
 表1变更实例规格的影响 
| 变更配置类型    | 影响                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
|:---|:---|
| 代理数量      | - 扩容代理数量过程中会重启RabbitMQ的负载均衡进程，导致节点**主备倒换** ，造成**秒级业务中断**，客户端需要支持自动重连，建议在业务低峰时进行变更。  - 变更时长和新增代理数量有关，单个代理的变更时长一般在5\~10分钟，总变更时长为**（5\~10分钟）\*新增代理数量**。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| 存储空间      | - 扩容存储空间**不会影响业务**。  - 可用存储空间=实际存储空间-用于存储日志的存储空间-格式化磁盘的损耗。创建实例时会进行磁盘格式化，磁盘格式化会导致实际可用磁盘为总磁盘的93%\~95%。 例如，实际扩容存储空间到700GB，用于存储日志的数据的存储空间为100GB，格式化磁盘损耗7GB，那么扩容后的可用存储空间为593GB。   - 预计总变更时长为**5分钟内**。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| 代理规格/实例规格 | - RabbitMQ 3.x.x版本**单机实例** 在变更规格过程中，节点会重启，造成**分钟级业务中断**，客户端需要支持自动重连，建议在业务低峰时进行变更。  - RabbitMQ 3.x.x版本**没有配置镜像/仲裁队列的集群实例** 在变更规格过程中，节点会逐个重启，造成**分钟级业务中断**，客户端需要支持自动重连，建议在业务低峰时进行变更。  - RabbitMQ 3.x.x版本**配置了镜像/仲裁队列的集群实例** 在变更规格过程中，节点会逐个重启，造成**秒级业务中断**，客户端需要支持自动重连，建议在业务低峰时进行变更。  - RabbitMQ 3.x.x版本集群实例在变更规格过程中，变更中的节点连接会切换至其余节点，导致其余节点存在过载风险（比如超过连接数、内存高水位等），建议您在实例规格范围内使用，具体实例规格请参考[产品规格](https://support.huaweicloud.com/productdesc-rabbitmq/rabbitmq-pd-190828004.html)。  - RabbitMQ AMQP-0-9-1版本单机实例和集群实例在变更规格过程中会有**秒级连接闪断**，客户端需要支持自动重连，建议在业务低峰时进行变更。  - **Exchange、Queue和消息需要配置持久化** ，否则节点重启后，消息可能丢失。设置持久化的方法，请参考[配置RabbitMQ持久化](https://support.huaweicloud.com/usermanual-rabbitmq/rabbitmq_ug_0010.html)。  - 代理采用滚动重启的方式进行实例变更，变更时长和代理数量有关，单个代理的变更时长一般在5\~10分钟，总变更时长为**（5\~10分钟）\*代理数量**。   |
   
以下示例演示在Java客户端设置消息重试。
```
ConnectionFactory connectionFactory = new ConnectionFactory();
//设置服务地址
connectionFactory.setHost("localhost");
//设定端口
connectionFactory.setPort(5672);
//自动重试：
connectionFactory.setAutomaticRecoveryEnabled(true);
connectionFactory.setNetworkRecoveryInterval(5);
connectionFactory.setTopologyRecoveryEnabled(true);
```
