{"id":24398,"date":"2014-04-23T19:00:59","date_gmt":"2014-04-23T16:00:59","guid":{"rendered":"http:\/\/www.javacodegeeks.com\/?p=24398"},"modified":"2014-04-23T10:46:44","modified_gmt":"2014-04-23T07:46:44","slug":"activemq-network-of-brokers-explained-part-2","status":"publish","type":"post","link":"https:\/\/www.javacodegeeks.com\/2014\/04\/activemq-network-of-brokers-explained-part-2.html","title":{"rendered":"ActiveMQ &#8211; Network of Brokers Explained &#8211; Part 2"},"content":{"rendered":"<p>In this blog we will see how\u00a0<b>duplex network connectors<\/b>\u00a0work.<\/p>\n<p>In the previous\u00a0<a href=\"http:\/\/www.javacodegeeks.com\/2014\/04\/activemq-network-of-brokers-explained.html\">part 1<\/a>\u00a0we created a network connector from broker-1 and broker-2. We were able to see how messages for queue &#8220;foo.bar&#8221; on broker-1 were forwarded queue &#8220;foo.bar&#8221; on broker-2 when there was a consumer on broker-2 for queue &#8220;foo.bar&#8221;<\/p>\n<p>Let&#8217;s try doing the reverse by producing messages into broker-2&#8217;s queue foo.bar and consume from broker-1&#8217;s queue &#8220;foo.bar&#8221;<\/p>\n<p>&nbsp;<\/p>\n<pre class=\"brush:bash wrap-lines:false\">Ashwinis-MacBook-Pro:example akuntamukkala$\u00a0ant producer -Durl=tcp:\/\/localhost:61626 -Dtopic=false -Ddurable=true -Dsubject=foo.bar -Dmax=100<\/pre>\n<pre class=\"brush:bash wrap-lines:false\">Ashwinis-MacBook-Pro:example akuntamukkala$\u00a0ant consumer -Durl=tcp:\/\/localhost:61616 -Dtopic=false -Dsubject=foo.bar<\/pre>\n<p><a href=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2014\/04\/broker-2-100-msg-enqueue.png\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-24495\" alt=\"broker-2-100-msg-enqueue\" src=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2014\/04\/broker-2-100-msg-enqueue.png\" width=\"400\" height=\"52\" \/><\/a><\/p>\n<p>In the previous blog post, we had enqueued\/dequeued 100 messages. Hence the #messages enqueued now shows as 200 here.<\/p>\n<p>As shown above, 100 new messages are enqueued on foo.bar queue on broker-2 but there are no consumers though there is a network connector for all queues from broker-1 to broker-2.<\/p>\n<blockquote>\n<p>The reason is that a network connector unless specified as &#8220;duplex&#8221; is unidirectional from the source to the destination broker.\u00a0<\/p>\n<\/blockquote>\n<p>Let&#8217;s change the following attribute highlighted in yellow in <\/p>\n<pre class=\"brush:bash\"> \/Users\/akuntamukkala\/apache-activemq- 5.8.0\/bridge-demo\/broker-1\/conf\/activemq.xml<\/pre>\n<p> configuration file for broker-1.<\/p>\n<pre class=\"brush:xml;highlight:[16]\"> &lt;networkConnectors&gt;\r\n         &lt;networkConnector \r\n            name=\"T:broker1-&gt;broker2\" \r\n            uri=\"static:(tcp:\/\/localhost:61626)\" \r\n            duplex=\"false\" \r\n            decreaseNetworkConsumerPriority=\"true\" \r\n            networkTTL=\"2\" \r\n            dynamicOnly=\"true\"&gt;\r\n            &lt;excludedDestinations&gt;\r\n                  &lt;queue physicalName=\"&gt;\" \/&gt;\r\n            &lt;\/excludedDestinations&gt;\r\n         &lt;\/networkConnector&gt;\r\n         &lt;networkConnector \r\n            name=\"Q:broker1-&gt;broker2\" \r\n            uri=\"static:(tcp:\/\/localhost:61626)\" \r\n            duplex=\"true\" \r\n            decreaseNetworkConsumerPriority=\"true\" \r\n            networkTTL=\"2\" \r\n            dynamicOnly=\"true\"&gt;\r\n            &lt;excludedDestinations&gt;\r\n                  &lt;topic physicalName=\"&gt;\" \/&gt;\r\n            &lt;\/excludedDestinations&gt;\r\n         &lt;\/networkConnector&gt;\r\n     &lt;\/networkConnectors&gt;<\/pre>\n<p>Let&#8217;s restart the brokers and connect to the brokers using jConsole.<div style=\"display:inline-block; margin: 15px 0;\"> <div id=\"adngin-JavaCodeGeeks_incontent_video-0\" style=\"display:inline-block;\"><\/div> <\/div><\/p>\n<p>Here is broker-1 jConsole MBean tab screenshot which shows the following:<\/p>\n<ol>\n<li>Q:broker1-&gt;broker2 network connector is duplex.<\/li>\n<li>There is now a dynamic producer into broker-1 from broker-2 because the<br \/>\nQ:broker1-&gt;broker2 network connector is &#8220;duplex&#8221;.<\/li>\n<\/ol>\n<p><a href=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2014\/04\/broker-1-jconsole.png\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-24496\" alt=\"broker-1-jconsole\" src=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2014\/04\/broker-1-jconsole.png\" width=\"640\" height=\"363\" \/><\/a><\/p>\n<p>Here is broker-2 jConsole MBean tab screenshot which shows the following:<\/p>\n<ol>\n<li>Duplex network connector from broker-2 to broker-1<\/li>\n<li>Two dynamic message producers from broker-1 to broker-2\n<ol>\n<li>Please note that &#8220;Q:broker1-&gt;broker2&#8221; network connector shows as duplex as configured in activemq.xml<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<p><a href=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2014\/04\/broker-2-jconsole.png\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-24497\" alt=\"broker-2-jconsole\" src=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2014\/04\/broker-2-jconsole.png\" width=\"640\" height=\"368\" srcset=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2014\/04\/broker-2-jconsole.png 1439w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2014\/04\/broker-2-jconsole-300x172.png 300w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2014\/04\/broker-2-jconsole-1024x589.png 1024w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/a><\/p>\n<h2>Let&#8217;s see this in action<\/h2>\n<ol>\n<li>Producer 100 messages into broker-2<\/li>\n<pre class=\"brush:bash wrap-lines:false\">Ashwinis-MacBook-Pro:example akuntamukkala$\u00a0ant producer -Durl=tcp:\/\/localhost:61626 -Dtopic=false -Ddurable=true -Dsubject=foo.bar -Dmax=100<\/pre>\n<p>Screenshot of queues in broker-2: http:\/\/localhost:9161\/admin\/queues.jsp<\/p>\n<p><a href=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2014\/04\/broker-2-duplex-noconsumers.png\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-24498\" alt=\"broker-2-duplex-noconsumers\" src=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2014\/04\/broker-2-duplex-noconsumers.png\" width=\"640\" height=\"126\" srcset=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2014\/04\/broker-2-duplex-noconsumers.png 925w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2014\/04\/broker-2-duplex-noconsumers-300x59.png 300w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/a><\/p>\n<li>Create a consumer on foo.bar on broker-1<\/li>\n<pre class=\"brush:bash wrap-lines:false\">Ashwinis-MacBook-Pro:example akuntamukkala$\u00a0ant consumer -Durl=tcp:\/\/localhost:61616 -Dtopic=false -Dsubject=foo.bar<\/pre>\n<p>The following screenshot from broker-2 shows that all the 100 messages have been dequeued by a consumer (dynamically forwarded to broker-1).<\/p>\n<p>http:\/\/localhost:9161\/admin\/queues.jsp<\/p>\n<p><a href=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2014\/04\/broker-2-duplex-msg-dequeued.png\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-24499\" alt=\"broker-2-duplex-msg-dequeued\" src=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2014\/04\/broker-2-duplex-msg-dequeued.png\" width=\"640\" height=\"128\" srcset=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2014\/04\/broker-2-duplex-msg-dequeued.png 922w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2014\/04\/broker-2-duplex-msg-dequeued-300x60.png 300w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/a><\/p>\n<p>The following screenshot shows the details of this dynamic consumer on broker-2&#8217;s foo.bar queue.<\/p>\n<p>http:\/\/localhost:9161\/admin\/queueConsumers.jsp?JMSDestination=foo.bar<\/p>\n<p><a href=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2014\/04\/broker-2-duplex-dynamicconsumer.png\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-24500\" alt=\"broker-2-duplex-dynamicconsumer\" src=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2014\/04\/broker-2-duplex-dynamicconsumer.png\" width=\"640\" height=\"102\" srcset=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2014\/04\/broker-2-duplex-dynamicconsumer.png 1078w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2014\/04\/broker-2-duplex-dynamicconsumer-300x47.png 300w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2014\/04\/broker-2-duplex-dynamicconsumer-1024x163.png 1024w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/a><\/p>\n<p>The following screenshot shows that the 100 messages which were dynamically moved from broker-2&#8217;s foo.bar queue to broker-1&#8217;s foo.bar queue have been successfully consumed by the consumer which we created in step #2<\/p>\n<p><a href=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2014\/04\/broker-1-duplex-msg-consumed.png\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-24501\" alt=\"broker-1-duplex-msg-consumed\" src=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2014\/04\/broker-1-duplex-msg-consumed.png\" width=\"640\" height=\"122\" \/><\/a><\/p>\n<p>This concludes part 2 of this series where we saw how duplex network connectors work.<\/p>\n<p>As always your comments are very welcome.<\/p>\n<p>Stay tuned for part 3 where we will go over load balancing consumers on local\/remote brokers&#8230;<\/p>\n<div class=\"attribution\">\n<table>\n<tbody>\n<tr>\n<td><span class=\"reference\">Reference: <\/span><\/td>\n<td><a href=\"http:\/\/akuntamukkala.blogspot.com\/2014\/02\/activemq-network-of-brokers-explained_28.html\">ActiveMQ &#8211; Network of Brokers Explained &#8211; Part 2<\/a> from our <a href=\"http:\/\/www.javacodegeeks.com\/jcg\">JCG partner<\/a> Ashwini Kuntamukkala at the <a href=\"http:\/\/akuntamukkala.blogspot.com\/\">Ashwini Kuntamukkala &#8211; Technology Enthusiast<\/a> blog.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>In this blog we will see how\u00a0duplex network connectors\u00a0work. In the previous\u00a0part 1\u00a0we created a network connector from broker-1 and broker-2. We were able to see how messages for queue &#8220;foo.bar&#8221; on broker-1 were forwarded queue &#8220;foo.bar&#8221; on broker-2 when there was a consumer on broker-2 for queue &#8220;foo.bar&#8221; Let&#8217;s try doing the reverse by &hellip;<\/p>\n","protected":false},"author":547,"featured_media":48,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[173,59],"class_list":["post-24398","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-enterprise-java","tag-apache-activemq","tag-jms"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>ActiveMQ - Network of Brokers Explained - Part 2<\/title>\n<meta name=\"description\" content=\"In this blog we will see how\u00a0duplex network connectors\u00a0work. In the previous\u00a0part 1\u00a0we created a network connector from broker-1 and broker-2. We were\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.javacodegeeks.com\/2014\/04\/activemq-network-of-brokers-explained-part-2.html\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"ActiveMQ - Network of Brokers Explained - Part 2\" \/>\n<meta property=\"og:description\" content=\"In this blog we will see how\u00a0duplex network connectors\u00a0work. In the previous\u00a0part 1\u00a0we created a network connector from broker-1 and broker-2. We were\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.javacodegeeks.com\/2014\/04\/activemq-network-of-brokers-explained-part-2.html\" \/>\n<meta property=\"og:site_name\" content=\"Java Code Geeks\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/javacodegeeks\" \/>\n<meta property=\"article:published_time\" content=\"2014-04-23T16:00:59+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/apache-activemq-logo.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"150\" \/>\n\t<meta property=\"og:image:height\" content=\"150\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Ashwini Kuntamukkala\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@https:\/\/twitter.com\/akuntamukkala\" \/>\n<meta name=\"twitter:site\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ashwini Kuntamukkala\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2014\\\/04\\\/activemq-network-of-brokers-explained-part-2.html#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2014\\\/04\\\/activemq-network-of-brokers-explained-part-2.html\"},\"author\":{\"name\":\"Ashwini Kuntamukkala\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/person\\\/d48995ed879ff58e7d32f6f45df756d2\"},\"headline\":\"ActiveMQ &#8211; Network of Brokers Explained &#8211; Part 2\",\"datePublished\":\"2014-04-23T16:00:59+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2014\\\/04\\\/activemq-network-of-brokers-explained-part-2.html\"},\"wordCount\":439,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2014\\\/04\\\/activemq-network-of-brokers-explained-part-2.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/apache-activemq-logo.jpg\",\"keywords\":[\"Apache ActiveMQ\",\"JMS\"],\"articleSection\":[\"Enterprise Java\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.javacodegeeks.com\\\/2014\\\/04\\\/activemq-network-of-brokers-explained-part-2.html#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2014\\\/04\\\/activemq-network-of-brokers-explained-part-2.html\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2014\\\/04\\\/activemq-network-of-brokers-explained-part-2.html\",\"name\":\"ActiveMQ - Network of Brokers Explained - Part 2\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2014\\\/04\\\/activemq-network-of-brokers-explained-part-2.html#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2014\\\/04\\\/activemq-network-of-brokers-explained-part-2.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/apache-activemq-logo.jpg\",\"datePublished\":\"2014-04-23T16:00:59+00:00\",\"description\":\"In this blog we will see how\u00a0duplex network connectors\u00a0work. In the previous\u00a0part 1\u00a0we created a network connector from broker-1 and broker-2. We were\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2014\\\/04\\\/activemq-network-of-brokers-explained-part-2.html#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.javacodegeeks.com\\\/2014\\\/04\\\/activemq-network-of-brokers-explained-part-2.html\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2014\\\/04\\\/activemq-network-of-brokers-explained-part-2.html#primaryimage\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/apache-activemq-logo.jpg\",\"contentUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/apache-activemq-logo.jpg\",\"width\":150,\"height\":150},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2014\\\/04\\\/activemq-network-of-brokers-explained-part-2.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Java\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/category\\\/java\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Enterprise Java\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/category\\\/java\\\/enterprise-java\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"ActiveMQ &#8211; Network of Brokers Explained &#8211; Part 2\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#website\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\",\"name\":\"Java Code Geeks\",\"description\":\"Java Developers Resource Center\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\"},\"alternateName\":\"JCG\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.javacodegeeks.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\",\"name\":\"Exelixis Media P.C.\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/exelixis-logo.png\",\"contentUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/exelixis-logo.png\",\"width\":864,\"height\":246,\"caption\":\"Exelixis Media P.C.\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/javacodegeeks\",\"https:\\\/\\\/x.com\\\/javacodegeeks\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/person\\\/d48995ed879ff58e7d32f6f45df756d2\",\"name\":\"Ashwini Kuntamukkala\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/db91d54d3feefca7c2a64d2de4b2bbaa3eba8c0b7453ec714f7d0592e1225c75?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/db91d54d3feefca7c2a64d2de4b2bbaa3eba8c0b7453ec714f7d0592e1225c75?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/db91d54d3feefca7c2a64d2de4b2bbaa3eba8c0b7453ec714f7d0592e1225c75?s=96&d=mm&r=g\",\"caption\":\"Ashwini Kuntamukkala\"},\"description\":\"Ashwini is an open source, cloud and mobile development enthusiast. He has over 10 years of experience in leading and implementing several enterprise grade solutions in pharmacy, health care and travel industries. He is currently working as a Software Architect at SciSpike, Inc where they help their clients adopt best enterprise software development\\\/governance practices through consulting, training and software development services. When not working and having fun with his family, he finds time to blog key ideas that he discovers when solving challenging problems.\",\"sameAs\":[\"http:\\\/\\\/akuntamukkala.blogspot.gr\\\/\",\"http:\\\/\\\/www.linkedin.com\\\/pub\\\/ashwini-kuntamukkala\\\/25\\\/41b\\\/754\",\"https:\\\/\\\/x.com\\\/https:\\\/\\\/twitter.com\\\/akuntamukkala\"],\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/author\\\/ashwini-kuntamukkala\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"ActiveMQ - Network of Brokers Explained - Part 2","description":"In this blog we will see how\u00a0duplex network connectors\u00a0work. In the previous\u00a0part 1\u00a0we created a network connector from broker-1 and broker-2. We were","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.javacodegeeks.com\/2014\/04\/activemq-network-of-brokers-explained-part-2.html","og_locale":"en_US","og_type":"article","og_title":"ActiveMQ - Network of Brokers Explained - Part 2","og_description":"In this blog we will see how\u00a0duplex network connectors\u00a0work. In the previous\u00a0part 1\u00a0we created a network connector from broker-1 and broker-2. We were","og_url":"https:\/\/www.javacodegeeks.com\/2014\/04\/activemq-network-of-brokers-explained-part-2.html","og_site_name":"Java Code Geeks","article_publisher":"https:\/\/www.facebook.com\/javacodegeeks","article_published_time":"2014-04-23T16:00:59+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/apache-activemq-logo.jpg","type":"image\/jpeg"}],"author":"Ashwini Kuntamukkala","twitter_card":"summary_large_image","twitter_creator":"@https:\/\/twitter.com\/akuntamukkala","twitter_site":"@javacodegeeks","twitter_misc":{"Written by":"Ashwini Kuntamukkala","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.javacodegeeks.com\/2014\/04\/activemq-network-of-brokers-explained-part-2.html#article","isPartOf":{"@id":"https:\/\/www.javacodegeeks.com\/2014\/04\/activemq-network-of-brokers-explained-part-2.html"},"author":{"name":"Ashwini Kuntamukkala","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/person\/d48995ed879ff58e7d32f6f45df756d2"},"headline":"ActiveMQ &#8211; Network of Brokers Explained &#8211; Part 2","datePublished":"2014-04-23T16:00:59+00:00","mainEntityOfPage":{"@id":"https:\/\/www.javacodegeeks.com\/2014\/04\/activemq-network-of-brokers-explained-part-2.html"},"wordCount":439,"commentCount":0,"publisher":{"@id":"https:\/\/www.javacodegeeks.com\/#organization"},"image":{"@id":"https:\/\/www.javacodegeeks.com\/2014\/04\/activemq-network-of-brokers-explained-part-2.html#primaryimage"},"thumbnailUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/apache-activemq-logo.jpg","keywords":["Apache ActiveMQ","JMS"],"articleSection":["Enterprise Java"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.javacodegeeks.com\/2014\/04\/activemq-network-of-brokers-explained-part-2.html#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.javacodegeeks.com\/2014\/04\/activemq-network-of-brokers-explained-part-2.html","url":"https:\/\/www.javacodegeeks.com\/2014\/04\/activemq-network-of-brokers-explained-part-2.html","name":"ActiveMQ - Network of Brokers Explained - Part 2","isPartOf":{"@id":"https:\/\/www.javacodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.javacodegeeks.com\/2014\/04\/activemq-network-of-brokers-explained-part-2.html#primaryimage"},"image":{"@id":"https:\/\/www.javacodegeeks.com\/2014\/04\/activemq-network-of-brokers-explained-part-2.html#primaryimage"},"thumbnailUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/apache-activemq-logo.jpg","datePublished":"2014-04-23T16:00:59+00:00","description":"In this blog we will see how\u00a0duplex network connectors\u00a0work. In the previous\u00a0part 1\u00a0we created a network connector from broker-1 and broker-2. We were","breadcrumb":{"@id":"https:\/\/www.javacodegeeks.com\/2014\/04\/activemq-network-of-brokers-explained-part-2.html#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.javacodegeeks.com\/2014\/04\/activemq-network-of-brokers-explained-part-2.html"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.javacodegeeks.com\/2014\/04\/activemq-network-of-brokers-explained-part-2.html#primaryimage","url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/apache-activemq-logo.jpg","contentUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/apache-activemq-logo.jpg","width":150,"height":150},{"@type":"BreadcrumbList","@id":"https:\/\/www.javacodegeeks.com\/2014\/04\/activemq-network-of-brokers-explained-part-2.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.javacodegeeks.com\/"},{"@type":"ListItem","position":2,"name":"Java","item":"https:\/\/www.javacodegeeks.com\/category\/java"},{"@type":"ListItem","position":3,"name":"Enterprise Java","item":"https:\/\/www.javacodegeeks.com\/category\/java\/enterprise-java"},{"@type":"ListItem","position":4,"name":"ActiveMQ &#8211; Network of Brokers Explained &#8211; Part 2"}]},{"@type":"WebSite","@id":"https:\/\/www.javacodegeeks.com\/#website","url":"https:\/\/www.javacodegeeks.com\/","name":"Java Code Geeks","description":"Java Developers Resource Center","publisher":{"@id":"https:\/\/www.javacodegeeks.com\/#organization"},"alternateName":"JCG","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.javacodegeeks.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.javacodegeeks.com\/#organization","name":"Exelixis Media P.C.","url":"https:\/\/www.javacodegeeks.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","contentUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","width":864,"height":246,"caption":"Exelixis Media P.C."},"image":{"@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/javacodegeeks","https:\/\/x.com\/javacodegeeks"]},{"@type":"Person","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/person\/d48995ed879ff58e7d32f6f45df756d2","name":"Ashwini Kuntamukkala","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/db91d54d3feefca7c2a64d2de4b2bbaa3eba8c0b7453ec714f7d0592e1225c75?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/db91d54d3feefca7c2a64d2de4b2bbaa3eba8c0b7453ec714f7d0592e1225c75?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/db91d54d3feefca7c2a64d2de4b2bbaa3eba8c0b7453ec714f7d0592e1225c75?s=96&d=mm&r=g","caption":"Ashwini Kuntamukkala"},"description":"Ashwini is an open source, cloud and mobile development enthusiast. He has over 10 years of experience in leading and implementing several enterprise grade solutions in pharmacy, health care and travel industries. He is currently working as a Software Architect at SciSpike, Inc where they help their clients adopt best enterprise software development\/governance practices through consulting, training and software development services. When not working and having fun with his family, he finds time to blog key ideas that he discovers when solving challenging problems.","sameAs":["http:\/\/akuntamukkala.blogspot.gr\/","http:\/\/www.linkedin.com\/pub\/ashwini-kuntamukkala\/25\/41b\/754","https:\/\/x.com\/https:\/\/twitter.com\/akuntamukkala"],"url":"https:\/\/www.javacodegeeks.com\/author\/ashwini-kuntamukkala"}]}},"_links":{"self":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/24398","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/users\/547"}],"replies":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/comments?post=24398"}],"version-history":[{"count":0,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/24398\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/media\/48"}],"wp:attachment":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/media?parent=24398"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/categories?post=24398"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/tags?post=24398"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}