3.4. 停止代理实例
手动停止代理实例或将代理配置为安全关闭。
3.4.1. 停止 broker 实例
创建独立代理并生成和使用测试消息后,您可以停止代理实例。
此流程手动停止代理,代理强制关闭所有客户端连接。在生产环境中,您应该将代理配置为正常停止,以便正确关闭客户端连接。
流程
使用
artemis stop
命令停止代理实例:$ /var/opt/amq-broker/mybroker/bin/artemis stop 2018-12-03 14:37:30,630 INFO [org.apache.activemq.artemis.core.server] AMQ221002: Apache ActiveMQ Artemis Message Broker version 2.6.1.amq-720004-redhat-1 [b6c244ef-f1cb-11e8-a2d7-0800271b03bd] stopped, uptime 35 minutes Server stopped!
3.4.2. 正常停止代理实例
在输入 stop
命令后,手动关闭会强制断开所有客户端的连接。作为替代方案,使用 graceful-shutdown-enabled
配置元素将代理配置为安全地关闭。
当将 graceful-shutdown-enabled
设置为 true
时,在输入 stop
命令后不允许使用新的客户端连接。但是,在关闭过程启动前,允许现有连接在客户端端关闭。graceful-shutdown-enabled
的默认值为 false
。
使用 graceful-shutdown-timeout
配置元素设置时间长度(以毫秒为单位),以便客户端在连接被强制从代理端完全关闭前断开连接。在所有连接都关闭后,关闭过程将启动。使用 graceful-shutdown-timeout
的一个优点是它会阻止客户端连接延迟关闭。graceful-shutdown-timeout
的默认值为 -1,
这意味着代理无限期等待客户端断开连接。
以下流程演示了如何配置使用超时的安全关闭。
流程
-
打开配置文件 <
broker_instance_dir> \etc\broker.xml
。 添加
graceful-shutdown-enabled
配置元素,并将值设为true
。<configuration> <core> ... <graceful-shutdown-enabled> true </graceful-shutdown-enabled> ... </core> </configuration>
添加
graceful-shutdown-timeout
配置元素,以毫秒为单位设置 timeout 值。在以下示例中,在发出stop
命令后,客户端连接被强制关闭 30 秒(30000
毫秒)。<configuration> <core> ... <graceful-shutdown-enabled> true </graceful-shutdown-enabled> <graceful-shutdown-timeout> 30000 </graceful-shutdown-timeout> ... </core> </configuration>