当前位置: 首页 > 知识库问答 >
问题:

用于核心桥接器的Artemis HA配置

艾翼
2023-03-14

我们在两个共享磁盘HA对中有4个服务器,它们之间有核心桥接器。在所有4台服务器上,核心桥接器配置和它们使用的连接器(sms和sms1b)是相同的。唯一的区别是主从ha和其他字段中的主机名(acceptor、artemis和node0连接器、name)

<configuration xmlns="urn:activemq"
               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
               xmlns:xi="http://www.w3.org/2001/XInclude"
               xsi:schemaLocation="urn:activemq /schema/artemis-configuration.xsd">

   <core xmlns="urn:activemq:core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="urn:activemq:core ">

      <name>ba-artms3.example.com</name>      
      <security-enabled>false</security-enabled>
      <persistence-enabled>true</persistence-enabled>
      <paging-directory>/data/ba_artemis/msg-sms1/paging</paging-directory>
      <bindings-directory>/data/ba_artemis/msg-sms1/bindings</bindings-directory>
      <journal-directory>/data/ba_artemis/msg-sms1/journal</journal-directory>
      <large-messages-directory>/data/ba_artemis/msg-sms1/large-messages</large-messages-directory>

      <journal-datasync>true</journal-datasync>
      <journal-min-files>2</journal-min-files>
      <journal-pool-files>10</journal-pool-files>
      <journal-device-block-size>4096</journal-device-block-size>
      <journal-file-size>10M</journal-file-size>
      <journal-buffer-timeout>132000</journal-buffer-timeout>
      <journal-max-io>4096</journal-max-io>
      <connectors>
            <connector name="artemis">tcp://ba-artms3.example.com:2539</connector>
            <connector name = "node0">tcp://ba-artms4.example.com:2539</connector>
            <connector name="sms1">(tcp://ba-artms3.example.com:61616,tcp://ba-artms4.example.com:61616)</connector>
            <connector name="sms1b">(tcp://ba-artms9.example.com:61616,tcp://ba-artms10.example.com:61616)</connector>
      </connectors>

      <disk-scan-period>5000</disk-scan-period>
      <max-disk-usage>90</max-disk-usage>
      <critical-analyzer>true</critical-analyzer>
      <critical-analyzer-timeout>120000</critical-analyzer-timeout>
      <critical-analyzer-check-period>60000</critical-analyzer-check-period>
      <critical-analyzer-policy>HALT</critical-analyzer-policy>
      <page-sync-timeout>620000</page-sync-timeout>

      <acceptors>
         <acceptor name="artemis">tcp://ba-artms3.example.com:61616?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;amqpMinLargeMessageSize=102400;protocols=CORE,AMQP,STOMP,HORNETQ,MQTT,OPENWIRE;useEpoll=true;amqpCredits=1000;amqpLowCredits=300;amqpDuplicateDetection=true;</acceptor>
         <acceptor name="cluster">tcp://ba-artms3.example.com:2539?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;amqpMinLargeMessageSize=102400;protocols=CORE;useEpoll=true</acceptor>
         <acceptor name="amqp">tcp://ba-artms3.example.com:5672?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;protocols=AMQP;useEpoll=true;amqpCredits=1000;amqpLowCredits=300;amqpMinLargeMessageSize=102400;amqpDuplicateDetection=true</acceptor>

      </acceptors>

      <cluster-user>msg-sms1-cluster</cluster-user>

      <cluster-password>redacted</cluster-password>
      <cluster-connections>
         <cluster-connection name="msg-sms1">
            <connector-ref>artemis</connector-ref>
            <message-load-balancing>ON_DEMAND</message-load-balancing>
            <max-hops>0</max-hops>
            <static-connectors>
               <connector-ref>node0</connector-ref>

            </static-connectors>
         </cluster-connection>
      </cluster-connections>

      <ha-policy>
         <shared-store>
            <master>
               <failover-on-shutdown>true</failover-on-shutdown>
            </master>
         </shared-store>
      </ha-policy>

      <security-settings>
         <security-setting match="#">
            <permission type="createNonDurableQueue" roles="amq"/>
            <permission type="deleteNonDurableQueue" roles="amq"/>
            <permission type="createDurableQueue" roles="amq"/>
            <permission type="deleteDurableQueue" roles="amq"/>
            <permission type="createAddress" roles="amq"/>
            <permission type="deleteAddress" roles="amq"/>
            <permission type="consume" roles="amq"/>
            <permission type="browse" roles="amq"/>
            <permission type="send" roles="amq"/>
            <!-- we need this otherwise ./artemis data imp wouldn't work -->
            <permission type="manage" roles="amq"/>
         </security-setting>
      </security-settings>

      <address-settings>

         <address-setting match="activemq.management#">
            <dead-letter-address>DLQ</dead-letter-address>
            <expiry-address>ExpiryQueue</expiry-address>
            <redelivery-delay>0</redelivery-delay>
            <max-size-bytes>-1</max-size-bytes>
            <message-counter-history-day-limit>10</message-counter-history-day-limit>
            <address-full-policy>PAGE</address-full-policy>
            <auto-create-queues>true</auto-create-queues>
            <auto-create-addresses>true</auto-create-addresses>
            <auto-create-jms-queues>true</auto-create-jms-queues>
            <auto-create-jms-topics>true</auto-create-jms-topics>
         </address-setting>
         <address-setting match="#">
            <dead-letter-address>DLQ</dead-letter-address>
            <expiry-address>ExpiryQueue</expiry-address>
            <redelivery-delay>0</redelivery-delay>
            <max-size-bytes>-1</max-size-bytes>
            <message-counter-history-day-limit>10</message-counter-history-day-limit>
            <address-full-policy>PAGE</address-full-policy>
            <auto-create-queues>true</auto-create-queues>
            <auto-create-addresses>true</auto-create-addresses>
            <auto-create-jms-queues>true</auto-create-jms-queues>
            <auto-create-jms-topics>true</auto-create-jms-topics>
         </address-setting>
      </address-settings>

      <xi:include href="${configDir}/addresses.xml"/>

 <bridges>
     <bridge name="sms1_forwarder">
       <queue-name>UpdateOutboundForward_0</queue-name>
       <forwarding-address>UpdateOutbound</forwarding-address>
       <ha>true</ha>
       <failover-on-server-shutdown>true</failover-on-server-shutdown>
       <user>rave</user>
       <password>redacted</password>
       <static-connectors>
         <connector-ref>sms1</connector-ref>
       </static-connectors>
     </bridge>
     <bridge name="sms1b_forwarder">
       <queue-name>UpdateOutboundForward_1</queue-name>
       <forwarding-address>UpdateOutbound</forwarding-address>
       <ha>true</ha>
       <failover-on-server-shutdown>true</failover-on-server-shutdown>
       <user>rave</user>
       <password>redacted</password>
       <static-connectors>
         <connector-ref>sms1b</connector-ref>
       </static-connectors>
     </bridge>
  </bridges>
   </core>
</configuration>

共有1个答案

金何平
2023-03-14

您的配置看起来基本上是正确的,但是很难判断有这么多移动的部分--尤其是用于集群的额外的acceptor。我以前见过这样做的人,但这不是我测试过或推荐过的东西,所以我不确定它在实践中会如何发挥作用。从理论上讲,这是好的,但总有复杂的因素,其中许多是微妙的。

将您的配置简化到只需要重现问题所必需的部分是值得的。例如,只在1台服务器上配置1个桥接器,将本地机器上的所有代理连接到一个活动/备份对,并在唯一端口上(即没有docker)。一旦你有了这样的工作,你可以继续增加复杂性和测试,因为你去看看事情的崩溃(假设他们是)。

 类似资料:
  • 核心接口类 如上图所示,Angel的核心接口类,在Train的过程中,按照调用的流程,大体为: MLRunner MLRunner根据Conf,从工厂类,创建AngelClient,按照标准的Train流程开始依次调用AngelClient的各接口 AngelClient 启动PSServer 在PSServer上进行初始化,加载空白的模型 训练完成后,将模型从多个PSServer,保存到HDFS

  • 主要内容:1. Configuration,2. SessionFactory,3. Session,4. Transaction ,5. Query在 Hibernate 中有 5 个常用的核心接口,它们分别是 Configuration 接口、SessionFactory 接口、Session 接口、Transaction 接口和 Query 接口。本节,我们就对这 5 个核心接口进行详细讲解。 1. Configuration 正如其名,Configuration 主要用于管理 Hiber

  • Hibernate 的常用配置文件主要分为 2 种:核心配置文件(hibernate.cfg.xml)和映射文件(Xxx.hbm.xml),它们主要用于配置数据库连接、事务管理、Hibernate 本身的配置信息以及 Hibernate 映射文件信息。 本节我们只讲解 Hibernate 核心配置文件,也即 hibernate.cfg.xml,后续将在《 Hibernate 映射文件》一节中继续讲

  • 本文向大家介绍Hadoop的核心配置是什么?相关面试题,主要包含被问及Hadoop的核心配置是什么?时的应答技巧和注意事项,需要的朋友参考一下 解答: Hadoop的核心配置通过两个xml文件来完成: 1.hadoop-default.xml; 2.hadoop-site.xml。 这些文件都使用xml格式,因此每个xml中都有一些属性,包括名称和值,但是当下这些文件都已不复存在。

  • 本文向大家介绍Dubbo 核心的配置有哪些?相关面试题,主要包含被问及Dubbo 核心的配置有哪些?时的应答技巧和注意事项,需要的朋友参考一下 我曾经面试就遇到过面试官让你写这些配置,我也是蒙逼。。 配置之间的关系见下图。        

  • 我试图了解Apache ActiveMQ Artemis服务器上是否在同一源服务器和目标服务器之间配置了核心桥接器。我这样做的原因是因为我的发布者将消息写入队列A和队列B,而我的订阅者只监听队列AB。因此,我的意图是将队列A和B桥接到队列AB中。我从Artemis用户手册中读到: 桥接器的功能是使用来自源队列的消息,并将它们转发到目标地址,通常是在不同的Apache ActiveMQ Artemi