http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/93c5936c/content/docs/documentation/index.html
----------------------------------------------------------------------
diff --cc content/docs/documentation/index.html
index 9c9720b,0000000..f22a3dd
mode 100644,000000..100644
--- a/content/docs/documentation/index.html
+++ b/content/docs/documentation/index.html
@@@ -1,650 -1,0 +1,650 @@@
 +<!doctype html>
 +<html lang="en" class="no-js">
 +  <head>
 +    <meta charset="utf-8">
 +
 +<!-- begin SEO -->
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +<title>Documentation - Apache RocketMQ</title>
 +
 +
 +
 +
 +<meta name="description" content="Apache RocketMQ Documentation">
 +
 +
 +
 +
 +<meta property="og:locale" content="en">
 +<meta property="og:site_name" content="Apache RocketMQ">
 +<meta property="og:title" content="Documentation">
 +
 +
 +
 +
 +  <meta property="og:description" content="Apache RocketMQ Documentation">
 +
 +
 +
 +  <meta name="twitter:site" content="@ApacheRocketMQ">
 +  <meta name="twitter:title" content="Documentation">
 +  <meta name="twitter:description" content="Apache RocketMQ Documentation">
 +  <meta name="twitter:url" content="">
 +
 +  
 +    <meta name="twitter:card" content="summary">
 +    
 +  
 +
 +  
 +
 +
 +
 +  
 +
 +  
 +
 +
 +
 +
 +
 +  <meta property="og:type" content="article">
-   <meta property="article:published_time" content="2017-04-25T01:02:11+08:00">
++  <meta property="article:published_time" content="2017-04-25T01:06:24+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/quick-start/" class="">Quick Start</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/motivation/" class="">Why RocketMQ</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>
 +          
 +        </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="">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>
 +    
 +      <li>
 +        
 +          
 +          
 +
 +          <a href="/docs/faq/"><span class="nav__sub-title">FAQ</span></a>
 +        
 +
 +        
 +      </li>
 +    
 +  </ul>
 +</nav>
 +    
 +  
 +  </div>
 +
 +
 +  <article class="page" itemscope itemtype="http://schema.org/CreativeWork";>
 +    <meta itemprop="headline" content="Documentation">
 +    <meta itemprop="description" content="Apache RocketMQ Documentation">
 +    <meta itemprop="datePublished" content="April 25, 2017">
 +    <meta itemprop="dateModified" content="March 02, 2017">
 +
 +    <div class="page__inner-wrap">
 +      
 +        <header>
 +          <h1 class="page__title" itemprop="headline">Documentation
 +</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="#introduction" id="markdown-toc-introduction">Introduction</a> 
   <ul>
 +      <li><a href="#api-documentation" 
id="markdown-toc-api-documentation">API Documentation</a></li>
 +      <li><a href="#documentation-content" 
id="markdown-toc-documentation-content">Documentation Content</a></li>
 +    </ul>
 +  </li>
 +</ul>
 +
 +  </nav>
 +</aside>
 +
 +<h1 id="introduction">Introduction</h1>
 +
 +<p>Quality documentation is critically important to develop and maintain a 
project. The better the documentation is, the 
 +easier it will be for other participants to understand and respond 
properly.</p>
 +
 +<h2 id="api-documentation">API Documentation</h2>
 +
 +<p>The API is documented through javadoc comments.</p>
 +
 +<p>All classes, interfaces, methods and field variables should be documented. 
Public methods, in particular, should be 
 +commented fully – method purpose, return value, parameters and 
exceptions.</p>
 +
 +<p>Below is an example:</p>
 +
 +<div class="highlighter-rouge"><pre class="highlight"><code>/**
 + * Send message in synchronous mode. This method returns only when the 
sending procedure totally completes.
 + * &lt;/p&gt;
 + *
 + * &lt;strong&gt;Warn:&lt;/strong&gt; this method has internal 
retry-mechanism, that is, internal implementation will retry
 + * {@link #retryTimesWhenSendFailed} times before claiming failure. As a 
result, multiple messages may potentially
 + * delivered to broker(s). It's up to the application developers to resolve 
potential duplication issue.
 + *
 + * @param msg Message to send.
 + * @return {@link SendResult} instance to inform senders details of the 
deliverable, say Message ID of the message,
 + * {@link SendStatus} indicating broker storage/replication status, message 
queue sent to, etc.
 + * @throws MQClientException if there is any client error.
 + * @throws RemotingException if there is any network-tier error.
 + * @throws MQBrokerException if there is any error with broker.
 + * @throws InterruptedException if the sending thread is interrupted.
 + */
 +@Override
 +public SendResult send(Message msg) throws MQClientException, 
