You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Red Hat AMQ(ActiveMQ Artemis 2.28.0)共享存储高可用配置故障排查

Red Hat AMQ共享存储高可用故障排查方案

一、NFS共享存储验证

  • 确认VM2能正常挂载VM1的NFS共享,执行 mount | grep nfs 检查挂载状态,确保挂载点路径和Broker配置的journal-directory完全一致
  • 验证NFS权限:Broker运行用户(默认jboss或artemis)对NFS挂载目录需有读写执行权限,执行 ls -ld /path/to/nfs/mount 查看权限,必要时用chown调整
  • 测试NFS稳定性:在VM2的挂载目录创建/删除文件,确认VM1端同步正常;主节点运行时,手动在NFS目录创建lock文件,检查从节点能否检测到该文件存在

二、主从Broker核心配置检查

1. 共享存储核心配置(broker.xml)

主从节点的journal-directory必须指向同一NFS挂载路径,且需配置共享存储锁定:

<journal-directory>/mnt/nfs/amq-journal</journal-directory>
<persistence-enabled>true</persistence-enabled>
<shared-store>true</shared-store>
<failover-on-shutdown>true</failover-on-shutdown>
  • 确保主从节点node-id唯一,ha-policy配置区分主从:
<!-- 主节点VM1配置 -->
<ha-policy>
   <shared-store>
      <master>
         <failover-on-shutdown>true</failover-on-shutdown>
         <check-for-live-server>true</check-for-live-server>
      </master>
   </shared-store>
</ha-policy>

<!-- 从节点VM2配置 -->
<ha-policy>
   <shared-store>
      <slave>
         <allow-failback>true</allow-failback>
      </slave>
   </shared-store>
</ha-policy>

注意:主从节点的ha-policy配置不能混淆,必须严格对应角色。

2. 连接与发现配置

  • 共享存储HA依赖文件锁机制,无需额外复杂的广播组/发现组配置,建议暂时注释掉cluster-connection(集群连接用于Broker集群,非主从切换必需)
  • 验证主从节点的acceptor配置,确保对外监听地址正确,示例:
<acceptor name="artemis">tcp://0.0.0.0:61616?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;amqpMinLargeMessageSize=102400;protocols=CORE,AMQP,STOMP,HORNETQ,MQTT,OPENWIRE;useEpoll=true;amqpCredits=1000;amqpLowCredits=300;amqpDuplicateDetection=true</acceptor>

三、网络与系统层面排查

  • 检查VM1和VM2之间的防火墙规则,确保NFS端口(默认2049、111)、AMQ端口(61616、8161)完全开放,执行 firewall-cmd --list-all 验证
  • 确认VM1上NFS服务正常运行:systemctl status nfs-server,同时检查RPC服务状态:systemctl status rpcbind
  • 查看系统日志中NFS相关错误:VM1执行 journalctl -u nfs-server,VM2执行 journalctl -u nfs-client.target,排查挂载超时、权限拒绝等问题

四、日志分析重点

  • 主节点关闭时,查看VM2的artemis.log,搜索关键字SharedStoreMasterPolicy、lock、failover,确认是否检测到主节点的文件锁释放
  • 主节点连接异常时,检查artemis.log中的ConnectionFactory、Acceptor相关错误,排查是否因NFS延迟导致Journal读写超时,可尝试调整Journal参数:
<journal-buffer-timeout>60000</journal-buffer-timeout>
<journal-file-size>10485760</journal-file-size>

内容的提问来源于stack exchange,提问作者Jacob

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 01:02:32