http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/af2718af/content/docs/best-practice-producer/index.html
----------------------------------------------------------------------
diff --cc content/docs/best-practice-producer/index.html
index ce4e178,0000000..5edf788
mode 100644,000000..100644
--- a/content/docs/best-practice-producer/index.html
+++ b/content/docs/best-practice-producer/index.html
@@@ -1,654 -1,0 +1,654 @@@
 +<!doctype html>
 +<html lang="en" class="no-js">
 +  <head>
 +    <meta charset="utf-8">
 +
 +<!-- begin SEO -->
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +<title>Best Practice For Producer - Apache RocketMQ</title>
 +
 +
 +
 +
 +<meta name="description" content="Some useful tips for users.">
 +
 +
 +
 +
 +<meta property="og:locale" content="en">
 +<meta property="og:site_name" content="Apache RocketMQ">
 +<meta property="og:title" content="Best Practice For Producer">
 +
 +
 +
 +
 +  <meta property="og:description" content="Some useful tips for users.">
 +
 +
 +
 +  <meta name="twitter:site" content="@ApacheRocketMQ">
 +  <meta name="twitter:title" content="Best Practice For Producer">
 +  <meta name="twitter:description" content="Some useful tips for users.">
 +  <meta name="twitter:url" content="">
 +
 +  
 +    <meta name="twitter:card" content="summary">
 +    
 +  
 +
 +  
 +
 +
 +
 +  
 +
 +  
 +
 +
 +
 +
 +
 +  <meta property="og:type" content="article">
-   <meta property="article:published_time" content="2017-06-08T17:34:10+08:00">
++  <meta property="article:published_time" content="2017-06-08T18:09:33+08:00">
 +
 +
 +
 +
 +
 +
 +
 +
 +  <script type="application/ld+json">
 +    {
 +      "@context" : "http://schema.org";,
 +      "@type" : "Person",
 +      "name" : "Apache RocketMQ",
 +      "url" : null,
 +      "sameAs" : null
 +    }
 +  </script>
 +
 +
 +
 +  <meta name="google-site-verification" 
content="aand0XZkSGsziuC-UPD4ZJniFD0m0JhGx6820y2mAQY" />
 +
 +
 +  <meta name="baidu-site-verification" content="wD06EbDRkQ" />
 +
 +
 +
 +
 +<!-- end SEO -->
 +
 +
 +<link href="/feed.xml" type="application/atom+xml" rel="alternate" 
title="Apache RocketMQ Feed">
 +
 +<!-- http://t.co/dKP3o1e -->
 +<meta name="HandheldFriendly" content="True">
 +<meta name="MobileOptimized" content="320">
 +<meta name="viewport" content="width=device-width, initial-scale=1.0">
 +
 +<script>
 +  document.documentElement.className = 
document.documentElement.className.replace(/\bno-js\b/g, '') + ' js ';
 +</script>
 +
 +<!-- For all browsers -->
 +<link rel="stylesheet" href="/assets/css/main.css">
 +
 +<meta http-equiv="cleartype" content="on">
 +    <!-- start custom head snippets -->
 +
 +<!-- insert favicons. use http://realfavicongenerator.net/ -->
 +
 +<!-- end custom head snippets -->
 +  </head>
 +
 +  <body class="layout--single">
 +
 +    <!--[if lt IE 9]>
 +<div class="notice--danger align-center" style="margin: 0;">You are using an 
<strong>outdated</strong> browser. Please <a 
href="http://browsehappy.com/";>upgrade your browser</a> to improve your 
experience.</div>
 +<![endif]-->
 +    <div class="masthead">
 +  <div class="masthead__inner-wrap">
 +    <div class="masthead__menu">
 +      <nav id="site-nav" class="greedy-nav">
 +        <button><div class="navicon"></div></button>
 +        <ul class="visible-links">
 +          <li class="masthead__menu-item masthead__menu-item--lg"><a 
href="/">Apache RocketMQ</a></li>
 +          
 +            
 +            <li class="masthead__menu-item"><a 
href="/docs/quick-start/">Documentation</a></li>
 +          
 +            
 +            <li class="masthead__menu-item"><a 
href="/year-archive/">Blog</a></li>
 +          
 +            
 +            <li class="masthead__menu-item"><a 
href="/community/">Community</a></li>
 +          
 +            
 +            <li class="masthead__menu-item"><a 
href="/customer/">Customer</a></li>
 +          
 +            
 +            <li class="masthead__menu-item"><a 
href="/about/team/">About</a></li>
 +          
 +        </ul>
 +        <ul class="hidden-links hidden"></ul>
 +      </nav>
 +    </div>
 +  </div>
 +</div>
 +
 +    
 +
 +
 +
 +<div id="main" role="main">
 +  
 +  <div class="sidebar sticky">
 +  
 +  
 +    
 +      
 +      
 +      
 +    
 +    
 +      
 +
 +<nav class="nav__list">
 +  
 +  <input id="ac-toc" name="accordion-toc" type="checkbox" />
 +  <label for="ac-toc">Toggle Menu</label>
 +  <ul class="nav__items">
 +    
 +      <li>
 +        
 +          <span class="nav__sub-title">User Guide</span>
 +        
 +
 +        
 +        <ul>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/motivation/" class="">Why RocketMQ</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/quick-start/" class="">Quick Start</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/simple-example/" class="">Simple 
Example</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/order-example/" class="">Order Example</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/broadcast-example/" class="">Broadcasting 
Example</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/schedule-example/" class="">Schedule 
Example</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/batch-example/" class="">Batch Example</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/filter-by-sql92-example/" class="">Filter 
Example</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/faq/" class="">FAQ</a></li>
 +          
 +        </ul>
 +        
 +      </li>
 +    
 +      <li>
 +        
 +          <span class="nav__sub-title">Deployment & Operations</span>
 +        
 +
 +        
 +        <ul>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/rmq-arc/" class="">Architecture</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/rmq-deployment/" class="">Deployment</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/cli-admin-tool/" class="">CLI Admin 
Tool</a></li>
 +          
 +        </ul>
 +        
 +      </li>
 +    
 +      <li>
 +        
 +          <span class="nav__sub-title">Contributor Guide</span>
 +        
 +
 +        
 +        <ul>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/code-guidelines/" class="">Code 
Guidelines</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/pull-request/" class="">Manage Pull 
Request</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/release-manual" class="">Release 
Manual</a></li>
 +          
 +        </ul>
 +        
 +      </li>
 +    
 +      <li>
 +        
 +          <span class="nav__sub-title">Best Practice</span>
 +        
 +
 +        
 +        <ul>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/core-concept/" class="">Core Concept</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/best-practice-broker/" class="">Broker</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/best-practice-producer/" 
class="active">Producer</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/best-practice-consumer/" 
class="">Consumer</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/best-practice-namesvr/" 
class="">NameServer</a></li>
 +          
 +        </ul>
 +        
 +      </li>
 +    
 +      <li>
 +        
 +          <span class="nav__sub-title">Release Notes</span>
 +        
 +
 +        
 +        <ul>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/dowloading/releases/" class="">Download</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/release_notes/release-notes-4.0.0-incubating/" 
class="">4.0.0-incubating</a></li>
 +          
 +        </ul>
 +        
 +      </li>
 +    
 +      <li>
 +        
 +          
 +          
 +
 +          <a href="/docs/roadmap/"><span 
class="nav__sub-title">RoadMap</span></a>
 +        
 +
 +        
 +      </li>
 +    
 +  </ul>
 +</nav>
 +    
 +  
 +  </div>
 +
 +
 +  <article class="page" itemscope itemtype="http://schema.org/CreativeWork";>
 +    <meta itemprop="headline" content="Best Practice For Producer">
 +    <meta itemprop="description" content="Some useful tips for users.">
 +    <meta itemprop="datePublished" content="June 08, 2017">
 +    <meta itemprop="dateModified" content="December 24, 2016">
 +
 +    <div class="page__inner-wrap">
 +      
 +        <header>
 +          <h1 class="page__title" itemprop="headline">Best Practice For 
Producer
 +</h1>
 +          
 +        </header>
 +      
 +
 +      <section class="page__content" itemprop="text">
 +        <p>Some useful tips for users.</p>
 +
 +<aside class="sidebar__right">
 +<nav class="toc">
 +    <header><h4 class="nav__title"><i class="fa fa-file-text"></i> On This 
Page</h4></header>
 +<ul class="toc__menu" id="markdown-toc">
 +  <li><a href="#sendstatus" id="markdown-toc-sendstatus">SendStatus</a>    
<ul>
 +      <li><a href="#flush_disk_timeout" 
id="markdown-toc-flush_disk_timeout">FLUSH_DISK_TIMEOUT</a></li>
 +      <li><a href="#flush_slave_timeout" 
id="markdown-toc-flush_slave_timeout">FLUSH_SLAVE_TIMEOUT</a></li>
 +      <li><a href="#slave_not_available" 
id="markdown-toc-slave_not_available">SLAVE_NOT_AVAILABLE</a></li>
 +      <li><a href="#send_ok" id="markdown-toc-send_ok">SEND_OK</a></li>
 +      <li><a href="#duplication-or-missing" 
id="markdown-toc-duplication-or-missing">Duplication or Missing</a></li>
 +    </ul>
 +  </li>
 +  <li><a href="#timeout" id="markdown-toc-timeout">Timeout</a></li>
 +  <li><a href="#message-size" id="markdown-toc-message-size">Message 
Size</a></li>
 +  <li><a href="#async-sending" id="markdown-toc-async-sending">Async 
Sending</a></li>
 +  <li><a href="#producer-group" id="markdown-toc-producer-group">Producer 
Group</a></li>
 +  <li><a href="#thread-safety" id="markdown-toc-thread-safety">Thread 
Safety</a></li>
 +  <li><a href="#performance" 
id="markdown-toc-performance">Performance</a></li>
 +</ul>
 +
 +  </nav>
 +</aside>
 +
 +<h2 id="sendstatus">SendStatus</h2>
 +<p>When sending a message, you will get SendResult which contains SendStatus. 