RemotingException, MQBrokerException, InterruptedException {
 +    return this.defaultMQProducerImpl.send(msg);
 +}
 +</code></pre>
 +</div>
 +
 +<h2 id="documentation-content">Documentation Content</h2>
 +
 +<p>Every class and interface should have summary documentation, explaining 
its general function and purpose.  Additionally,
 +thread safety information should be included. If you are working on a class 
which represents a core concept, adding sample
 +usage is always a good practice.</p>
 +
 +<p>When writing API documentation, please keep a professional tune: write in 
active voice, be as descriptive as possible. 
 +Keep in mind that the audience may be a developer who would use RocketMQ for 
the first time, or a contributor who just gets
 + involved with the codebase. Either of them is not as familiar with Apache 
RocketMQ as you are.</p>
 +
 +
 +        
 +      </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-03-02">March 02, 
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=Documentation 
/docs/documentation/" 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/documentation/"; 
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/documentation/"; 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/documentation/"; 
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/code-guidelines/" class="pagination--pager" 
title="Coding Guidelines
 +">Previous</a>
 +    
 +    
 +      <a href="/docs/faq/" class="pagination--pager" title="Frequently Asked 
Questions
 +">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/93c5936c/content/docs/faq/index.html
----------------------------------------------------------------------
diff --cc content/docs/faq/index.html
index e748b12,0000000..23553ac
mode 100644,000000..100644
--- a/content/docs/faq/index.html
+++ b/content/docs/faq/index.html
@@@ -1,690 -1,0 +1,690 @@@
 +<!doctype html>
 +<html lang="en" class="no-js">
 +  <head>
 +    <meta charset="utf-8">
 +
 +<!-- begin SEO -->
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +<title>Frequently Asked Questions - Apache RocketMQ</title>
 +
 +
 +
 +
 +<meta name="description" content="The following questions are frequently 
asked with regard to the RocketMQ project in general. If you have further 
questions, make sure to consult the documentation or ask the 
community.General1. Why create rocketmq project instead of selecting other 
products?In some cases, slower consumers can slow down the producers. We tried 
our best efforts to handle this problems through throttling, circuit breaker or 
degradation, but it cannot scale out gracefully. So we begin to focus on the 
popular messaging solution Kafka at that time. Unfortunately, Kafka can not 
meet our requirements such as low latency and high reliability. So we decided 
to innovate a new messaging middleware to handle a broad set of use cases, 
ranging from traditional publish/subscribe scenario to demandingly high volume 
realtime transaction system that tolerates no message loss.">
 +
 +
 +
 +
 +<meta property="og:locale" content="en">
 +<meta property="og:site_name" content="Apache RocketMQ">
 +<meta property="og:title" content="Frequently Asked Questions">
 +
 +
 +
 +
 +  <meta property="og:description" content="The following questions are 
frequently asked with regard to the RocketMQ project in general. If you have 
further questions, make sure to consult the documentation or ask the 
community.General1. Why create rocketmq project instead of selecting other 
products?In some cases, slower consumers can slow down the producers. We tried 
our best efforts to handle this problems through throttling, circuit breaker or 
degradation, but it cannot scale out gracefully. So we begin to focus on the 
popular messaging solution Kafka at that time. Unfortunately, Kafka can not 
meet our requirements such as low latency and high reliability. So we decided 
to innovate a new messaging middleware to handle a broad set of use cases, 
ranging from traditional publish/subscribe scenario to demandingly high volume 
realtime transaction system that tolerates no message loss.">
 +
 +
 +
 +  <meta name="twitter:site" content="@ApacheRocketMQ">
 +  <meta name="twitter:title" content="Frequently Asked Questions">
 +  <meta name="twitter:description" content="The following questions are 
