首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >码头群上的ActiveMQ Artemis集群

码头群上的ActiveMQ Artemis集群
EN

Stack Overflow用户
提问于 2022-03-10 13:59:49
回答 1查看 398关注 0票数 1

我正试图在Docker环境中设置由2个ActiveMQ Artemis代理组成的简单集群。

堆栈配置

代码语言:javascript
复制
version: "3.7"

services:
    broker_1:
        image: broker-local
        build:
            context: ./activemq
            dockerfile: Dockerfile-centos
        ports:
            - "8161:8161" # Embedded web server
            - "61616:61616" # Main Artemis acceptor
        networks:
            artemis-cluster-network:
        environment:
            EXTRA_ARGS: "--http-host 0.0.0.0 --relax-jolokia"
            ANONYMOUS_LOGIN: "true"
        configs:
            -   source: broker_1_config
                target: /run/config/broker.xml

    broker_2:
        image: broker-local
        depends_on:
            - "broker_1"
        build:
            context: ./activemq
            dockerfile: Dockerfile-centos
        ports:
            - "8162:8161" # Embedded web server
            - "61617:61617" # Main Artemis acceptor
        networks:
            artemis-cluster-network:
        environment:
            EXTRA_ARGS: "--http-host 0.0.0.0 --relax-jolokia"
        configs:
            -   source: broker_2_config
                target: /run/config/broker.xml

networks:
    artemis-cluster-network:
        driver: overlay
        attachable: true

configs:
    broker_1_config:
        file: ./broker_1.xml
    broker_2_config:
        file: ./broker_2.xml

Broker_1配置

代码语言:javascript
复制
   <configuration xmlns="urn:activemq" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xsi:schemaLocation="urn:activemq /schema/artemis-configuration.xsd">
      <core xmlns="urn:activemq:core">

         <name>broker_1</name>

         <bindings-directory>./data/bindings</bindings-directory>

         <journal-directory>./data/journal</journal-directory>

         <large-messages-directory>./data/largemessages</large-messages-directory>

         <paging-directory>./data/paging</paging-directory>

         <!-- Connectors -->

         <connectors>
            <connector name="netty-connector">tcp://0.0.0.0:61616</connector>
            <!-- connector to the server1 -->
            <connector name="server2-connector">tcp://broker_2:61617</connector>
         </connectors>

         <!-- Acceptors -->
         <acceptors>
            <acceptor name="netty-acceptor">tcp://0.0.0.0:61616</acceptor>
         </acceptors>

         <cluster-connections>
            <cluster-connection name="my-cluster">
               <connector-ref>netty-connector</connector-ref>
               <retry-interval>500</retry-interval>
               <use-duplicate-detection>true</use-duplicate-detection>
               <message-load-balancing>STRICT</message-load-balancing>
               <max-hops>5</max-hops>
               <static-connectors allow-direct-connections-only="true">
                  <connector-ref>server2-connector</connector-ref>
               </static-connectors>
            </cluster-connection>
         </cluster-connections>

         <!-- Other config -->

         <security-settings>
            <!--security for example queue-->
            <security-setting match="exampleQueue">
               <permission roles="guest" type="createDurableQueue"/>
               <permission roles="guest" type="deleteDurableQueue"/>
               <permission roles="guest" type="createNonDurableQueue"/>
               <permission roles="guest" type="deleteNonDurableQueue"/>
               <permission roles="guest" type="consume"/>
               <permission roles="guest" type="send"/>
            </security-setting>
         </security-settings>

         <addresses>
            <address name="exampleQueue">
               <anycast>
                  <queue name="exampleQueue"/>
               </anycast>
            </address>
         </addresses>

         <broker-plugins>
            <broker-plugin class-name="org.apache.activemq.artemis.core.server.plugin.impl.LoggingActiveMQServerPlugin">
               <property key="LOG_ALL_EVENTS" value="true"/>
               <property key="LOG_CONNECTION_EVENTS" value="true"/>
               <property key="LOG_SESSION_EVENTS" value="true"/>
               <property key="LOG_CONSUMER_EVENTS" value="true"/>
               <property key="LOG_DELIVERING_EVENTS" value="true"/>
               <property key="LOG_SENDING_EVENTS" value="true"/>
               <property key="LOG_INTERNAL_EVENTS" value="true"/>
            </broker-plugin>
         </broker-plugins>
      </core>
   </configuration>