Firstly, we assume that Message’s isWaitStoreMsgOK=true(default is true). If 
not, we will always get SEND_OK if no exception is thrown.
 +Below is a list of descriptions about each status:</p>
 +<h3 id="flush_disk_timeout">FLUSH_DISK_TIMEOUT</h3>
 +<p>If the Broker set MessageStoreConfig’s FlushDiskType=SYNC_FLUSH(default 
is ASYNC_FLUSH), and the Broker doesn’t finish flushing the disk within 
MessageStoreConfig’s syncFlushTimeout(default is 5 secs), you will get this 
status.</p>
 +<h3 id="flush_slave_timeout">FLUSH_SLAVE_TIMEOUT</h3>
 +<p>If the Broker’s role is SYNC_MASTER(default is ASYNC_MASTER), and the 
slave Broker doesn’t finish synchronizing with the master within the 
MessageStoreConfig’s syncFlushTimeout(default is 5 secs), you will get this 
status.</p>
 +<h3 id="slave_not_available">SLAVE_NOT_AVAILABLE</h3>
 +<p>If the Broker’s role is SYNC_MASTER(default is ASYNC_MASTER), but no 
slave Broker is configured, you will get this status.</p>
 +<h3 id="send_ok">SEND_OK</h3>
 +<p>SEND_OK does not mean it is reliable. To make sure no message would be 
lost, you should also enable SYNC_MASTER or SYNC_FLUSH.</p>
 +<h3 id="duplication-or-missing">Duplication or Missing</h3>
 +<p>If you get FLUSH_DISK_TIMEOUT, FLUSH_SLAVE_TIMEOUT and the Broker happens 
to shutdown right the moment, you can find your message missing.
 +At this time, you have two choices, one is to let it go, which may cause this 
message to be lost; another is to resend the message, which may get message 
duplication.
 +Often we suggest resend and find a way to handle the duplication removal when 
consuming. Unless you feel it doesn’t matter when some messages are lost.
 +But keep in mind that resending is useless when you get SLAVE_NOT_AVAILABLE. 
If this happens, you should keep the scene and alert the Cluster Manager.</p>
 +<h2 id="timeout">Timeout</h2>
 +<p>The Client sends requests to Broker, and wait for the responses, but if 
the max wait time has elapsed and no response is returned, the Client will 
throw a RemotingTimeoutException.
 +The default wait time is 3 seconds. You can also pass timeout argument using 
send(msg, timeout) instead of send(msg).
 +Note that we do not suggest the wait time to be too small, as the Broker 
needs some time to flush the disk or synchronize with slaves. Also the value 
may have little effect if it exceeds syncFlushTimeout by a lot as Broker may 
return a response with FLUSH_SLAVE_TIMEOUT or FLUSH_SLAVE_TIMEOUT before the 
timeout.</p>
 +<h2 id="message-size">Message Size</h2>
 +<p>We suggest the size of message should be no more than 512K.</p>
 +<h2 id="async-sending">Async Sending</h2>
 +<p>Default send(msg) will block until the response is returned. So if you 
care about performance, we suggest you use send(msg, callback) which will act 
in the async way.</p>
 +<h2 id="producer-group">Producer Group</h2>
 +<p>Normally, the producer group has no effects. But if you are involved in a 
transaction, you should pay attention to it.
 +By default, you can only create only one producer with the same producer 
group in the same JVM, which is usually enough.</p>
 +<h2 id="thread-safety">Thread Safety</h2>
 +<p>The producer is thread-safe, you can just use it in your business 
solution.</p>
 +<h2 id="performance">Performance</h2>
 +<p>If you want more than one producer in one JVM for big data processing, we 
suggest:</p>
 +<ul>
 +  <li>use async sending with a few producers (3~5 is enough)</li>
 +  <li>setInstanceName for each producer</li>
 +</ul>
 +
 +
 +        
 +      </section>
 +
 +      <footer class="page__meta">
 +        
 +        
 +
 +
 +        
 +          <p class="page__date"><strong><i class="fa fa-fw fa-calendar" 
aria-hidden="true"></i> Updated:</strong> <time datetime="2016-12-24">December 
24, 2016</time></p>
 +        
 +      </footer>
 +
 +      <section class="page__share">
 +  
 +    <h4 class="page__share-title">Share on</h4>
 +  
 +
 +  <a href="https://twitter.com/intent/tweet?via=ApacheRocketMQ&text=Best 
Practice For Producer /docs/best-practice-producer/" class="btn btn--twitter" 
title="Share on Twitter"><i class="fa fa-fw fa-twitter" 
aria-hidden="true"></i><span> Twitter</span></a>
 +
 +  <a 
href="https://www.facebook.com/sharer/sharer.php?u=/docs/best-practice-producer/";
 class="btn btn--facebook" title="Share on Facebook"><i class="fa fa-fw 
fa-facebook" aria-hidden="true"></i><span> Facebook</span></a>
 +
 +  <a href="https://plus.google.com/share?url=/docs/best-practice-producer/"; 
class="btn btn--google-plus" title="Share on Google Plus"><i class="fa fa-fw 
fa-google-plus" aria-hidden="true"></i><span> Google+</span></a>
 +
 +  <a 
href="https://www.linkedin.com/shareArticle?mini=true&url=/docs/best-practice-producer/";
 class="btn btn--linkedin" title="Share on LinkedIn"><i class="fa fa-fw 
fa-linkedin" aria-hidden="true"></i><span> LinkedIn</span></a>
 +</section>
 +
 +
 +      
 +  <nav class="pagination">
 +    
 +      <a href="/docs/best-practice-namesvr/" class="pagination--pager" 
title="Best Practice For NameServer
 +">Previous</a>
 +    
 +    
 +      <a href="#" class="pagination--pager disabled">Next</a>
 +    
 +  </nav>
 +
 +    </div>
 +
 +    
 +      <div class="page__comments">
 +  
 +  
 +    <h4 class="page__comments-title">Leave a Comment</h4>
 +    <section id="disqus_thread"></section>
 +  
 +</div>
 +    
 +  </article>
 +
 +  
 +  
 +</div>
 +
 +    <div class="page__footer">
 +      <footer>
 +        <!-- start custom footer snippets -->
 +
 +<!-- end custom footer snippets -->
 +        <style type="text/css">
 +  div.columns   { float: left; margin-left: 10px;}
 +  div.clear     { clear: both; } 
 +</style>
 +<div>
 +  <div class="columns">
 +    <a href="https://www.apache.org/";><img 
src="/assets/images/feather-small.gif" alt="Apache Software Foundation" 
style="height: 88px !important" /></a>
 +  </div>
 +  <div class="columns" style="width: 80%">
 +    <div class="page__footer-follow">
 +      <ul class="social-icons">
 +        
 +          <li><strong>Follow:</strong></li>
 +        
 +        
 +          <li><a href="https://twitter.com/ApacheRocketMQ";><i class="fa fa-fw 
fa-twitter-square" aria-hidden="true"></i> Twitter</a></li>
 +        
 +        
 +        
 +          <li><a href="http://github.com/apache/incubator-rocketmq";><i 
class="fa fa-fw fa-github" aria-hidden="true"></i> GitHub</a></li>
 +        
 +        
 +        <li><a href="/feed.xml"><i class="fa fa-fw fa-rss-square" 
aria-hidden="true"></i> Feed</a></li>
 +      </ul>
 +    </div>
 +
 +    <div class="page__footer-copyright">Copyright &copy; 2017 <a 
href="http://www.apache.org/";>The Apache Software Foundation</a>. All Rights 
Reserved.</div>
 +  </div>
 +</div>
 +<div class="clear"></div>
 +      </footer>
 +    </div>
 +
 +    <script src="/assets/js/main.min.js"></script>
 +
 +
 +
 +
 +  <script>
 +  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
 +  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new 
Date();a=s.createElement(o),
 +  
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
 +  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
 +
 +  ga('create', 'UA-89603173-1', 'auto');
 +  ga('send', 'pageview');
 +</script>
 +
 +<script>
 +var _hmt = _hmt || [];
 +(function() {
 +  var hm = document.createElement("script");
 +  hm.src = "https://hm.baidu.com/hm.js?36428f2b841d08e7405724cbf7f860d2";;
 +  var s = document.getElementsByTagName("script")[0]; 
 +  s.parentNode.insertBefore(hm, s);
 +})();
 +</script>
 +
 +
 +
 +
 +  
 +  <script type="text/javascript">
 +      /* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * 
* */
 +      var disqus_shortname = 'rocketmq';
 +
 +      /* * * DON'T EDIT BELOW THIS LINE * * */
 +      (function() {
 +              var dsq = document.createElement('script'); dsq.type = 
'text/javascript'; dsq.async = true;
 +              dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
 +              (document.getElementsByTagName('head')[0] || 
document.getElementsByTagName('body')[0]).appendChild(dsq);
 +      })();
 +
 +      /* * * DON'T EDIT BELOW THIS LINE * * */
 +      (function () {
 +              var s = document.createElement('script'); s.async = true;
 +              s.type = 'text/javascript';
 +              s.src = '//' + disqus_shortname + '.disqus.com/count.js';
 +              (document.getElementsByTagName('HEAD')[0] || 
document.getElementsByTagName('BODY')[0]).appendChild(s);
 +      }());
 +  </script>
 +  <noscript>Please enable JavaScript to view the <a 
href="http://disqus.com/?ref_noscript";>comments powered by 
Disqus.</a></noscript>
 +
 +
 +
 +
 +
 +
 +  </body>
 +</html>

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/af2718af/content/docs/broadcast-example/index.html
----------------------------------------------------------------------
diff --cc content/docs/broadcast-example/index.html
index 28ef929,0000000..51d37a6
mode 100644,000000..100644
--- a/content/docs/broadcast-example/index.html
+++ b/content/docs/broadcast-example/index.html
@@@ -1,660 -1,0 +1,660 @@@
 +<!doctype html>
 +<html lang="en" class="no-js">
 +  <head>
 +    <meta charset="utf-8">
 +
 +<!-- begin SEO -->
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +<title>Broadcasting - Apache RocketMQ</title>
 +
 +
 +
 +
 +<meta name="description" content="How to send broadcast messages in Apache 