frequently asked with regard to the RocketMQ project in general. If you have 
further questions, make sure to consult the documentation or ask the 
community.General1. Why create rocketmq project instead of selecting other 
products?In some cases, slower consumers can slow down the producers. We tried 
our best efforts to handle this problems through throttling, circuit breaker or 
degradation, but it cannot scale out gracefully. So we begin to focus on the 
popular messaging solution Kafka at that time. Unfortunately, Kafka can not 
meet our requirements such as low latency and high reliability. So we decided 
to innovate a new messaging middleware to handle a broad set of use cases, 
ranging from traditional publish/subscribe scenario to demandingly high volume 
realtime transaction system that tolerates no message loss.">
 +  <meta name="twitter:url" content="">
 +
 +  
 +    <meta name="twitter:card" content="summary">
 +    
 +  
 +
 +  
 +
 +
 +
 +  
 +
 +  
 +
 +
 +
 +
 +
 +  <meta property="og:type" content="article">
-   <meta property="article:published_time" content="2017-04-25T01:02:11+08:00">
++  <meta property="article:published_time" content="2017-04-25T01:06:24+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/quick-start/" class="">Quick Start</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/motivation/" class="">Why RocketMQ</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>
 +          
 +        </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="">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>
 +    
 +      <li>
 +        
 +          
 +          
 +
 +          <a href="/docs/faq/"><span class="nav__sub-title">FAQ</span></a>
 +        
 +
 +        
 +      </li>
 +    
 +  </ul>
 +</nav>
 +    
 +  
 +  </div>
 +
 +
 +  <article class="page" itemscope itemtype="http://schema.org/CreativeWork";>
 +    <meta itemprop="headline" content="Frequently Asked Questions">
 +    <meta itemprop="description" content="The following questions are 
frequently asked with regard to the RocketMQ project in general. If you have 
further questions, make sure to consult the documentation or ask the 
community.General1. Why create rocketmq project instead of selecting other 
products?In some cases, slower consumers can slow down the producers. We tried 
our best efforts to handle this problems through throttling, circuit breaker or 
degradation, but it cannot scale out gracefully. So we begin to focus on the 
popular messaging solution Kafka at that time. Unfortunately, Kafka can not 
meet our requirements such as low latency and high reliability. So we decided 
to innovate a new messaging middleware to handle a broad set of use cases, 
ranging from traditional publish/subscribe scenario to demandingly high volume 
realtime transaction system that tolerates no message loss.">
 +    <meta itemprop="datePublished" content="April 25, 2017">
 +    <meta itemprop="dateModified" content="December 28, 2016">
 +
 +    <div class="page__inner-wrap">
 +      
 +        <header>
 +          <h1 class="page__title" itemprop="headline">Frequently Asked 
Questions
 +</h1>
 +          
 +        </header>
 +      
 +
 +      <section class="page__content" itemprop="text">
 +        <p>The following questions are frequently asked with regard to the 
RocketMQ project in general. If you have further questions, make sure to 
consult the documentation or ask the community.</p>
 +
 +<h2 id="general">General</h2>
 +<h3 id="1-why-create-rocketmq-project-instead-of-selecting-other-products">1. 
Why create rocketmq project instead of selecting other products?</h3>
 +<p>In some cases, slower consumers can slow down the producers. We tried our 
best efforts to handle this problems through throttling, circuit breaker or 
degradation, but it cannot scale out gracefully. So we begin to focus on the 
popular messaging solution Kafka at that time. Unfortunately, Kafka can not 
meet our requirements such as low latency and high reliability. So we decided 
to innovate a new messaging middleware to handle a broad set of use cases, 
ranging from traditional publish/subscribe scenario to demandingly high volume 
realtime transaction system that tolerates no message loss.</p>
 +
 +<h3 
id="2-do-i-have-to-install-other-softewares-such-as-zookeeper-to-use-rocketmq">2.
 Do I have to install other softewares, such as zookeeper, to use RocketMQ?</h3>
 +<p>No. RocketMQ can run without any other softeware, you can run broker 
server and name server indepentently. Aslo, the topic can be created by using 
command, such as sh mqadmin updatetopic etc. After creating successfully, you 
enjoy yourself with RocketMQ.</p>
 +
 +<h2 id="usage">Usage</h2>
 +<h3 
id="1-where-does-the-newly-created-consumer-id-start-consuming-messages">1. 
Where does the newly created Consumer ID start consuming messages?</h3>
 +
 +<ol>
 +  <li>If the topic sends a message within three days, then the consumer start 