Broker_2配置

代码语言:javascript
复制
  <configuration xmlns="urn:activemq" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="urn:activemq /schema/artemis-configuration.xsd">
     <core xmlns="urn:activemq:core">

        <name>broker_2</name>

        <bindings-directory>./data/bindings</bindings-directory>

        <journal-directory>./data/journal</journal-directory>

        <large-messages-directory>./data/largemessages</large-messages-directory>

        <paging-directory>./data/paging</paging-directory>

        <!-- Connectors -->
        <connectors>
           <connector name="netty-connector">tcp://0.0.0.0:61617</connector>
           <!-- connector to the server0 -->
           <connector name="server1-connector">tcp://broker_1:61616</connector>
        </connectors>

        <!-- Acceptors -->
        <acceptors>
           <acceptor name="netty-acceptor">tcp://0.0.0.0:61617</acceptor>
        </acceptors>

        <cluster-connections>
           <cluster-connection name="my-cluster">
              <connector-ref>netty-connector</connector-ref>
              <retry-interval>500</retry-interval>
              <use-duplicate-detection>true</use-duplicate-detection>
              <message-load-balancing>STRICT</message-load-balancing>
              <max-hops>5</max-hops>
              <static-connectors allow-direct-connections-only="true">
                 <connector-ref>server1-connector</connector-ref>
              </static-connectors>
           </cluster-connection>
        </cluster-connections>

        <!-- Other config -->

        <security-settings>
           <!--security for example queue-->
           <security-setting match="exampleQueue">
              <permission roles="guest" type="createDurableQueue"/>
              <permission roles="guest" type="deleteDurableQueue"/>
              <permission roles="guest" type="createNonDurableQueue"/>
              <permission roles="guest" type="deleteNonDurableQueue"/>
              <permission roles="guest" type="consume"/>
              <permission roles="guest" type="send"/>
           </security-setting>
        </security-settings>

        <addresses>
           <address name="exampleQueue">
              <anycast>
                 <queue name="exampleQueue"/>
              </anycast>
           </address>
        </addresses>

        <broker-plugins>
           <broker-plugin class-name="org.apache.activemq.artemis.core.server.plugin.impl.LoggingActiveMQServerPlugin">
              <property key="LOG_ALL_EVENTS" value="true"/>
              <property key="LOG_CONNECTION_EVENTS" value="true"/>
              <property key="LOG_SESSION_EVENTS" value="true"/>
              <property key="LOG_CONSUMER_EVENTS" value="true"/>
              <property key="LOG_DELIVERING_EVENTS" value="true"/>
              <property key="LOG_SENDING_EVENTS" value="true"/>
              <property key="LOG_INTERNAL_EVENTS" value="true"/>
           </broker-plugin>
        </broker-plugins>
     </core>
  </configuration>

在运行这两个服务之后,什么都不会发生。没有什么有趣的记录。

我尝试了UDP发现方法,但发现这是不可能的码头覆盖网络。

然后,我尝试了JGroups方法,但它也不起作用。有人试图建立连接,但每次尝试都超时了。并对容器ID表示的主机进行了尝试,这种方法可能很有趣,但是JGRoups所使用的共享ping目录对于群集方法是无效的。在本地机器上,在两个容器之间共享它是没有问题的。

另外,我使用的是Fiddler,所以像broker_1这样的名称被翻译到本地主机。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-15 22:46:47

名为“connector”的netty_connector不应该使用0.0.0.0。这是将被发送到集群中的其他节点的地址,以告诉它们如何连接到发送它的节点。在这种情况下,地址0.0.0.0将是毫无意义的。它需要是代理侦听网络连接的实际IP地址或主机名。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71425384

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档