RocketMQ.">
 +
 +
 +
 +
 +<meta property="og:locale" content="en">
 +<meta property="og:site_name" content="Apache RocketMQ">
 +<meta property="og:title" content="Broadcasting">
 +
 +
 +
 +
 +  <meta property="og:description" content="How to send broadcast messages in 
Apache RocketMQ.">
 +
 +
 +
 +  <meta name="twitter:site" content="@ApacheRocketMQ">
 +  <meta name="twitter:title" content="Broadcasting">
 +  <meta name="twitter:description" content="How to send broadcast messages in 
Apache RocketMQ.">
 +  <meta name="twitter:url" content="">
 +
 +  
 +    <meta name="twitter:card" content="summary">
 +    
 +  
 +
 +  
 +
 +
 +
 +  
 +
 +  
 +
 +
 +
 +
 +
 +  <meta property="og:type" content="article">
-   <meta property="article:published_time" content="2017-06-08T17:34:10+08:00">
++  <meta property="article:published_time" content="2017-06-08T18:09:33+08:00">
 +
 +
 +
 +
 +
 +
 +
 +
 +  <script type="application/ld+json">
 +    {
 +      "@context" : "http://schema.org";,
 +      "@type" : "Person",
 +      "name" : "Apache RocketMQ",
 +      "url" : null,
 +      "sameAs" : null
 +    }
 +  </script>
 +
 +
 +
 +  <meta name="google-site-verification" 
content="aand0XZkSGsziuC-UPD4ZJniFD0m0JhGx6820y2mAQY" />
 +
 +
 +  <meta name="baidu-site-verification" content="wD06EbDRkQ" />
 +
 +
 +
 +
 +<!-- end SEO -->
 +
 +
 +<link href="/feed.xml" type="application/atom+xml" rel="alternate" 
title="Apache RocketMQ Feed">
 +
 +<!-- http://t.co/dKP3o1e -->
 +<meta name="HandheldFriendly" content="True">
 +<meta name="MobileOptimized" content="320">
 +<meta name="viewport" content="width=device-width, initial-scale=1.0">
 +
 +<script>
 +  document.documentElement.className = 
document.documentElement.className.replace(/\bno-js\b/g, '') + ' js ';
 +</script>
 +
 +<!-- For all browsers -->
 +<link rel="stylesheet" href="/assets/css/main.css">
 +
 +<meta http-equiv="cleartype" content="on">
 +    <!-- start custom head snippets -->
 +
 +<!-- insert favicons. use http://realfavicongenerator.net/ -->
 +
 +<!-- end custom head snippets -->
 +  </head>
 +
 +  <body class="layout--single">
 +
 +    <!--[if lt IE 9]>
 +<div class="notice--danger align-center" style="margin: 0;">You are using an 
<strong>outdated</strong> browser. Please <a 
href="http://browsehappy.com/";>upgrade your browser</a> to improve your 
experience.</div>
 +<![endif]-->
 +    <div class="masthead">
 +  <div class="masthead__inner-wrap">
 +    <div class="masthead__menu">
 +      <nav id="site-nav" class="greedy-nav">
 +        <button><div class="navicon"></div></button>
 +        <ul class="visible-links">
 +          <li class="masthead__menu-item masthead__menu-item--lg"><a 
href="/">Apache RocketMQ</a></li>
 +          
 +            
 +            <li class="masthead__menu-item"><a 
href="/docs/quick-start/">Documentation</a></li>
 +          
 +            
 +            <li class="masthead__menu-item"><a 
href="/year-archive/">Blog</a></li>
 +          
 +            
 +            <li class="masthead__menu-item"><a 
href="/community/">Community</a></li>
 +          
 +            
 +            <li class="masthead__menu-item"><a 
href="/customer/">Customer</a></li>
 +          
 +            
 +            <li class="masthead__menu-item"><a 
href="/about/team/">About</a></li>
 +          
 +        </ul>
 +        <ul class="hidden-links hidden"></ul>
 +      </nav>
 +    </div>
 +  </div>
 +</div>
 +
 +    
 +
 +
 +
 +<div id="main" role="main">
 +  
 +  <div class="sidebar sticky">
 +  
 +  
 +    
 +      
 +      
 +      
 +    
 +    
 +      
 +
 +<nav class="nav__list">
 +  
 +  <input id="ac-toc" name="accordion-toc" type="checkbox" />
 +  <label for="ac-toc">Toggle Menu</label>
 +  <ul class="nav__items">
 +    
 +      <li>
 +        
 +          <span class="nav__sub-title">User Guide</span>
 +        
 +
 +        
 +        <ul>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/motivation/" class="">Why RocketMQ</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/quick-start/" class="">Quick Start</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/simple-example/" class="">Simple 
Example</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/order-example/" class="">Order Example</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/broadcast-example/" 
class="active">Broadcasting Example</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/schedule-example/" class="">Schedule 
Example</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/batch-example/" class="">Batch Example</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/filter-by-sql92-example/" class="">Filter 
Example</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/faq/" class="">FAQ</a></li>
 +          
 +        </ul>
 +        
 +      </li>
 +    
 +      <li>
 +        
 +          <span class="nav__sub-title">Deployment & Operations</span>
 +        
 +
 +        
 +        <ul>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/rmq-arc/" class="">Architecture</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/rmq-deployment/" class="">Deployment</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/cli-admin-tool/" class="">CLI Admin 
Tool</a></li>
 +          
 +        </ul>
 +        
 +      </li>
 +    
 +      <li>
 +        
 +          <span class="nav__sub-title">Contributor Guide</span>
 +        
 +
 +        
 +        <ul>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/code-guidelines/" class="">Code 
Guidelines</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/pull-request/" class="">Manage Pull 
Request</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/release-manual" class="">Release 
Manual</a></li>
 +          
 +        </ul>
 +        
 +      </li>
 +    
 +      <li>
 +        
 +          <span class="nav__sub-title">Best Practice</span>
 +        
 +
 +        
 +        <ul>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/core-concept/" class="">Core Concept</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/best-practice-broker/" class="">Broker</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/best-practice-producer/" 
class="">Producer</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/best-practice-consumer/" 
class="">Consumer</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/best-practice-namesvr/" 
class="">NameServer</a></li>
 +          
 +        </ul>
 +        
 +      </li>
 +    
 +      <li>
 +        
 +          <span class="nav__sub-title">Release Notes</span>
 +        
 +
 +        
 +        <ul>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/dowloading/releases/" class="">Download</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/release_notes/release-notes-4.0.0-incubating/" 
class="">4.0.0-incubating</a></li>
 +          
 +        </ul>
 +        
 +      </li>
 +    
 +      <li>
 +        
 +          
 +          
 +
 +          <a href="/docs/roadmap/"><span 
class="nav__sub-title">RoadMap</span></a>
 +        
 +
 +        
 +      </li>
 +    
 +  </ul>
 +</nav>
 +    
 +  
 +  </div>
 +
 +
 +  <article class="page" itemscope itemtype="http://schema.org/CreativeWork";>
 +    <meta itemprop="headline" content="Broadcasting">
 +    <meta itemprop="description" content="How to send broadcast messages in 
Apache RocketMQ.">
 +    <meta itemprop="datePublished" content="June 08, 2017">
 +    <meta itemprop="dateModified" content="April 24, 2017">
 +
 +    <div class="page__inner-wrap">
 +      
 +        <header>
 +          <h1 class="page__title" itemprop="headline">Broadcasting
 +</h1>
 +          
 +        </header>
 +      
 +
 +      <section class="page__content" itemprop="text">
 +        <aside class="sidebar__right">
 +<nav class="toc">
 +    <header><h4 class="nav__title"><i class="fa fa-file-text"></i> On This 
Page</h4></header>
 +<ul class="toc__menu" id="markdown-toc">
 +  <li><a href="#what-is-broadcasting" 
id="markdown-toc-what-is-broadcasting">What is broadcasting</a></li>
 +  <li><a href="#producer-example" id="markdown-toc-producer-example">Producer 
example</a></li>
 +  <li><a href="#consumer-example" id="markdown-toc-consumer-example">Consumer 
example</a></li>
 +</ul>
 +
 +  </nav>
 +</aside>
 +
 +<h4 id="what-is-broadcasting">What is broadcasting</h4>
 +<p>Broadcasting is sending a message to all subscribers of a topic. If you 
want all subscribers receive messages about a topic, broadcasting is a good 
choice.</p>
 +
 +<h4 id="producer-example">Producer example</h4>
 +
 +<div class="language-java highlighter-rouge"><pre 
class="highlight"><code><span class="kd">public</span> <span 
class="kd">class</span> <span class="nc">BroadcastProducer</span> <span 
class="o">{</span>
 +    <span class="kd">public</span> <span class="kd">static</span> <span 
class="kt">void</span> <span class="nf">main</span><span 
class="o">(</span><span class="n">String</span><span class="o">[]</span> <span 
class="n">args</span><span class="o">)</span> <span class="kd">throws</span> 
<span class="n">Exception</span> <span class="o">{</span>
 +        <span class="n">DefaultMQProducer</span> <span 
class="n">producer</span> <span class="o">=</span> <span class="k">new</span> 
<span class="n">DefaultMQProducer</span><span class="o">(</span><span 
class="s">"ProducerGroupName"</span><span class="o">);</span>
 +        <span class="n">producer</span><span class="o">.</span><span 
class="na">start</span><span class="o">();</span>
 +
 +        <span class="k">for</span> <span class="o">(</span><span 
class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span 
class="mi">0</span><span class="o">;</span> <span class="n">i</span> <span 
class="o">&lt;</span> <span class="mi">100</span><span class="o">;</span> <span 
class="n">i</span><span class="o">++){</span>
 +            <span class="n">Message</span> <span class="n">msg</span> <span 
class="o">=</span> <span class="k">new</span> <span 
class="n">Message</span><span class="o">(</span><span 
class="s">"TopicTest"</span><span class="o">,</span>
 +                <span class="s">"TagA"</span><span class="o">,</span>
 +                <span class="s">"OrderID188"</span><span class="o">,</span>
 +                <span class="s">"Hello world"</span><span 
class="o">.</span><span class="na">getBytes</span><span class="o">(</span><span 
class="n">RemotingHelper</span><span class="o">.</span><span 
class="na">DEFAULT_CHARSET</span><span class="o">));</span>
 +            <span class="n">SendResult</span> <span 
class="n">sendResult</span> <span class="o">=</span> <span 
class="n">producer</span><span class="o">.</span><span 
class="na">send</span><span class="o">(</span><span class="n">msg</span><span 
class="o">);</span>
 +            <span class="n">System</span><span class="o">.</span><span 
class="na">out</span><span class="o">.</span><span 
class="na">printf</span><span class="o">(</span><span 
class="s">"%s%n"</span><span class="o">,</span> <span 
class="n">sendResult</span><span class="o">);</span>
 +        <span class="o">}</span>
 +        <span class="n">producer</span><span class="o">.</span><span 
class="na">shutdown</span><span class="o">();</span>
 +    <span class="o">}</span>
 +<span class="o">}</span>
 +</code></pre>
 +</div>
 +
 +<h4 id="consumer-example">Consumer example</h4>
 +
 +<div class="language-java highlighter-rouge"><pre 