consume message from the first message saved in the server.</li>
 +  <li>If the topic sends a message in three days ago, the consumer start 
consume message from the latest message in the server, in other words, starting 
to consume the message queue tail.</li>
 +  <li>If such consumer is the second reboot, then start to consumer message 
from the last consumption location.</li>
 +</ol>
 +
 +<h3 id="2-how-to-reconsume-message-when-consumption-fails">2. How to 
reconsume message when consumption fails?</h3>
 +<div class="highlighter-rouge"><pre class="highlight"><code>1.Cluster 
consumption pattern
 +The consumer business logic code return Action.ReconsumerLater, or NULL, or 
throws an exception, the message will go up to 16 times retry procedure, if 
still fail to retry 16 times, then such message descarded.
 +
 +2.Broadcast consumption pattern
 +The broadcaset consumption still ensures that a message is consumered at 
least once, but it is consumed fail without retry.
 +</code></pre>
 +</div>
 +
 +<h3 id="3-how-to-deal-with-consume-message-failed">3. How to deal with 
consume message failed?</h3>
 +
 +<ol>
 +  <li>Use topic query by the time range, you can query to a period of time 
Topic received all the messages.</li>
 +  <li>Using Topic and Message Id to accurately query the message.</li>
 +  <li>Using Topic and Message Key accurately query a class of messages with 
the same Message Key.</li>
 +</ol>
 +
 +<h3 id="4-delivery-exactly-once">4. Delivery exactly once?</h3>
 +
 +<p>In most cases, the message is not repeated. As a distributed message 
middleware, in the network jitter, application processing timeout and other 
abnormal circumstances, can not guarantee that the message is not repeated, but 
can ensure that the message is not lost.</p>
 +
 +<h3 id="5-how-to-add-a-new-broker">5. How to add a new broker?</h3>
 +
 +<ol>
 +  <li>Start up a new broker and make it register to the same list of name 
servers.</li>
 +  <li>On default, only internally system topics and consumer groups are 
created automatically. If you would like to have your business topic and 
consumer groups on the new node, remember to replicate them from the existing 
broker. You may turn to admin tool command to achieve this.</li>
 +</ol>
 +
 +<h2 id="configuration-related">Configuration related</h2>
 +<h3 id="1-how-long-the-message-is-saved-on-the-server">1. How long the 
message is saved on the server?</h3>
 +
 +<p>Stored messages are saved for up to 3 days, and messages that are not 
consumed for more than 3 days will be deleted.</p>
 +
 +<h3 id="2-what-is-the-length-limit-for-message-body">2. What is the length 
limit for message Body?</h3>
 +<p>Generally 256KB, but can be modified by configuration.</p>
 +
 +<h3 id="3-how-to-set-the-number-of-consumer-threads">3. How to set the number 
of consumer threads?</h3>
 +<p>When you start Consumer, set a ConsumeThreadNums property, example as 
follow.</p>
 +
 +<div class="highlighter-rouge"><pre 
class="highlight"><code>properties.put(PropertyKeyConst.ConsumeThreadNums,20);
 +</code></pre>
 +</div>
 +
 +<h2 id="errors">Errors</h2>
 +<h3 
id="1-start-producer-or-consumer-failed-and-producer-group-or-consumer-repeat">1.
 Start producer or consumer failed and producer group or consumer repeat?</h3>
 +<p>Reason:In the same JVM inside using the same Producer ID/Consumer ID 
launched multiple instances of Producer/Consumer, it may cause the client to 
start failure.</p>
 +
 +<p>Solution: Ensure that a JVM corresponds to a Producer ID/Consumer ID 
starts only with a Producer/Consumer instance.</p>
 +
 +<h3 id="2-in-broadcast-mode-consumer-start-loading-json-file-failed">2. In 
broadcast mode, consumer start loading json file failed?</h3>
 +<p>Reason: Fastjson version is too low to cause the broadcast consumer to 
load a local offsets.json file failed, which causing the consumer boot 
failure.</p>
 +
 +<p>Solution: Fastjson version will be upgraded to rocketmq client dependent 
