2 Stimmen

Wie stellt man eine Verbindung zum ActiveMQ-Broker (Stomp-Protokoll, Activemessaging) her, der auf einer anderen Maschine läuft?

Grundsätzlich habe ich 2 MQs auf verschiedenen Rechnern laufen (Ubuntu). Ich brauche sie, um miteinander kommunizieren zu können.

Ich habe meine broker.yml auf Rechner A wie folgt;

Entwicklung:

adapter: stomp
login: ""
passcode: ""
host: localhost
port: 61613
reliable: true
reconnectDelay: 5
foo:
    adapter: stomp
    login: ""
    passcode: ""
    host: --IP of machine B here--
    port: 61613
    reliable: true
    reconnectDelay: 5

Test:

adapter: stomp
login: ""
passcode: ""
host: localhost
port: 61613
reliable: true
reconnectDelay: 5
foo:
    adapter: stomp
    login: ""
    passcode: ""
    host: --IP of machine B here--
    port: 61613
    reliable: true
    reconnectDelay: 5

Produktion:

adapter: stomp
login: ""
passcode: ""
host: localhost
port: 61613
reliable: true
reconnectDelay: 5
foo:
    adapter: stomp
    login: ""
    passcode: ""
    host: --IP of machine B here--
    port: 61613
    reliable: true
    reconnectDelay: 5

und broker.yml auf Rechner B wie folgt;

Entwicklung:

adapter: stomp
login: ""
passcode: ""
host: localhost
port: 61613
reliable: true
reconnectDelay: 5

Test:

adapter: stomp
login: ""
passcode: ""
host: localhost
port: 61613
reliable: true
reconnectDelay: 5

Produktion:

adapter: stomp
login: ""
passcode: ""
host: localhost
port: 61613
reliable: true
reconnectDelay: 5

Wie konfiguriere ich apache-activemq/conf/activemq.xml so, dass ich Rechner A dazu bringen kann, Nachrichten an Rechner B weiterzuleiten.

Im Moment sieht meine activemq.xml wie folgt aus:

<beans
  xmlns="http://www.springframework.org/schema/beans"
  xmlns:amq="http://activemq.apache.org/schema/core"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.springframework.org/schema/beans     http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
  http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd">

<!-- Allows us to use system properties as variables in this configuration file -->
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="locations">
        <value>file:${activemq.base}/conf/credentials.properties</value>
    </property>      
</bean>

<!-- 
    The <broker> element is used to configure the ActiveMQ broker. 
-->
<broker xmlns="http://activemq.apache.org/schema/core" brokerName="localhost" dataDirectory="${activemq.base}/data" destroyApplicationContextOnStop="true">

    <destinationPolicy>
        <policyMap>
          <policyEntries>
            <policyEntry topic=">" producerFlowControl="true" memoryLimit="1mb">
              <pendingSubscriberPolicy>
                <vmCursor />
              </pendingSubscriberPolicy>
            </policyEntry>
            <policyEntry queue=">" producerFlowControl="true" memoryLimit="1mb">                  
            </policyEntry>
          </policyEntries>
        </policyMap>
    </destinationPolicy> 

    <managementContext>
        <managementContext createConnector="false"/>
    </managementContext>

    <persistenceAdapter>
        <kahaDB directory="${activemq.base}/data/kahadb"/>
    </persistenceAdapter>

    <transportConnectors>               
  <transportConnector name="openwire" uri="tcp://0.0.0.0:61616"/>  
  <transportConnector uri="stomp://localhost:61613"/>
    </transportConnectors>

</broker>
<import resource="jetty.xml"/>

Vielen Dank im Voraus!

1voto

Hiram Chirino Punkte 4093

Fügen Sie in der Konfiguration von Broker A direkt vor der <persistenceAdapter> Element. Der Broker leitet dann die Nachrichten an Broker B weiter:

<networkConnectors>
    <networkConnector uri="static:(tcp://--IP of machine B here--:61616)"/>
</networkConnectors>

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X