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,这意味着代理会无限期等待客户端断开连接。

以下步骤演示了如何配置使用超时的安全关闭。

流程

  1. 打开配置文件 < broker_instance_dir>\etc\broker.xml
  2. 添加 graceful-shutdown-enabled 配置元素,并将值设为 true

    <configuration>
         <core>
              ...
              <graceful-shutdown-enabled>
                  true
              </graceful-shutdown-enabled>
              ...
         </core>
    </configuration>
  3. 添加 graceful-shutdown-timeout 配置元素,并设置以毫秒为单位的超时值。在以下示例中,在发出 stop 命令后,客户端连接强制关闭 30 秒(30000 毫秒)。

    <configuration>
         <core>
              ...
              <graceful-shutdown-enabled>
                  true
              </graceful-shutdown-enabled>
              <graceful-shutdown-timeout>
                  30000
              </graceful-shutdown-timeout>
              ...
         </core>
    </configuration>
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.