version, to ensure that the local offsets.json can be normal loading. By 
default offsets.json file is in /home/{user}/.rocketmq_offsets.</p>
 +
 +<h3 id="3-what-if-a-broker-crashes">3. What if a broker crashes?</h3>
 +
 +<div class="highlighter-rouge"><pre class="highlight"><code>1. Master crashes
 +   Messages can no longer be sent to this broker set, but if you have another 
broker set available, messages can be still sent there given the topic is 
present.Messages can still be consumed from slaves.
 +2. One slaves crashes
 +   As long as there is another working slave, no impact on writing 
messages;No impact on consuming messages except when the consumer group is set 
to consume from this slave preferably. By default, it is from master.
 +3. All slaves crash
 +   No impact on writing messages on master, but if master is a SYNC_MASTER, 
the producer will get a result of SLAVE_NOT_AVAILABLE indicating that the 
message is not replicated to any slaves.No impact on consuming messages except 
that if the consumer group is set to consume from slave preferably. By default, 
it is from master.
 +</code></pre>
 +</div>
 +
 +<h3 id="4-producer-complains-no-topic-route-info-how-to-diagnose">4. Producer 
complains “No Topic Route Info”, how to diagnose?</h3>
 +<p>This happens when you are trying to send message to a topic whose route 
info is not available to the producer.</p>
 +
 +<ol>
 +  <li>Confirm the producer can connect to a name server and capable of 
fetching routing meta info from it.</li>
 +  <li>Confirm that name servers do contain routing meta info of the topic. 
You may query the routing meta info from name server through topicRoute of 
admin tools or web console.</li>
 +  <li>Confirm your brokers are sending heartbeats to the same list of name 
servers your producer is connecting to.</li>
 +  <li>Confirm that the topic’s perm is 6(rw-), or at least 2(-w-).</li>
 +</ol>
 +
 +<p>If you can’t find this topic, create it via admin tools command 
updateTopic or web console on a broker.</p>
 +
 +<h2 id="features">Features</h2>
 +<h3 id="1-what-kind-of-consumption-pattern-does-rocketmq-provide">1. What 
kind of consumption pattern does RocketMQ provide?</h3>
 +<p>In RocketMQ, it providers two types of consumption patterns, such as 
Clustering consumption patterns and broadcasting consumption patterns. See the 
documentation on cluster patterns for details.</p>
 +
 +<h3 id="2-how-many-kinds-of-message-type-are-supported">2. How many kinds of 
message type are supported?</h3>
 +<p>There are several types of messages that are currently supported in 
rocketmq,such as common message, timed message, transaction message, 
sequential message and delay message. User can select the appropriate message 
type according to the needs of the business.</p>
 +
 +        
 +      </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-28">December 
28, 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=Frequently Asked 
Questions /docs/faq/" 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/faq/"; 
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/faq/"; 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/faq/"; 
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/documentation/" class="pagination--pager" 
title="Documentation
 +">Previous</a>
 +    
 +    
 +      <a href="/docs/release-manual" class="pagination--pager" title="Release 
Manual
 +">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/93c5936c/content/docs/motivation/index.html
----------------------------------------------------------------------
diff --cc content/docs/motivation/index.html
index 43a32bf,0000000..a4d761a
mode 100644,000000..100644
--- a/content/docs/motivation/index.html
+++ b/content/docs/motivation/index.html
@@@ -1,679 -1,0 +1,679 @@@
 +<!doctype html>
 +<html lang="en" class="no-js">
 +  <head>
 +    <meta charset="utf-8">
 +
 +<!-- begin SEO -->
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +<title>Motivation - Apache RocketMQ</title>
 +
 +
 +
 +
 +<meta name="description" content="In the early stages, we constructed our 
distributed messaging middleware on the basis of ActiveMQ 5.x(less than 5.3). 
Our international business uses it for async communication, search, social 
network activity stream, data pipeline, even in our trade order process. As our 
trade business throughput rises more and more inconceivably, pressure 
originating from our messaging cluster also become more and more obvious.">
 +
 +
 +
 +
 +<meta property="og:locale" content="en">
 +<meta property="og:site_name" content="Apache RocketMQ">
 +<meta property="og:title" content="Motivation">
 +
 +
 +
 +
 +  <meta property="og:description" content="In the early stages, we 
