Return-Path: X-Original-To: apmail-activemq-commits-archive@www.apache.org Delivered-To: apmail-activemq-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id E620A183C5 for ; Thu, 1 Oct 2015 05:21:20 +0000 (UTC) Received: (qmail 20025 invoked by uid 500); 1 Oct 2015 05:21:20 -0000 Delivered-To: apmail-activemq-commits-archive@activemq.apache.org Received: (qmail 19976 invoked by uid 500); 1 Oct 2015 05:21:20 -0000 Mailing-List: contact commits-help@activemq.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@activemq.apache.org Delivered-To: mailing list commits@activemq.apache.org Received: (qmail 19967 invoked by uid 99); 1 Oct 2015 05:21:20 -0000 Received: from Unknown (HELO spamd4-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 01 Oct 2015 05:21:20 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd4-us-west.apache.org (ASF Mail Server at spamd4-us-west.apache.org) with ESMTP id E3FB3C0182 for ; Thu, 1 Oct 2015 05:21:19 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd4-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 1.795 X-Spam-Level: * X-Spam-Status: No, score=1.795 tagged_above=-999 required=6.31 tests=[KAM_ASCII_DIVIDERS=0.8, KAM_LAZY_DOMAIN_SECURITY=1, RP_MATCHES_RCVD=-0.006, URIBL_BLOCKED=0.001] autolearn=disabled Received: from mx1-us-east.apache.org ([10.40.0.8]) by localhost (spamd4-us-west.apache.org [10.40.0.11]) (amavisd-new, port 10024) with ESMTP id mDNpzZzWDFoR for ; Thu, 1 Oct 2015 05:21:14 +0000 (UTC) Received: from mailrelay1-us-west.apache.org (mailrelay1-us-west.apache.org [209.188.14.139]) by mx1-us-east.apache.org (ASF Mail Server at mx1-us-east.apache.org) with ESMTP id 196B642B36 for ; Thu, 1 Oct 2015 05:21:14 +0000 (UTC) Received: from svn01-us-west.apache.org (svn.apache.org [10.41.0.6]) by mailrelay1-us-west.apache.org (ASF Mail Server at mailrelay1-us-west.apache.org) with ESMTP id 98F1DE0231 for ; Thu, 1 Oct 2015 05:21:13 +0000 (UTC) Received: from svn01-us-west.apache.org (localhost [127.0.0.1]) by svn01-us-west.apache.org (ASF Mail Server at svn01-us-west.apache.org) with ESMTP id 9655B3A01DC for ; Thu, 1 Oct 2015 05:21:13 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r967378 - in /websites/production/activemq/content: cache/main.pageCache version-5-installation.html version-5-topologies.html Date: Thu, 01 Oct 2015 05:21:13 -0000 To: commits@activemq.apache.org From: buildbot@apache.org X-Mailer: svnmailer-1.0.9 Message-Id: <20151001052113.9655B3A01DC@svn01-us-west.apache.org> Author: buildbot Date: Thu Oct 1 05:21:13 2015 New Revision: 967378 Log: Production update by buildbot for activemq Modified: websites/production/activemq/content/cache/main.pageCache websites/production/activemq/content/version-5-installation.html websites/production/activemq/content/version-5-topologies.html Modified: websites/production/activemq/content/cache/main.pageCache ============================================================================== Binary files - no diff available. Modified: websites/production/activemq/content/version-5-installation.html ============================================================================== --- websites/production/activemq/content/version-5-installation.html (original) +++ websites/production/activemq/content/version-5-installation.html Thu Oct 1 05:21:13 2015 @@ -32,6 +32,16 @@ + + + + + + + Apache ActiveMQ ™ -- Version 5 Installation @@ -72,7 +82,27 @@ <tbody> <tr> <td valign="top" width="100%"> -<div class="wiki-content maincontent"><div class="error"><span class="error">Unable to render {include}</span> The included page could not be found.</div></div> +<div class="wiki-content maincontent"><p> +</p><ul><li><a shape="rect" href="download.html">Download</a> a binary distribution of ActiveMQ and unpack it into some directory.</li></ul> + + +<ul><li>To run an ActiveMQ broker, type the following commands from the directory in which you have just unpacked the ActiveMQ distribution.</li></ul> + + +<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl"> +<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;"> +cd bin +activemq +</pre> +</div></div> + +<p>The ActiveMQ broker should now run. You can configure the broker by specifying an <a shape="rect" href="xml-configuration.html">Xml Configuration</a> file as a parameter to the <em>activemq</em> command.</p> + +<p>You can now run the <a shape="rect" href="examples.html">Examples</a> using Ant.</p> + +<p>See the <a shape="rect" href="initial-configuration.html">getting started guide</a> for details of which jars you need to add to your classpath to start using ActiveMQ in your Java code</p> + +<p>If you want to use JNDI to connect to your JMS provider then please view the <a shape="rect" href="jndi-support.html">JNDI Support</a>. If you are a Spring user you should read about <a shape="rect" href="spring-support.html">Spring Support</a></p></div> </td> <td valign="top"> <div class="navigation"> Modified: websites/production/activemq/content/version-5-topologies.html ============================================================================== --- websites/production/activemq/content/version-5-topologies.html (original) +++ websites/production/activemq/content/version-5-topologies.html Thu Oct 1 05:21:13 2015 @@ -32,6 +32,16 @@ </style> <![endif]--> + <link href='http://activemq.apache.org/styles/highlighter/styles/shCore.css' rel='stylesheet' type='text/css' /> + <link href='http://activemq.apache.org/styles/highlighter/styles/shThemeEclipse.css' rel='stylesheet' type='text/css' /> + <script src='http://activemq.apache.org/styles/highlighter/scripts/shCore.js' type='text/javascript'></script> + <script src='http://activemq.apache.org/styles/highlighter/scripts/shBrushJava.js' type='text/javascript'></script> + <script src='http://activemq.apache.org/styles/highlighter/scripts/shBrushPlain.js' type='text/javascript'></script> + + <script type="text/javascript"> + SyntaxHighlighter.defaults['toolbar'] = false; + SyntaxHighlighter.all(); + </script> <title> Apache ActiveMQ ™ -- Version 5 Topologies @@ -72,7 +82,84 @@ <tbody> <tr> <td valign="top" width="100%"> -<div class="wiki-content maincontent"><div class="error"><span class="error">Unable to render {include}</span> The included page could not be found.</div></div> +<div class="wiki-content maincontent"><p>ActiveMQ supports a wide range of different deployment topologies as well as <a shape="rect" href="uri-protocols.html">protocols</a> & wire formats. The following diagram shows a federated network of brokers with a few different kinds of topology. + +</p><p><a shape="rect" class="external-link" href="http://activemq.org/BrokerTopology.pdf" rel="nofollow"><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image" src="version-5-topologies.data/BrokerTopology-1.png"></span></a></p> + +<p>Which topology you choose is up to you. We'll now describe a few of these protocols in a little more detail.</p> + +<h2 id="Version5Topologies-InVM">In VM</h2> + +<p>A useful option when unit testing is to limit JMS communication to within a single JVM. For this use the protocol</p> +<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl"> +<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;"> +vm://localhost +</pre> +</div></div> +<p>You can segment the VM protocol to different groups - e.g. if you want to have logically different JMS networks within the same JVM, you can group networks using different URIs. e.g.</p> +<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl"> +<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;"> +vm://localhost/foo +</pre> +</div></div> +<p>This will ensure that different segments do not interfere with one another. Though typically we use unique topic and queue destinations so that all traffic can coexist happily on the same logical network.</p> + +<h2 id="Version5Topologies-Client-Server">Client-Server</h2> + +<p>This is probably the most efficient and fastest solution for large numbers of clients requiring a diverse range of communication options from publish / subscribe to queue based communication. Typically the clients will connect with a Message Broker using a protocol, typically TCP or SSL but this could be NIO or other protocols.</p> + +<p>We can load balance clients across brokers and provide broker failover so that we have a logical cluster of brokers with <a shape="rect" href="ha.html">HA</a>.</p> + +<p>e.g.</p> +<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl"> +<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;"> +tcp://somehost:port +</pre> +</div></div> +<p>Or for SSL</p> +<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl"> +<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;"> +ssl://somehost:port +</pre> +</div></div> +<p>You can use <a shape="rect" href="discovery.html">Discovery</a> to find the brokers available that you can connect to which makes it easier to seamlessly connect to a cluster of brokers.</p> + +<h2 id="Version5Topologies-EmbeddedBroker">Embedded Broker</h2> + +<p>This is logically equivalent to Client-Server but some (or all) clients contain a locally embedded broker. So communcation between the client and server (broker) are all within the same JVM and so do not use real networking - though brokers may communicate with other brokers or clients connected to it.</p> + +<p>This can avoid the extra hop required to go from producer to broker to consumer - which is a great optimisation for RMI / RPC style situations, where you want the performance benefits (reduced latency) of point to point networking but with the scalabilty of a flexible messaging fabric.</p> + +<p>Embedded Brokers can also simplify deployment options as well, its one less process to run.</p> + +<p>Another use case for embedded brokers is to provide store and forward isolation from each service - so that the remote brokers can fail quite happily without affecting the service with the embedded broker. e.g. the entire network could fail, but a service could continue publishing messages to its embedded broker.</p> + +<p>You can find out how to <a shape="rect" href="how-do-i-embed-a-broker-inside-a-connection.html">configure an embedded broker here</a></p> + +<h2 id="Version5Topologies-PeertoPeer">Peer to Peer</h2> + +<p>This allows peer based clusters to be created where there is no server - just clients connecting together.<br clear="none"> +There are various ways to implement a peer to peer JMS network. One easy way is just to use a multicast transport for communication; then all nodes on the same multicast address will receive all messages and the local embedded message broker will route messages to the necessary MessageConsumers.</p> + +<p>We currently have 3 choices for multicast protocols</p> +<ul><li>multicast</li><li>jgroups: uses the JGroups library to implement reliable multicast</li><li>jrms: uses Sun's JRMS library to implement reliable multicast</li></ul> + + +<p>Multicast is great in development though often you might want to disable this feature in production and have well known servers fixed on specific machines. Often socket based communication (using pointcast) is much faster & better for heavy-lifting - particularly on Java - so we tend to recommend to use multicast mostly for discovery and use TCP / SSL for your heavy duty messaging.</p> + +<p>Often we can use the peer to peer topology as a bootstrap to create a cluster of clients & brokers and then autodeploy servers into the cluster for a true grid style network.</p> + +<p>So you can get the effect of a peer based network using <a shape="rect" href="discovery.html">Discovery</a> together with either stand alone Brokers or using embedded brokers.</p> + +<h3 id="Version5Topologies-JXTA">JXTA</h3> + +<p>We have a JXTA transport which will use the full JXTA stack for negotiating NAT and across firewalls and so forth for creating a true peer based JMS network.</p> +<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl"> +<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;"> +jxta://hostname:port +</pre> +</div></div> +<p>Currently you need to run one server which everyone connects to via JXTA. We've not yet created a pure peer network with JXTA</p></div> </td> <td valign="top"> <div class="navigation">