3.2. 停止代理实例
手动停止代理实例,或者将代理配置为安全关闭。
3.2.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.2.2. 正常停止代理实例
在输入 stop
命令后,手动关闭会强制断开所有客户端。另外,使用 启用了 secureful-shutdown 的配置元素将代理配置为安全关闭
。
当将 secureful-shutdown-enabled
设置为 true
时,在输入 stop
命令后不允许新的客户端连接。但是,允许现有连接在关闭过程启动前在客户端上关闭。graceful-shutdown-enabled
的默认值为 false
。
使用 secureful-shutdown-timeout
配置元素设置时长(以毫秒为单位),以便客户端在从代理侧强制关闭连接前断开连接。关闭所有连接后,关闭过程将启动。使用 secureful -shutdown-timeout
的一个优点是,它可防止客户端连接延迟关闭。graceful-shutdown-timeout
的默认值为 -1,
这意味着代理无限期等待客户端断开连接。
以下流程演示了如何配置使用超时的安全关闭。
流程
-
打开配置文件 <
broker_instance_dir> \etc\broker.xml
。 添加 secure
ful-shutdown-enabled
配置元素,并将值设为true
。<configuration> <core> ... <graceful-shutdown-enabled> true </graceful-shutdown-enabled> ... </core> </configuration>
添加 secure
ful-shutdown-timeout
配置元素,并以毫秒为单位为超时设置值。在以下示例中,在发出stop
命令后,客户端连接会强制关闭 30 秒(30000
毫秒)。<configuration> <core> ... <graceful-shutdown-enabled> true </graceful-shutdown-enabled> <graceful-shutdown-timeout> 30000 </graceful-shutdown-timeout> ... </core> </configuration>