constructed our distributed messaging middleware on the basis of ActiveMQ 
5.x(less than 5.3). Our international business uses it for async communication, 
search, social network activity stream, data pipeline, even in our trade order 
process. As our trade business throughput rises more and more inconceivably, 
pressure originating from our messaging cluster also become more and more 
obvious.">
 +
 +
 +
 +  <meta name="twitter:site" content="@ApacheRocketMQ">
 +  <meta name="twitter:title" content="Motivation">
 +  <meta name="twitter:description" content="In the early stages, we 
constructed our distributed messaging middleware on the basis of ActiveMQ 
5.x(less than 5.3). Our international business uses it for async communication, 
search, social network activity stream, data pipeline, even in our trade order 
process. As our trade business throughput rises more and more inconceivably, 
pressure originating from our messaging cluster also become more and more 
obvious.">
 +  <meta name="twitter:url" content="">
 +
 +  
 +    <meta name="twitter:card" content="summary">
 +    
 +  
 +
 +  
 +
 +
 +
 +  
 +
 +  
 +
 +
 +
 +
 +
 +  <meta property="og:type" content="article">
-   <meta property="article:published_time" content="2017-04-25T01:02:11+08:00">
++  <meta property="article:published_time" content="2017-04-25T01:06:24+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/quick-start/" class="">Quick Start</a></li>
 +          
 +            
 +            
 +
 +            
 +            
 +
 +            <li><a href="/docs/motivation/" class="active">Why 
RocketMQ</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>
 +          
 +        </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="">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>
 +    
 +      <li>
 +        
 +          
 +          
 +
 +          <a href="/docs/faq/"><span class="nav__sub-title">FAQ</span></a>
 +        
 +
 +        
 +      </li>
 +    
 +  </ul>
 +</nav>
 +    
 +  
 +  </div>
 +
 +
 +  <article class="page" itemscope itemtype="http://schema.org/CreativeWork";>
 +    <meta itemprop="headline" content="Motivation">
 +    <meta itemprop="description" content="In the early stages, we constructed 
our distributed messaging middleware on the basis of ActiveMQ 5.x(less than 
5.3). Our international business uses it for async communication, search, 
social network activity stream, data pipeline, even in our trade order process. 
As our trade business throughput rises more and more inconceivably, pressure 
originating from our messaging cluster also become more and more obvious.">
 +    <meta itemprop="datePublished" content="April 25, 2017">
 +    <meta itemprop="dateModified" content="December 17, 2016">
 +
 +    <div class="page__inner-wrap">
 +      
 +        <header>
 +          <h1 class="page__title" itemprop="headline">Motivation
 +</h1>
 +          
 +        </header>
 +      
 +
 +      <section class="page__content" itemprop="text">
 +        <p>In the early stages, we constructed our distributed messaging 
middleware on the basis of ActiveMQ 5.x(less than 5.3). Our international 
business uses it for async communication, search, social network activity 
stream, data pipeline, even in our trade order process. As our trade business 
throughput rises more and more inconceivably, pressure originating from our 
messaging cluster also become more and more obvious.</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="#why-rocketmq-" id="markdown-toc-why-rocketmq-">Why RocketMQ 
?</a></li>
 +  <li><a href="#rocketmq-vs-activemq-vs-kafka" 
id="markdown-toc-rocketmq-vs-activemq-vs-kafka">RocketMQ vs. ActiveMQ vs. 
Kafka</a></li>
 +</ul>
 +
 +  </nav>
 +</aside>
 +
 +<h1 id="why-rocketmq-">Why RocketMQ ?</h1>
 +
 +<p>Based on our observations and research, with more and more queues and 
virtual topics in use, ActiveMQ IO module becomes a bottleneck. In some cases, 
slower consumers can slow down the producers. We tried our best efforts to 
handle this problems through throttling, circuit breaker or degradation, but it 
cannot scale out gracefully. So we begin to focus on the popular messaging 
solution Kafka at that time. Unfortunately, Kafka can not meet our requirements 
such as low latency and high reliability, see <a 
href="/rocketmq/how-to-support-more-queues-in-rocketmq/">here</a> for 
details.</p>
 +
 +<p>In this context, we decided to innovate a new messaging middleware to 
