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
命令后,手动关闭会强制断开所有客户端的连接。作为替代方案,使用启用了 graceful-shutdown
的配置元素将代理配置为安全关闭。
当启用 graceful-shutdown-enabled
时,在输入 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
配置元素,并设置以毫秒为单位的超时值。在以下示例中,在发出stop
命令后,客户端连接强制关闭 30 秒(30000
毫秒)。<configuration> <core> ... <graceful-shutdown-enabled> true </graceful-shutdown-enabled> <graceful-shutdown-timeout> 30000 </graceful-shutdown-timeout> ... </core> </configuration>