This may help someone who wants to setup active mq auto discovery on EC2.
*Active-MQ Broker configuration:*
1. In $ACTIVEMQ_HOME/webapps folder create a new folder
|_activemq
|_WEB-INF
|_classes
|_web.xml
create a web.xml file with the following contents
<web-app>
<display-name>ActiveMQ Message Broker Web
Application</display-name>
<description>
Provides an embedded ActiveMQ Message Broker embedded inside a
web
application
</description>
<!-- context config -->
<context-param>
<param-name>org.apache.activemq.brokerURL</param-name>
<param-value>tcp://localhost:61617</param-value>
<description>The URL that the embedded broker should listen
on in
addition to HTTP</description>
</context-param>
<!-- servlet mappings -->
<servlet>
<servlet-name>DiscoveryRegistryServlet</servlet-name>
<servlet-class>org.apache.activemq.transport.discovery.http.DiscoveryRegistryServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>DiscoveryRegistryServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>
2. Place **httpclient-4.0.3.jar, httpcore-4.3.jar, xstream-1.4.5.jar and
activemq-optional-5.6.0.jar** in **$ACTIVEMQ_HOME/lib** directory.
3. In* $ACTIVEMQ_HOME/config* directory, modify the *jetty.xml* file to
expose activemq web app.
<bean id="securityHandler"
class="org.eclipse.jetty.security.ConstraintSecurityHandler">
...
<property name="handler">
<bean id="sec"
class="org.eclipse.jetty.server.handler.HandlerCollection">
<property name="handlers">
...
...
<bean
class="org.eclipse.jetty.webapp.WebAppContext">
<property name="contextPath"
value="/activemq" />
<property name="resourceBase"
value="${activemq.home}/webapps/activemq" />
<property name="logUrlOnStart"
value="true" />
<property
name="parentLoaderPriority" value="true" />
...
...
</list>
</property>
</bean>
</property>
</bean>
4. Modify activemq.xml file in $ACTIVEMQ_HOME/conf directory to use http
protocol
<broker name=”brokerName”>
...
<networkConnectors>
<networkConnector name="default"
uri="http://<loadbalancer_IP>:<locadbalancer_Port>/activemq/DiscoveryRegistryServlet?group=test"/>
<!--<networkConnector name="default-nc"
uri="multicast://default"/>-->
</networkConnectors>
<transportConnectors>
<transportConnector name="http" uri="tcp://0.0.0.0:61618"
discoveryUri="http://<loadbalancer_IP>:<locadbalancer_Port>/activemq/test"/>
</transportConnectors>
...
</broker>
make sure that the broker names are unique. “test” in url is the group name
of brokers.
Client configuration:
1. Keep httpclient-4.0.3.jar, httpcore-4.3.jar, xstream-1.4.5.jar and
activemq-optional-5.6.0.jar in classpath of client
2. URL to be use by client
discovery:(http://<loadbalancer_IP>:<locadbalancer_Port>/activemq/test)connectionTimeout=10000
here “test” is the group name.
--
View this message in context:
http://activemq.2283324.n4.nabble.com/Discovery-without-multicast-like-on-EC2-tp3658967p4674710.html
Sent from the ActiveMQ - Dev mailing list archive at Nabble.com.