class="highlight"><code><span class="kd">public</span> <span 
class="kd">class</span> <span class="nc">BroadcastConsumer</span> <span 
class="o">{</span>
 +    <span class="kd">public</span> <span class="kd">static</span> <span 
class="kt">void</span> <span class="nf">main</span><span 
class="o">(</span><span class="n">String</span><span class="o">[]</span> <span 
class="n">args</span><span class="o">)</span> <span class="kd">throws</span> 
<span class="n">Exception</span> <span class="o">{</span>
 +        <span class="n">DefaultMQPushConsumer</span> <span 
class="n">consumer</span> <span class="o">=</span> <span class="k">new</span> 
<span class="n">DefaultMQPushConsumer</span><span class="o">(</span><span 
class="s">"example_group_name"</span><span class="o">);</span>
 +
 +        <span class="n">consumer</span><span class="o">.</span><span 
class="na">setConsumeFromWhere</span><span class="o">(</span><span 
class="n">ConsumeFromWhere</span><span class="o">.</span><span 
class="na">CONSUME_FROM_FIRST_OFFSET</span><span class="o">);</span>
 +
 +        <span class="c1">//set to broadcast mode</span>
 +        <span class="n">consumer</span><span class="o">.</span><span 
class="na">setMessageModel</span><span class="o">(</span><span 
class="n">MessageModel</span><span class="o">.</span><span 
class="na">BROADCASTING</span><span class="o">);</span>
 +
 +        <span class="n">consumer</span><span class="o">.</span><span 
class="na">subscribe</span><span class="o">(</span><span 
class="s">"TopicTest"</span><span class="o">,</span> <span class="s">"TagA || 
TagC || TagD"</span><span class="o">);</span>
 +
 +        <span class="n">consumer</span><span class="o">.</span><span 
class="na">registerMessageListener</span><span class="o">(</span><span 
class="k">new</span> <span class="n">MessageListenerConcurrently</span><span 
class="o">()</span> <span class="o">{</span>
 +
 +            <span class="nd">@Override</span>
 +            <span class="kd">public</span> <span 
class="n">ConsumeConcurrentlyStatus</span> <span 
class="nf">consumeMessage</span><span class="o">(</span><span 
class="n">List</span><span class="o">&lt;</span><span 
class="n">MessageExt</span><span class="o">&gt;</span> <span 
class="n">msgs</span><span class="o">,</span>
 +                <span class="n">ConsumeConcurrentlyContext</span> <span 
class="n">context</span><span class="o">)</span> <span class="o">{</span>
 +                <span class="n">System</span><span class="o">.</span><span 
class="na">out</span><span class="o">.</span><span 
class="na">printf</span><span class="o">(</span><span 
class="n">Thread</span><span class="o">.</span><span 
class="na">currentThread</span><span class="o">().</span><span 
class="na">getName</span><span class="o">()</span> <span class="o">+</span> 
<span class="s">" Receive New Messages: "</span> <span class="o">+</span> <span 
class="n">msgs</span> <span class="o">+</span> <span class="s">"%n"</span><span 
class="o">);</span>
 +                <span class="k">return</span> <span 
class="n">ConsumeConcurrentlyStatus</span><span class="o">.</span><span 
class="na">CONSUME_SUCCESS</span><span class="o">;</span>
 +            <span class="o">}</span>
 +        <span class="o">});</span>
 +
 +        <span class="n">consumer</span><span class="o">.</span><span 
class="na">start</span><span class="o">();</span>
 +        <span class="n">System</span><span class="o">.</span><span 
class="na">out</span><span class="o">.</span><span 
class="na">printf</span><span class="o">(</span><span class="s">"Broadcast 
Consumer Started.%n"</span><span class="o">);</span>
 +    <span class="o">}</span>
 +<span class="o">}</span>
 +</code></pre>
 +</div>
 +
 +
 +        
 +      </section>
 +
 +      <footer class="page__meta">
 +        
 +        
 +
 +
 +        
 +          <p class="page__date"><strong><i class="fa fa-fw fa-calendar" 
aria-hidden="true"></i> Updated:</strong> <time datetime="2017-04-24">April 24, 
2017</time></p>
 +        
 +      </footer>
 +
 +      <section class="page__share">
 +  
 +    <h4 class="page__share-title">Share on</h4>
 +  
 +
 +  <a 
href="https://twitter.com/intent/tweet?via=ApacheRocketMQ&text=Broadcasting 
/docs/broadcast-example/" class="btn btn--twitter" title="Share on Twitter"><i 
class="fa fa-fw fa-twitter" aria-hidden="true"></i><span> Twitter</span></a>
 +
 +  <a 
href="https://www.facebook.com/sharer/sharer.php?u=/docs/broadcast-example/"; 
class="btn btn--facebook" title="Share on Facebook"><i class="fa fa-fw 
fa-facebook" aria-hidden="true"></i><span> Facebook</span></a>
 +
 +  <a href="https://plus.google.com/share?url=/docs/broadcast-example/"; 
class="btn btn--google-plus" title="Share on Google Plus"><i class="fa fa-fw 
fa-google-plus" aria-hidden="true"></i><span> Google+</span></a>
 +
 +  <a 
href="https://www.linkedin.com/shareArticle?mini=true&url=/docs/broadcast-example/";
 class="btn btn--linkedin" title="Share on LinkedIn"><i class="fa fa-fw 
fa-linkedin" aria-hidden="true"></i><span> LinkedIn</span></a>
 +</section>
 +
 +
 +      
 +  <nav class="pagination">
 +    
 +      <a href="/docs/batch-example/" class="pagination--pager" title="Batch 
Example
 +">Previous</a>
 +    
 +    
 +      <a href="/docs/rmq-deployment/" class="pagination--pager" 
title="Deployment
 +">Next</a>
 +    
 +  </nav>
 +
 +    </div>
 +
 +    
 +      <div class="page__comments">
 +  
 +  
 +    <h4 class="page__comments-title">Leave a Comment</h4>
 +    <section id="disqus_thread"></section>
 +  
 +</div>
 +    
 +  </article>
 +
 +  
 +  
 +</div>
 +
 +    <div class="page__footer">
 +      <footer>
 +        <!-- start custom footer snippets -->
 +
 +<!-- end custom footer snippets -->
 +        <style type="text/css">
 +  div.columns   { float: left; margin-left: 10px;}
 +  div.clear     { clear: both; } 
 +</style>
 +<div>
 +  <div class="columns">
 +    <a href="https://www.apache.org/";><img 
src="/assets/images/feather-small.gif" alt="Apache Software Foundation" 
style="height: 88px !important" /></a>
 +  </div>
 +  <div class="columns" style="width: 80%">
 +    <div class="page__footer-follow">
 +      <ul class="social-icons">
 +        
 +          <li><strong>Follow:</strong></li>
 +        
 +        
 +          <li><a href="https://twitter.com/ApacheRocketMQ";><i class="fa fa-fw 
fa-twitter-square" aria-hidden="true"></i> Twitter</a></li>
 +        
 +        
 +        
 +          <li><a href="http://github.com/apache/incubator-rocketmq";><i 
class="fa fa-fw fa-github" aria-hidden="true"></i> GitHub</a></li>
 +        
 +        
 +        <li><a href="/feed.xml"><i class="fa fa-fw fa-rss-square" 
aria-hidden="true"></i> Feed</a></li>
 +      </ul>
 +    </div>
 +
 +    <div class="page__footer-copyright">Copyright &copy; 2017 <a 
href="http://www.apache.org/";>The Apache Software Foundation</a>. All Rights 
Reserved.</div>
 +  </div>
 +</div>
 +<div class="clear"></div>
 +      </footer>
 +    </div>
 +
 +    <script src="/assets/js/main.min.js"></script>
 +
 +
 +
 +
 +  <script>
 +  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
 +  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new 
Date();a=s.createElement(o),
 +  
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
 +  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
 +
 +  ga('create', 'UA-89603173-1', 'auto');
 +  ga('send', 'pageview');
 +</script>
 +
 +<script>
 +var _hmt = _hmt || [];
 +(function() {
 +  var hm = document.createElement("script");
 +  hm.src = "https://hm.baidu.com/hm.js?36428f2b841d08e7405724cbf7f860d2";;
 +  var s = document.getElementsByTagName("script")[0]; 
 +  s.parentNode.insertBefore(hm, s);
 +})();
 +</script>
 +
 +
 +
 +
 +  
 +  <script type="text/javascript">
 +      /* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * 
* */
 +      var disqus_shortname = 'rocketmq';
 +
 +      /* * * DON'T EDIT BELOW THIS LINE * * */
 +      (function() {
 +              var dsq = document.createElement('script'); dsq.type = 
'text/javascript'; dsq.async = true;
 +              dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
 +              (document.getElementsByTagName('head')[0] || 
document.getElementsByTagName('body')[0]).appendChild(dsq);
 +      })();
 +
 +      /* * * DON'T EDIT BELOW THIS LINE * * */
 +      (function () {
 +              var s = document.createElement('script'); s.async = true;
 +              s.type = 'text/javascript';
 +              s.src = '//' + disqus_shortname + '.disqus.com/count.js';
 +              (document.getElementsByTagName('HEAD')[0] || 
document.getElementsByTagName('BODY')[0]).appendChild(s);
 +      }());
 +  </script>
 +  <noscript>Please enable JavaScript to view the <a 
href="http://disqus.com/?ref_noscript";>comments powered by 
Disqus.</a></noscript>
 +
 +
 +
 +
 +
 +
 +  </body>
 +</html>

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/af2718af/content/docs/cli-admin-tool/index.html
----------------------------------------------------------------------
diff --cc content/docs/cli-admin-tool/index.html
index a9e7682,0000000..cc95d07
mode 100644,000000..100644
--- a/content/docs/cli-admin-tool/index.html
+++ b/content/docs/cli-admin-tool/index.html
@@@ -1,682 -1,0 +1,682 @@@
 +<!doctype html>
 +<html lang="en" class="no-js">
 +  <head>
 +    <meta charset="utf-8">
 +
 +<!-- begin SEO -->
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +<title>CLI Admin Tool - Apache RocketMQ</title>
 +
 +
 +
 +
 +<meta name="description" content="RocketMQ provides a CLI admin tool belt to 
query, manage and diagnose various issues.">
 +
 +
 +
 +
 +<meta property="og:locale" content="en">
 +<meta property="og:site_name" content="Apache RocketMQ">
 +<meta property="og:title" content="CLI Admin Tool">
 +
 +
 +
 +
 +  <meta property="og:description" content="RocketMQ provides a CLI admin tool 
belt to query, manage and diagnose various issues.">
 +
 +
 +
 +  <meta name="twitter:site" content="@ApacheRocketMQ">
 +  <meta name="twitter:title" content="CLI Admin Tool">
 +  <meta name="twitter:description" content="RocketMQ provides a CLI admin 
tool belt to query, manage and diagnose various issues.">
 +  <meta name="twitter:url" content="">
 +
 +  
 +    <meta name="twitter:card" content="summary">
 +    
 +  
 +
 +  
 +
 +
 +
 +  
 +
 +  
 +
 +
 +
 +
 +
 +  <meta property="og:type" content="article">
-   <meta property="article:published_time" content="2017-06-08T17:34:10+08:00">
++  <meta property="article:published_time" content="2017-06-08T18:09:33+08:00">
 +
 +
 +
 +
 +
 +
 +
 +
 +  <script type="application/ld+json">
 +    {
 +      "@context" : "http://schema.org";,
 +      "@type" : "Person",
 +      "name" : "Apache RocketMQ",
 +      "url" : null,
 +      "sameAs" : null
 +    }
 +  </script>
 +
 +
 +
 +  <meta name="google-site-verification" 
content="aand0XZkSGsziuC-UPD4ZJniFD0m0JhGx6820y2mAQY" />
 +
 +
 +  <meta name="baidu-site-verification" content="wD06EbDRkQ" />
 +
 +
 +
 +
 +<!-- end SEO -->
 +
 +
 +<link href="/feed.xml" type="application/atom+xml" rel="alternate" 
title="Apache RocketMQ Feed">
 +
 +<!-- http://t.co/dKP3o1e -->
 +<meta name="HandheldFriendly" content="True">
 +<meta name="MobileOptimized" content="320">
 +<meta name="viewport" content="width=device-width, initial-scale=1.0">
 +
 +<script>
 +  document.documentElement.className = 
document.documentElement.className.replace(/\bno-js\b/g, '') + ' js ';
 +</script>
 +
 +<!-- For all browsers -->
 +<link rel="stylesheet" href="/assets/css/main.css">
 +
 +<meta http-equiv="cleartype" content="on">
 +    <!-- start custom head snippets -->
 +
 +<!-- insert favicons. use http://realfavicongenerator.net/ -->
 +
 +<!-- end custom head snippets -->
 +  </head>
 +
 +  <body class="layout--single">
 +
 +    <!--[if lt IE 9]>
 +<div class="notice--danger align-center" style="margin: 0;">You are using an 
<strong>outdated</strong> browser. Please <a 
href="http://browsehappy.com/";>upgrade your browser</a> to improve your 
experience.</div>
 +<![endif]-->
 +    <div class="masthead">
 +  <div class="masthead__inner-wrap">
 +    <div class="masthead__menu">
 +      <nav id="site-nav" class="greedy-nav">
 +        <button><div class="navicon"></div></button>
 +        <ul class="visible-links">
 +          <li class="masthead__menu-item masthead__menu-item--lg"><a 
href="/">Apache RocketMQ</a></li>
 +          
 +            
 +            <li class="masthead__menu-item"><a 
href="/docs/quick-start/">Documentation</a></li>
 +          
 +            
 +            <li class="masthead__menu-item"><a 
href="/year-archive/">Blog</a></li>
 +          
 +            
 +            <li class="masthead__menu-item"><a 
href="/community/">Community</a></li>
 +          
 +            
 +            <li class="masthead__menu-item"><a 
href="/customer/">Customer</a></li>
 +          
 +            
 +            <li class="masthead__menu-item"><a 
href="/about/team/">About</a></li>
 +          
 +        </ul>
 +        <ul class="hidden-links hidden"></ul>
 +      </nav>
 +    </div>
 +  </div>
 +</div>
 +
 +    
 +
 +
 +
 +<div id="main" role="main">
 +  
 +  <div class="sidebar sticky">
 +  
 +  
 +    
 +      
 +      
 +      
 +    
 +    
 +      
 +
 +<nav class="nav__list">
 +  
 +  <input id="ac-toc" name="accordion-toc" type="checkbox" />
 +  <label for="ac-toc">Toggle Menu</label>
 +  <ul class="nav__items">
 +    
 +      <li>
 +        
 +          <span class="nav__sub-title">User Guide</span>
 +        
 +
 +        
 +        <ul>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/motivation/" class="">Why RocketMQ</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/quick-start/" class="">Quick Start</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/simple-example/" class="">Simple 
Example</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/order-example/" class="">Order Example</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/broadcast-example/" class="">Broadcasting 
Example</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/schedule-example/" class="">Schedule 
Example</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/batch-example/" class="">Batch Example</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/filter-by-sql92-example/" class="">Filter 
Example</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/faq/" class="">FAQ</a></li>
 +          
 +        </ul>
 +        
 +      </li>
 +    
 +      <li>
 +        
 +          <span class="nav__sub-title">Deployment & Operations</span>
 +        
 +
 +        
 +        <ul>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/rmq-arc/" class="">Architecture</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/rmq-deployment/" class="">Deployment</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/cli-admin-tool/" class="active">CLI Admin 
Tool</a></li>
 +          
 +        </ul>
 +        
 +      </li>
 +    
 +      <li>
 +        
 +          <span class="nav__sub-title">Contributor Guide</span>
 +        
 +
 +        
 +        <ul>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/code-guidelines/" class="">Code 
Guidelines</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/pull-request/" class="">Manage Pull 
Request</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/release-manual" class="">Release 
Manual</a></li>
 +          
 +        </ul>
 +        
 +      </li>
 +    
 +      <li>
 +        
 +          <span class="nav__sub-title">Best Practice</span>
 +        
 +
 +        
 +        <ul>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/core-concept/" class="">Core Concept</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/best-practice-broker/" class="">Broker</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/best-practice-producer/" 
class="">Producer</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/best-practice-consumer/" 
class="">Consumer</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/best-practice-namesvr/" 
class="">NameServer</a></li>
 +          
 +        </ul>
 +        
 +      </li>
 +    
 +      <li>
 +        
 +          <span class="nav__sub-title">Release Notes</span>
 +        
 +
 +        
 +        <ul>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/dowloading/releases/" class="">Download</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/release_notes/release-notes-4.0.0-incubating/" 
class="">4.0.0-incubating</a></li>
 +          
 +        </ul>
 +        
 +      </li>
 +    
 +      <li>
 +        
 +          
 +          
 +
 +          <a href="/docs/roadmap/"><span 
class="nav__sub-title">RoadMap</span></a>
 +        
 +
 +        
 +      </li>
 +    
 +  </ul>
 +</nav>
 +    
 +  
 +  </div>
 +
 +
 +  <article class="page" itemscope itemtype="http://schema.org/CreativeWork";>
 +    <meta itemprop="headline" content="CLI Admin Tool">
 +    <meta itemprop="description" content="RocketMQ provides a CLI admin tool 
belt to query, manage and diagnose various issues.">
 +    <meta itemprop="datePublished" content="June 08, 2017">
 +    <meta itemprop="dateModified" content="December 16, 2016">
 +
 +    <div class="page__inner-wrap">
 +      
 +        <header>
 +          <h1 class="page__title" itemprop="headline">CLI Admin Tool
 +</h1>
 +          
 +        </header>
 +      
 +
 +      <section class="page__content" itemprop="text">
 +        <p>RocketMQ provides a CLI admin tool belt to query, manage and 
diagnose various issues.</p>
 +
 +<aside class="sidebar__right">
 +<nav class="toc">
 +    <header><h4 class="nav__title"><i class="fa fa-file-text"></i> On This 
Page</h4></header>
 +<ul class="toc__menu" id="markdown-toc">
 +  <li><a href="#prerequisite" 
id="markdown-toc-prerequisite">Prerequisite</a></li>
 +  <li><a href="#how-to-get-it" id="markdown-toc-how-to-get-it">How To Get 
it</a></li>
 +  <li><a href="#how-to-use" id="markdown-toc-how-to-use">How to use</a></li>
 +  <li><a href="#command-manual" id="markdown-toc-command-manual">Command 
Manual</a></li>
 +</ul>
 +
 +  </nav>
 +</aside>
 +
 +<h1 id="prerequisite">Prerequisite</h1>
 +
 +<p>Make sure you have walked through <a href="/docs/quick-start/">Quick 
Start</a> and <a href="/docs/core-concept/">Core Concept</a> sections.</p>
 +
 +<h1 id="how-to-get-it">How To Get it</h1>
 +
 +<p>The admin tool is shipped along with RocketMQ. Whether you download a 
pre-built binary version or build from source by yourself, you have the tool 
with the package.</p>
 +
 +<p>If you want to look at the source code, please refer to <a 
href="https://github.com/apache/incubator-rocketmq/tree/master/tools";>rocketmq-tools
 module</a></p>
 +
 +<h1 id="how-to-use">How to use</h1>
 +
 +<p>The Admin Tool is very user friendly. Here, for demonstration purpose, 
*nix environment is assumed.</p>
 +
 +<p>Change directory to ${PACKAGE}/bin, command <code 
class="highlighter-rouge">bash mqadmin</code>, you should see the following 
help menu.</p>
 +
 +<div class="highlighter-rouge"><pre class="highlight"><code>The most commonly 
used mqadmin commands are:
 +   updateTopic          Update or create topic
 +   deleteTopic          Delete topic from broker and NameServer.
 +   updateSubGroup       Update or create subscription group
 +   deleteSubGroup       Delete subscription group from broker.
 +   updateBrokerConfig   Update broker's config
 +   updateTopicPerm      Update topic perm
 +   topicRoute           Examine topic route info
 +   topicStatus          Examine topic Status info
 +   topicClusterList     Get cluster info for topic
 +   brokerStatus         Fetch broker runtime status data
 +   queryMsgById         Query Message by Id
 +   queryMsgByKey        Query Message by Key
 +   queryMsgByUniqueKey  Query Message by Unique key
 +   queryMsgByOffset     Query Message by offset
 +   queryMsgByUniqueKey  Query Message by Unique key
 +   printMsg             Print Message Detail
 +   sendMsgStatus        Send msg to broker.
 +   brokerConsumeStats   Fetch broker consume stats data
 +   producerConnection   Query producer's socket connection and client version
 +   consumerConnection   Query consumer's socket connection, client version 
and subscription
 +   consumerProgress     Query consumers's progress, speed
 +   consumerStatus       Query consumer's internal data structure
 +   cloneGroupOffset     Clone offset from other group.
 +   clusterList          List all of clusters
 +   topicList            Fetch all topic list from name server
 +   updateKvConfig       Create or update KV config.
 +   deleteKvConfig       Delete KV config.
 +   wipeWritePerm        Wipe write perm of broker in all name server
 +   resetOffsetByTime    Reset consumer offset by timestamp(without client 
restart).
 +   updateOrderConf      Create or update or delete order conf
 +   cleanExpiredCQ       Clean expired ConsumeQueue on broker.
 +   cleanUnusedTopic     Clean unused topic on broker.
 +   startMonitoring      Start Monitoring
 +   statsAll             Topic and Consumer tps stats
 +   syncDocs             Synchronize wiki and issue to github.com
 +   allocateMQ           Allocate MQ
 +   checkMsgSendRT       Check message send response time
 +   clusterRT            List All clusters Message Send RT
 +
 +See 'mqadmin help &lt;command&gt;' for more information on a specific command.
 +</code></pre>
 +</div>
 +
 +<p>As you see, the most commonly used commands are listed with a brief 
description. To get detailed manual of each command, <code 
class="highlighter-rouge">bash mqadmin help &lt;command&gt;</code>. For 
example, command <code class="highlighter-rouge">bash mqadmin help 
clusterList</code> will bring out the following help text:</p>
 +
 +<div class="highlighter-rouge"><pre class="highlight"><code>usage: mqadmin 
clusterList [-h] [-i &lt;arg&gt;] [-m] [-n &lt;arg&gt;]
 + -h,--help                Print help
 + -i,--interval &lt;arg&gt;      specify intervals numbers, it is in seconds
 + -m,--moreStats           Print more stats
 + -n,--namesrvAddr &lt;arg&gt;   Name server address list, eg: 
192.168.0.1:9876;192.168.0.2:9876
 +</code></pre>
 +</div>
 +
 +<p>The help text lists possible options and interpretation of each option.</p>
 +
 +<h1 id="command-manual">Command Manual</h1>
 +
 +        
 +      </section>
 +
 +      <footer class="page__meta">
 +        
 +        
 +
 +
 +        
 +          <p class="page__date"><strong><i class="fa fa-fw fa-calendar" 
aria-hidden="true"></i> Updated:</strong> <time datetime="2016-12-16">December 
16, 2016</time></p>
 +        
 +      </footer>
 +
 +      <section class="page__share">
 +  
 +    <h4 class="page__share-title">Share on</h4>
 +  
 +
 +  <a href="https://twitter.com/intent/tweet?via=ApacheRocketMQ&text=CLI Admin 
Tool /docs/cli-admin-tool/" class="btn btn--twitter" title="Share on 
Twitter"><i class="fa fa-fw fa-twitter" aria-hidden="true"></i><span> 
Twitter</span></a>
 +
 +  <a 
href="https://www.facebook.com/sharer/sharer.php?u=/docs/cli-admin-tool/"; 
class="btn btn--facebook" title="Share on Facebook"><i class="fa fa-fw 
fa-facebook" aria-hidden="true"></i><span> Facebook</span></a>
 +
 +  <a href="https://plus.google.com/share?url=/docs/cli-admin-tool/"; 
class="btn btn--google-plus" title="Share on Google Plus"><i class="fa fa-fw 
fa-google-plus" aria-hidden="true"></i><span> Google+</span></a>
 +
 +  <a 
href="https://www.linkedin.com/shareArticle?mini=true&url=/docs/cli-admin-tool/";
 class="btn btn--linkedin" title="Share on LinkedIn"><i class="fa fa-fw 
fa-linkedin" aria-hidden="true"></i><span> LinkedIn</span></a>
 +</section>
 +
 +
 +      
 +  <nav class="pagination">
 +    
 +      <a href="/docs/core-concept/" class="pagination--pager" title="Core 
Concept
 +">Previous</a>
 +    
 +    
 +      <a href="/docs/cluster-deployment/" class="pagination--pager" 
title="Cluster Configuration and Deployment
 +">Next</a>
 +    
 +  </nav>
 +
 +    </div>
 +
 +    
 +      <div class="page__comments">
 +  
 +  
 +    <h4 class="page__comments-title">Leave a Comment</h4>
 +    <section id="disqus_thread"></section>
 +  
 +</div>
 +    
 +  </article>
 +
 +  
 +  
 +</div>
 +
 +    <div class="page__footer">
 +      <footer>
 +        <!-- start custom footer snippets -->
 +
 +<!-- end custom footer snippets -->
 +        <style type="text/css">
 +  div.columns   { float: left; margin-left: 10px;}
 +  div.clear     { clear: both; } 
 +</style>
 +<div>
 +  <div class="columns">
 +    <a href="https://www.apache.org/";><img 
src="/assets/images/feather-small.gif" alt="Apache Software Foundation" 
style="height: 88px !important" /></a>
 +  </div>
 +  <div class="columns" style="width: 80%">
 +    <div class="page__footer-follow">
 +      <ul class="social-icons">
 +        
 +          <li><strong>Follow:</strong></li>
 +        
 +        
 +          <li><a href="https://twitter.com/ApacheRocketMQ";><i class="fa fa-fw 
fa-twitter-square" aria-hidden="true"></i> Twitter</a></li>
 +        
 +        
 +        
 +          <li><a href="http://github.com/apache/incubator-rocketmq";><i 
class="fa fa-fw fa-github" aria-hidden="true"></i> GitHub</a></li>
 +        
 +        
 +        <li><a href="/feed.xml"><i class="fa fa-fw fa-rss-square" 
aria-hidden="true"></i> Feed</a></li>
 +      </ul>
 +    </div>
 +
 +    <div class="page__footer-copyright">Copyright &copy; 2017 <a 
href="http://www.apache.org/";>The Apache Software Foundation</a>. All Rights 
Reserved.</div>
 +  </div>
 +</div>
 +<div class="clear"></div>
 +      </footer>
 +    </div>
 +
 +    <script src="/assets/js/main.min.js"></script>
 +
 +
 +
 +
 +  <script>
 +  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
 +  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new 
Date();a=s.createElement(o),
 +  
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
 +  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
 +
 +  ga('create', 'UA-89603173-1', 'auto');
 +  ga('send', 'pageview');
 +</script>
 +
 +<script>
 +var _hmt = _hmt || [];
 +(function() {
 +  var hm = document.createElement("script");
 +  hm.src = "https://hm.baidu.com/hm.js?36428f2b841d08e7405724cbf7f860d2";;
 +  var s = document.getElementsByTagName("script")[0]; 
 +  s.parentNode.insertBefore(hm, s);
 +})();
 +</script>
 +
 +
 +
 +
 +  
 +  <script type="text/javascript">
 +      /* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * 
* */
 +      var disqus_shortname = 'rocketmq';
 +
 +      /* * * DON'T EDIT BELOW THIS LINE * * */
 +      (function() {
 +              var dsq = document.createElement('script'); dsq.type = 
'text/javascript'; dsq.async = true;
 +              dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
 +              (document.getElementsByTagName('head')[0] || 
document.getElementsByTagName('body')[0]).appendChild(dsq);
 +      })();
 +
 +      /* * * DON'T EDIT BELOW THIS LINE * * */
 +      (function () {
 +              var s = document.createElement('script'); s.async = true;
 +              s.type = 'text/javascript';
 +              s.src = '//' + disqus_shortname + '.disqus.com/count.js';
 +              (document.getElementsByTagName('HEAD')[0] || 
document.getElementsByTagName('BODY')[0]).appendChild(s);
 +      }());
 +  </script>
 +  <noscript>Please enable JavaScript to view the <a 
href="http://disqus.com/?ref_noscript";>comments powered by 
Disqus.</a></noscript>
 +
 +
 +
 +
 +
 +
 +  </body>
 +</html>

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/af2718af/content/docs/cluster-deployment/index.html
----------------------------------------------------------------------
diff --cc content/docs/cluster-deployment/index.html
index 6d1b90a,0000000..cb8f8f0
mode 100644,000000..100644
--- a/content/docs/cluster-deployment/index.html
+++ b/content/docs/cluster-deployment/index.html
@@@ -1,686 -1,0 +1,686 @@@
 +<!doctype html>
 +<html lang="en" class="no-js">
 +  <head>
 +    <meta charset="utf-8">
 +
 +<!-- begin SEO -->
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +<title>Cluster Configuration and Deployment - Apache RocketMQ</title>
 +
 +
 +
 +
 +<meta name="description" content="Prerequisite">
 +
 +
 +
 +
 +<meta property="og:locale" content="en">
 +<meta property="og:site_name" content="Apache RocketMQ">
 +<meta property="og:title" content="Cluster Configuration and Deployment">
 +
 +
 +
 +
 +  <meta property="og:description" content="Prerequisite">
 +
 +
 +
 +  <meta name="twitter:site" content="@ApacheRocketMQ">
 +  <meta name="twitter:title" content="Cluster Configuration and Deployment">
 +  <meta name="twitter:description" content="Prerequisite">
 +  <meta name="twitter:url" content="">
 +
 +  
 +    <meta name="twitter:card" content="summary">
 +    
 +  
 +
 +  
 +
 +
 +
 +  
 +
 +  
 +
 +
 +
 +
 +
 +  <meta property="og:type" content="article">
-   <meta property="article:published_time" content="2017-06-08T17:34:10+08:00">
++  <meta property="article:published_time" content="2017-06-08T18:09:33+08:00">
 +
 +
 +
 +
 +
 +
 +
 +
 +  <script type="application/ld+json">
 +    {
 +      "@context" : "http://schema.org";,
 +      "@type" : "Person",
 +      "name" : "Apache RocketMQ",
 +      "url" : null,
 +      "sameAs" : null
 +    }
 +  </script>
 +
 +
 +
 +  <meta name="google-site-verification" 
content="aand0XZkSGsziuC-UPD4ZJniFD0m0JhGx6820y2mAQY" />
 +
 +
 +  <meta name="baidu-site-verification" content="wD06EbDRkQ" />
 +
 +
 +
 +
 +<!-- end SEO -->
 +
 +
 +<link href="/feed.xml" type="application/atom+xml" rel="alternate" 
title="Apache RocketMQ Feed">
 +
 +<!-- http://t.co/dKP3o1e -->
 +<meta name="HandheldFriendly" content="True">
 +<meta name="MobileOptimized" content="320">
 +<meta name="viewport" content="width=device-width, initial-scale=1.0">
 +
 +<script>
 +  document.documentElement.className = 
document.documentElement.className.replace(/\bno-js\b/g, '') + ' js ';
 +</script>
 +
 +<!-- For all browsers -->
 +<link rel="stylesheet" href="/assets/css/main.css">
 +
 +<meta http-equiv="cleartype" content="on">
 +    <!-- start custom head snippets -->
 +
 +<!-- insert favicons. use http://realfavicongenerator.net/ -->
 +
 +<!-- end custom head snippets -->
 +  </head>
 +
 +  <body class="layout--single">
 +
 +    <!--[if lt IE 9]>
 +<div class="notice--danger align-center" style="margin: 0;">You are using an 
<strong>outdated</strong> browser. Please <a 
href="http://browsehappy.com/";>upgrade your browser</a> to improve your 
experience.</div>
 +<![endif]-->
 +    <div class="masthead">
 +  <div class="masthead__inner-wrap">
 +    <div class="masthead__menu">
 +      <nav id="site-nav" class="greedy-nav">
 +        <button><div class="navicon"></div></button>
 +        <ul class="visible-links">
 +          <li class="masthead__menu-item masthead__menu-item--lg"><a 
href="/">Apache RocketMQ</a></li>
 +          
 +            
 +            <li class="masthead__menu-item"><a 
href="/docs/quick-start/">Documentation</a></li>
 +          
 +            
 +            <li class="masthead__menu-item"><a 
href="/year-archive/">Blog</a></li>
 +          
 +            
 +            <li class="masthead__menu-item"><a 
href="/community/">Community</a></li>
 +          
 +            
 +            <li class="masthead__menu-item"><a 
href="/customer/">Customer</a></li>
 +          
 +            
 +            <li class="masthead__menu-item"><a 
href="/about/team/">About</a></li>
 +          
 +        </ul>
 +        <ul class="hidden-links hidden"></ul>
 +      </nav>
 +    </div>
 +  </div>
 +</div>
 +
 +    
 +
 +
 +
 +<div id="main" role="main">
 +  
 +  <div class="sidebar sticky">
 +  
 +  
 +    
 +      
 +      
 +      
 +    
 +    
 +      
 +
 +<nav class="nav__list">
 +  
 +  <input id="ac-toc" name="accordion-toc" type="checkbox" />
 +  <label for="ac-toc">Toggle Menu</label>
 +  <ul class="nav__items">
 +    
 +      <li>
 +        
 +          <span class="nav__sub-title">User Guide</span>
 +        
 +
 +        
 +        <ul>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/motivation/" class="">Why RocketMQ</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/quick-start/" class="">Quick Start</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/simple-example/" class="">Simple 
Example</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/order-example/" class="">Order Example</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/broadcast-example/" class="">Broadcasting 
Example</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/schedule-example/" class="">Schedule 
Example</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/batch-example/" class="">Batch Example</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/filter-by-sql92-example/" class="">Filter 
Example</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/faq/" class="">FAQ</a></li>
 +          
 +        </ul>
 +        
 +      </li>
 +    
 +      <li>
 +        
 +          <span class="nav__sub-title">Deployment & Operations</span>
 +        
 +
 +        
 +        <ul>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/rmq-arc/" class="">Architecture</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/rmq-deployment/" class="">Deployment</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/cli-admin-tool/" class="">CLI Admin 
Tool</a></li>
 +          
 +        </ul>
 +        
 +      </li>
 +    
 +      <li>
 +        
 +          <span class="nav__sub-title">Contributor Guide</span>
 +        
 +
 +        
 +        <ul>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/code-guidelines/" class="">Code 
Guidelines</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/pull-request/" class="">Manage Pull 
Request</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/release-manual" class="">Release 
Manual</a></li>
 +          
 +        </ul>
 +        
 +      </li>
 +    
 +      <li>
 +        
 +          <span class="nav__sub-title">Best Practice</span>
 +        
 +
 +        
 +        <ul>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/core-concept/" class="">Core Concept</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/best-practice-broker/" class="">Broker</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/best-practice-producer/" 
class="">Producer</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/best-practice-consumer/" 
class="">Consumer</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/best-practice-namesvr/" 
class="">NameServer</a></li>
 +          
 +        </ul>
 +        
 +      </li>
 +    
 +      <li>
 +        
 +          <span class="nav__sub-title">Release Notes</span>
 +        
 +
 +        
 +        <ul>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/dowloading/releases/" class="">Download</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/release_notes/release-notes-4.0.0-incubating/" 
class="">4.0.0-incubating</a></li>
 +          
 +        </ul>
 +        
 +      </li>
 +    
 +      <li>
 +        
 +          
 +          
 +
 +          <a href="/docs/roadmap/"><span 
class="nav__sub-title">RoadMap</span></a>
 +        
 +
 +        
 +      </li>
 +    
 +  </ul>
 +</nav>
 +    
 +  
 +  </div>
 +
 +
 +  <article class="page" itemscope itemtype="http://schema.org/CreativeWork";>
 +    <meta itemprop="headline" content="Cluster Configuration and Deployment">
 +    <meta itemprop="description" content="Prerequisite">
 +    <meta itemprop="datePublished" content="June 08, 2017">
 +    <meta itemprop="dateModified" content="December 16, 2016">
 +
 +    <div class="page__inner-wrap">
 +      
 +        <header>
 +          <h1 class="page__title" itemprop="headline">Cluster Configuration 
and Deployment
 +</h1>
 +          
 +        </header>
 +      
 +
 +      <section class="page__content" itemprop="text">
 +        <h1 id="prerequisite">Prerequisite</h1>
 +
 +<p>Before starting this section, make sure you have read Quick Start section, 
in which core concepts and components of RocketMQ are introduced.</p>
 +
 +<aside class="sidebar__right">
 +<nav class="toc">
 +    <header><h4 class="nav__title"><i class="fa fa-file-text"></i> On This 
Page</h4></header>
 +<ul class="toc__menu" id="markdown-toc">
 +  <li><a href="#prerequisite" 
id="markdown-toc-prerequisite">Prerequisite</a></li>
 +  <li><a href="#introduction" 
id="markdown-toc-introduction">Introduction</a></li>
 +  <li><a href="#name-server" id="markdown-toc-name-server">Name 
Server</a></li>
 +  <li><a href="#broker" id="markdown-toc-broker">Broker</a></li>
 +  <li><a href="#disk-flush-type-sync_flush--async_flush" 
id="markdown-toc-disk-flush-type-sync_flush--async_flush">Disk Flush Type: 
SYNC_FLUSH / ASYNC_FLUSH</a></li>
 +  <li><a href="#replication-sync--async-broker" 
id="markdown-toc-replication-sync--async-broker">Replication: Sync / Async 
Broker</a></li>
 +  <li><a href="#configuration" 
id="markdown-toc-configuration">Configuration</a></li>
 +  <li><a href="#deployment-example" 
id="markdown-toc-deployment-example">Deployment Example</a></li>
 +</ul>
 +
 +  </nav>
 +</aside>
 +
 +<h1 id="introduction">Introduction</h1>
 +
 +<p>This section is to introduce deployment solution that may be considered 
production ready.  Generally speaking, we are deploying a resilient RocketMQ 
cluster having no single point of failure.</p>
 +
 +<h1 id="name-server">Name Server</h1>
 +
 +<p>To ensure the cluster can still operate normally when name server instance 
crashes, two or more name server instances are recommended.  As long as there 
is one name server instance alive, the whole cluster remains serving.</p>
 +
 +<p>Name server follows share-nothing design paradigm. Brokers send heartbeat 
data to all name servers. Producers and consumers may query meta data from any 
one of name servers available while sending / consuming messages.</p>
 +
 +<h1 id="broker">Broker</h1>
 +
 +<p>Brokers can be divided into two categories according to their roles: 
master and slave. Master brokers can read and write while slave brokers can 
only read messages replicated from master. Master brokers have brokerID=0; 
brokerID of slave is non-zero.</p>
 +
 +<p>Brokers may also be grouped by the brokerName property. Slave brokers find 
their master through brokerName. One master broker along with zero, one or 
multiple slave brokers is called a broker set.</p>
 +
 +<p>In serious scenarios, we should have at least two broker sets. Each topic, 
as you guess,  resides in two or more broker sets.</p>
 +
 +<h1 id="disk-flush-type-sync_flush--async_flush">Disk Flush Type: SYNC_FLUSH 
/ ASYNC_FLUSH</h1>
 +
 +<p>Each broker can be configured to be sync or async in terms of IO flushing 
strategy. To put it simply, if your business tolerates none message loss at 
extreme scenarios like OS crash or power loss, SYNC_FLUSH mode is recommended. 
Broker of SYNC_FLUSH mode would flush each message it receives onto disk before 
acknowledging producer. Obviously, throughout of this mode is highly dependent 
on IOPS of your hard disk.</p>
 +
 +<p>Broker of ASYNC_FLUSH mode, on the other hand, takes advantage of 
group-committing: only flushes dirty page caches to disk periodically or when 
count of dirty page caches reaches certain amount. Hence, the latter yields 
better performance.</p>
 +
 +<h1 id="replication-sync--async-broker">Replication: Sync / Async Broker</h1>
 +
 +<p>Similar to many replication system, sync brokers await until commit log is 
replicated to a slave before acknowledging. Async brokers, instead, return 
immediately after messages are processed on master.</p>
 +
 +<h1 id="configuration">Configuration</h1>
 +
 +<p>There are three pre-built configurations shipped with the distribution of 
RocketMQ under conf folder for your reference:</p>
 +
 +<ol>
 +  <li>2m-2s-sync</li>
 +  <li>2m-2s-async</li>
 +  <li>2m-noslave</li>
 +</ol>
 +
 +<p>Note: all configurations uses ASYNC_FLUSH.</p>
 +
 +<h1 id="deployment-example">Deployment Example</h1>
 +
 +<p>For example, We want to have a cluster with 2 name servers, 2 broker sets 
with general purpose:
 +for this example, we choose <code class="highlighter-rouge">2m-2s-sync</code>
 +Assuming binary RocketMQ is at <code 
class="highlighter-rouge">/home/rocketmq/dist</code></p>
 +
 +<ol>
 +  <li>
 +    <p>Start up two name servers as is shown in Quick Start guide. Assume 
their IPs are 192.168.0.2 and 192.168.0.3.</p>
 +  </li>
 +  <li>
 +    <p>Start brokers</p>
 +
 +    <p><code class="highlighter-rouge">cd /home/rocketmq/dist/bin</code></p>
 +
 +    <p><code class="highlighter-rouge">bash mqbroker -c 
../conf/2m-2s-sync/broker-a.properties -n 
192.168.0.2:9876,192.168.0.3:9876</code></p>
 +
 +    <p><code class="highlighter-rouge">bash mqbroker -c 
../conf/2m-2s-sync/broker-a-s.properties -n 
192.168.0.2:9876,192.168.0.3:9876</code></p>
 +
 +    <p><code class="highlighter-rouge">bash mqbroker -c 
../conf/2m-2s-sync/broker-b.properties -n 
192.168.0.2:9876,192.168.0.3:9876</code></p>
 +
 +    <p><code class="highlighter-rouge">bash mqbroker -c 
../conf/2m-2s-sync/broker-b-s.properties -n 
192.168.0.2:9876,192.168.0.3:9876</code></p>
 +  </li>
 +  <li>
 +    <p>Verify</p>
 +
 +    <p>Execute the following command to verify</p>
 +
 +    <p><code class="highlighter-rouge">bash mqadmin clusterList</code></p>
 +  </li>
 +</ol>
 +
 +        
 +      </section>
 +
 +      <footer class="page__meta">
 +        
 +        
 +
 +
 +        
 +          <p class="page__date"><strong><i class="fa fa-fw fa-calendar" 
aria-hidden="true"></i> Updated:</strong> <time datetime="2016-12-16">December 
16, 2016</time></p>
 +        
 +      </footer>
 +
 +      <section class="page__share">
 +  
 +    <h4 class="page__share-title">Share on</h4>
 +  
 +
 +  <a href="https://twitter.com/intent/tweet?via=ApacheRocketMQ&text=Cluster 
Configuration and Deployment /docs/cluster-deployment/" class="btn 
btn--twitter" title="Share on Twitter"><i class="fa fa-fw fa-twitter" 
aria-hidden="true"></i><span> Twitter</span></a>
 +
 +  <a 
href="https://www.facebook.com/sharer/sharer.php?u=/docs/cluster-deployment/"; 
class="btn btn--facebook" title="Share on Facebook"><i class="fa fa-fw 
fa-facebook" aria-hidden="true"></i><span> Facebook</span></a>
 +
 +  <a href="https://plus.google.com/share?url=/docs/cluster-deployment/"; 
class="btn btn--google-plus" title="Share on Google Plus"><i class="fa fa-fw 
fa-google-plus" aria-hidden="true"></i><span> Google+</span></a>
 +
 +  <a 
href="https://www.linkedin.com/shareArticle?mini=true&url=/docs/cluster-deployment/";
 class="btn btn--linkedin" title="Share on LinkedIn"><i class="fa fa-fw 
fa-linkedin" aria-hidden="true"></i><span> LinkedIn</span></a>
 +</section>
 +
 +
 +      
 +  <nav class="pagination">
 +    
 +      <a href="/docs/cli-admin-tool/" class="pagination--pager" title="CLI 
Admin Tool
 +">Previous</a>
 +    
 +    
 +      <a href="/docs/pull-request/" class="pagination--pager" title="How to 
manage Pull Request
 +">Next</a>
 +    
 +  </nav>
 +
 +    </div>
 +
 +    
 +      <div class="page__comments">
 +  
 +  
 +    <h4 class="page__comments-title">Leave a Comment</h4>
 +    <section id="disqus_thread"></section>
 +  
 +</div>
 +    
 +  </article>
 +
 +  
 +  
 +</div>
 +
 +    <div class="page__footer">
 +      <footer>
 +        <!-- start custom footer snippets -->
 +
 +<!-- end custom footer snippets -->
 +        <style type="text/css">
 +  div.columns   { float: left; margin-left: 10px;}
 +  div.clear     { clear: both; } 
 +</style>
 +<div>
 +  <div class="columns">
 +    <a href="https://www.apache.org/";><img 
src="/assets/images/feather-small.gif" alt="Apache Software Foundation" 
style="height: 88px !important" /></a>
 +  </div>
 +  <div class="columns" style="width: 80%">
 +    <div class="page__footer-follow">
 +      <ul class="social-icons">
 +        
 +          <li><strong>Follow:</strong></li>
 +        
 +        
 +          <li><a href="https://twitter.com/ApacheRocketMQ";><i class="fa fa-fw 
fa-twitter-square" aria-hidden="true"></i> Twitter</a></li>
 +        
 +        
 +        
 +          <li><a href="http://github.com/apache/incubator-rocketmq";><i 
class="fa fa-fw fa-github" aria-hidden="true"></i> GitHub</a></li>
 +        
 +        
 +        <li><a href="/feed.xml"><i class="fa fa-fw fa-rss-square" 
aria-hidden="true"></i> Feed</a></li>
 +      </ul>
 +    </div>
 +
 +    <div class="page__footer-copyright">Copyright &copy; 2017 <a 
href="http://www.apache.org/";>The Apache Software Foundation</a>. All Rights 
Reserved.</div>
 +  </div>
 +</div>
 +<div class="clear"></div>
 +      </footer>
 +    </div>
 +
 +    <script src="/assets/js/main.min.js"></script>
 +
 +
 +
 +
 +  <script>
 +  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
 +  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new 
Date();a=s.createElement(o),
 +  
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
 +  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
 +
 +  ga('create', 'UA-89603173-1', 'auto');
 +  ga('send', 'pageview');
 +</script>
 +
 +<script>
 +var _hmt = _hmt || [];
 +(function() {
 +  var hm = document.createElement("script");
 +  hm.src = "https://hm.baidu.com/hm.js?36428f2b841d08e7405724cbf7f860d2";;
 +  var s = document.getElementsByTagName("script")[0]; 
 +  s.parentNode.insertBefore(hm, s);
 +})();
 +</script>
 +
 +
 +
 +
 +  
 +  <script type="text/javascript">
 +      /* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * 
* */
 +      var disqus_shortname = 'rocketmq';
 +
 +      /* * * DON'T EDIT BELOW THIS LINE * * */
 +      (function() {
 +              var dsq = document.createElement('script'); dsq.type = 
'text/javascript'; dsq.async = true;
 +              dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
 +              (document.getElementsByTagName('head')[0] || 
document.getElementsByTagName('body')[0]).appendChild(dsq);
 +      })();
 +
 +      /* * * DON'T EDIT BELOW THIS LINE * * */
 +      (function () {
 +              var s = document.createElement('script'); s.async = true;
 +              s.type = 'text/javascript';
 +              s.src = '//' + disqus_shortname + '.disqus.com/count.js';
 +              (document.getElementsByTagName('HEAD')[0] || 
document.getElementsByTagName('BODY')[0]).appendChild(s);
 +      }());
 +  </script>
 +  <noscript>Please enable JavaScript to view the <a 
href="http://disqus.com/?ref_noscript";>comments powered by 
Disqus.</a></noscript>
 +
 +
 +
 +
 +
 +
 +  </body>
 +</html>

Reply via email to