2016-06-09 2 views
0

두 개의 노드가있는 도메인 모드의 Wildfly 클러스터가 있는데, 각각 하나의 서버가 동일한 서버 그룹에 속합니다.Wildfly Domain은 HornetQ와 주제를 공유했습니다.

공유하는 주제가 필요합니다. 클라이언트가 서버 A의 주제에 가입하면 같은 주제의 서버 B가 보내는 메시지로도 알림을 받아야합니다. 현재 각 클라이언트는 연결된 서버에 의해서만 통지됩니다.

Linux에서 AWS 시스템을 사용하고 있으며 멀티 캐스트 주소를 사용할 수 없으므로 모든 호스트 주소를 설명하는 시간이되는 프로토콜을 사용합니다. 이것은

<subsystem xmlns="urn:jboss:domain:messaging:2.0"> 
       <hornetq-server> 
        <cluster-password>mypassword</cluster-password> 
        <journal-file-size>102400</journal-file-size> 

        <connectors> 
         <http-connector name="http-connector" socket-binding="http"> 
          <param key="http-upgrade-endpoint" value="http-acceptor"/> 
         </http-connector> 
         <http-connector name="http-connector-throughput" socket-binding="http"> 
          <param key="http-upgrade-endpoint" value="http-acceptor-throughput"/> 
          <param key="batch-delay" value="50"/> 
         </http-connector> 
         <http-connector name="cnode1" socket-binding="node1"> 
          <param key="http-upgrade-endpoint" value="http-acceptor"/> 
         </http-connector> 
         <http-connector name="cnode2" socket-binding="node2"> 
          <param key="http-upgrade-endpoint" value="http-acceptor"/> 
         </http-connector> 
         <in-vm-connector name="in-vm" server-id="0"/> 
        </connectors> 

        <acceptors> 
         <http-acceptor http-listener="default" name="http-acceptor"/> 
         <http-acceptor http-listener="default" name="http-acceptor-throughput"> 
          <param key="batch-delay" value="50"/> 
          <param key="direct-deliver" value="false"/> 
         </http-acceptor> 
         <in-vm-acceptor name="in-vm" server-id="0"/> 
        </acceptors> 

        <cluster-connections> 
         <cluster-connection name="my-cluster"> 
          <address>jms</address> 
          <connector-ref>http-connector</connector-ref> 
          <static-connectors> 
           <connector-ref> 
            cnode1 
           </connector-ref> 
           <connector-ref> 
            cnode2 
           </connector-ref> 
          </static-connectors> 
         </cluster-connection> 
        </cluster-connections> 

        <security-settings> 
         <security-setting match="#"> 
          <permission type="send" roles="guest"/> 
          <permission type="consume" roles="guest"/> 
          <permission type="createNonDurableQueue" roles="guest"/> 
          <permission type="deleteNonDurableQueue" roles="guest"/> 
         </security-setting> 
        </security-settings> 

        <address-settings> 
         <address-setting match="#"> 
          <dead-letter-address>jms.queue.DLQ</dead-letter-address> 
          <expiry-address>jms.queue.ExpiryQueue</expiry-address> 
          <max-size-bytes>10485760</max-size-bytes> 
          <page-size-bytes>2097152</page-size-bytes> 
          <message-counter-history-day-limit>10</message-counter-history-day-limit> 
          <redistribution-delay>1000</redistribution-delay> 
         </address-setting> 
        </address-settings> 

        <jms-connection-factories> 
         <connection-factory name="InVmConnectionFactory"> 
          <connectors> 
           <connector-ref connector-name="in-vm"/> 
          </connectors> 
          <entries> 
           <entry name="java:/ConnectionFactory"/> 
          </entries> 
         </connection-factory> 
         <connection-factory name="RemoteConnectionFactory"> 
          <connectors> 
           <connector-ref connector-name="http-connector"/> 
          </connectors> 
          <entries> 
           <entry name="java:jboss/exported/jms/RemoteConnectionFactory"/> 
          </entries> 
          <ha>true</ha> 
          <block-on-acknowledge>true</block-on-acknowledge> 
          <reconnect-attempts>-1</reconnect-attempts> 
         </connection-factory> 
         <pooled-connection-factory name="hornetq-ra"> 
          <transaction mode="xa"/> 
          <connectors> 
           <connector-ref connector-name="in-vm"/> 
          </connectors> 
          <entries> 
           <entry name="java:/JmsXA"/> 
           <entry name="java:jboss/DefaultJMSConnectionFactory"/> 
          </entries> 
         </pooled-connection-factory> 
        </jms-connection-factories> 

        <jms-destinations> 
         ... 
         <jms-topic name="MyNotificationTopic"> 
          <entry name="java:/jms/topic/MyNotificationTopic"/> 
         </jms-topic> 
         ... 
        </jms-destinations> 
       </hornetq-server> 
      </subsystem> 
... 
<socket-binding-group name="full-ha-sockets" default-interface="public"> 
      <socket-binding name="management-http" interface="management" port="${jboss.management.http.port:9990}"/> 
      ... 
      <outbound-socket-binding name="mail-smtp"> 
       <remote-destination host="localhost" port="25"/> 
      </outbound-socket-binding> 
      <outbound-socket-binding name="node1"> 
       <remote-destination host="172.19.223.x" port="8080"/> 
      </outbound-socket-binding> 
      <outbound-socket-binding name="node2"> 
       <remote-destination host="172.19.223.y" port="8080"/> 
      </outbound-socket-binding> 
     </socket-binding-group> 
    </socket-binding-groups> 
+0

나는 윈도우 서버 컴퓨터에서 같은 구성을 시도해 보았다. 하지만 나는 리눅스 (AWS) 기계에서 일할 수 없다. – Wallkan

답변

1

이 첫 번째 아웃 바운드 소켓 바인딩 선언 (구성에, 172.19.223.x에서 실행해야하는 도메인 컨트롤러를 의미) 도메인 컨트롤러 노드를 참조하십시오 내 domain.xml의입니다 . 그 이유를 모르겠다. 어쩌면 그것은 야생 버그 다. 우리는이 문제에 대해 2 주를 보냈고, 여전히 나를 괴롭 히고있다. ...

+0

고맙습니다 !!! – Wallkan

관련 문제