activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From rnazneen <ruqsana....@gmail.com>
Subject Re: Discovery without multicast (like on EC2)
Date Thu, 21 Nov 2013 06:01:25 GMT
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

    &ltweb-app>

    	&ltdisplay-name>ActiveMQ Message Broker Web
Application&lt/display-name>
    	&ltdescription>
    		Provides an embedded ActiveMQ Message Broker embedded inside a web
application
    	&lt/description>

    	&lt!-- context config -->
    	&ltcontext-param>
        	&ltparam-name>org.apache.activemq.brokerURL&lt/param-name>
        	&ltparam-value>tcp://localhost:61617&lt/param-value>
        	&ltdescription>The URL that the embedded broker should listen on in
addition to HTTP&lt/description>
    	&lt/context-param>
    	&lt!-- servlet mappings -->
      	&ltservlet>
        	&ltservlet-name>DiscoveryRegistryServlet&lt/servlet-name>
        
&ltservlet-class>org.apache.activemq.transport.discovery.http.DiscoveryRegistryServlet&lt/servlet-class>
        	&ltload-on-startup>1&lt/load-on-startup>
      	&lt/servlet>
    
      	&ltservlet-mapping>
        	&ltservlet-name>DiscoveryRegistryServlet&lt/servlet-name>
        	&lturl-pattern>/*&lt/url-pattern>
  	&lt/servlet-mapping>
    &lt/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.


  	&ltbean id="securityHandler"
class="org.eclipse.jetty.security.ConstraintSecurityHandler">
		...
  	 	&ltproperty name="handler">
            	&ltbean id="sec"
class="org.eclipse.jetty.server.handler.HandlerCollection">
               		&ltproperty name="handlers">
				...
				...
				&ltbean class="org.eclipse.jetty.webapp.WebAppContext">
                                        &ltproperty name="contextPath"
value="/activemq" />
                                        &ltproperty name="resourceBase"
value="${activemq.home}/webapps/activemq" />
                                        &ltproperty name="logUrlOnStart"
value="true" />
                                        &ltproperty
name="parentLoaderPriority" value="true" />
					...
					...
 				&lt/list>
               		&lt/property>
            	&lt/bean>
        	&lt/property>
    	&lt/bean>

4. Modify activemq.xml file in  $ACTIVEMQ_HOME/conf directory to use http
protocol

	&ltbroker name=”brokerName”>
	...
	 &ltnetworkConnectors>
	      &ltnetworkConnector name="default"
uri="http://&ltloadbalancer_IP>:&ltlocadbalancer_Port>/activemq/DiscoveryRegistryServlet?group=test"/>
	      &lt!--&ltnetworkConnector name="default-nc"
uri="multicast://default"/>-->
	       &lt/networkConnectors>

		&lttransportConnectors>
		    &lttransportConnector name="http" uri="tcp://0.0.0.0:61618"
discoveryUri="http://&ltloadbalancer_IP>:&ltlocadbalancer_Port>/activemq/test"/>
		&lt/transportConnectors>
	...
	&lt/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://&ltloadbalancer_IP>:&ltlocadbalancer_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.

Mime
View raw message