handle a broad set of use cases, ranging from traditional publish/subscribe 
scenario to demandingly high volume realtime transaction system that tolerates 
no message loss. We also created a cornerstone product based on RocketMQ, a 
Platform as a Service (PaaS) product named the
 +<a href="https://intl.aliyun.com/";>Alibaba Cloud Platform</a>. Today, more 
than 100 companies are using the RocketMQ open source version in their business 
solutions. We believe RocketMQ can benefit more people, so we would like to 
share it around the world.</p>
 +
 +<p>The following are some different design between RocketMQ, ActiveMQ and 
Kafka(They are the apache’s most popular messaging solutions according to 
<a href="https://github.com/akullpp/awesome-java";>awesome-java</a>):</p>
 +
 +<h1 id="rocketmq-vs-activemq-vs-kafka">RocketMQ vs. ActiveMQ vs. Kafka</h1>
 +
 +<table>
 +  <thead>
 +    <tr>
 +      <th>Messaging Product</th>
 +      <th>Client SDK</th>
 +      <th>Protocol and Specification</th>
 +      <th>Order Message</th>
 +      <th>Message Filter</th>
 +      <th>Server Triggered Redelivery</th>
 +      <th>Persistent Message</th>
 +      <th>Retroactive Consumers</th>
 +      <th>Message Priority</th>
 +      <th>High Availability and Failover</th>
 +      <th>Message Track</th>
 +      <th>Configuration</th>
 +      <th>Management and Operation Tools</th>
 +    </tr>
 +  </thead>
 +  <tbody>
 +    <tr>
 +      <td>ActiveMQ</td>
 +      <td>Java, .NET, C++ etc.</td>
 +      <td>Push model, support OpenWire, STOMP, AMQP, MQTT, JMS</td>
 +      <td>Exclusive Consumer or Exclusive Queues can ensure ordering</td>
 +      <td>Supported</td>
 +      <td>Not Supported</td>
 +      <td>Supports very fast persistence using JDBC along with a high 
performance journal,such as levelDB, kahaDB</td>
 +      <td>Supported</td>
 +      <td>Supported</td>
 +      <td>Supported, depending on storage,if using kahadb it requires a 
ZooKeeper server</td>
 +      <td>Not Supported</td>
 +      <td>The default configuration is low level, user need to optimize the 
configuration parameters</td>
 +      <td>Supported</td>
 +    </tr>
 +    <tr>
 +      <td>Kafka</td>
 +      <td>Java, Scala etc.</td>
 +      <td>Pull model, support TCP</td>
 +      <td>Ensure ordering of messages within a partition</td>
 +      <td>Supported, you can use Kafka Streams to filter messages</td>
 +      <td>Not Supported</td>
 +      <td>High performance file storage</td>
 +      <td>Supported offset indicate</td>
 +      <td>Not Supported</td>
 +      <td>Supported, requires a ZooKeeper server</td>
 +      <td>Not Supported</td>
 +      <td>Kafka uses key-value pairs format for configuration. These values 
can be supplied either from a file or programmatically.</td>
 +      <td>Supported, use terminal command to expose core metrics</td>
 +    </tr>
 +    <tr>
 +      <td>RocketMQ</td>
 +      <td>Java, .NET, C++</td>
 +      <td>Pull model, support TCP, JMS</td>
 +      <td>Ensure strict ordering of messages, have no hot spot problem,and 
can scale out gracefully</td>
 +      <td>Supported, you can even upload yourself custom-built filter code 
snippets</td>
 +      <td>Supported</td>
 +      <td>High performance and low latency file storage</td>
 +      <td>Supported timestamp and offset 2 indicates</td>
 +      <td>Not Supported</td>
 +      <td>Supported, Master-Slave model, without another kit</td>
 +      <td>Supported</td>
 +      <td>Work out of box,user only need to pay attention to a few 
configurations</td>
 +      <td>Supported, rich web and terminal command to expose core metrics</td>
 +    </tr>
 +  </tbody>
 +</table>
 +
 +        
 +      </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-17">December 
17, 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=Motivation 
/docs/motivation/" 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/motivation/"; 
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/motivation/"; 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/motivation/"; 
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/quick-start/" class="pagination--pager" title="Quick 
Start
 +">Previous</a>
 +    
 +    
 +      <a href="/docs/core-concept/" class="pagination--pager" title="Core 
Concept
 +">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