You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rocketmq.apache.org by li...@apache.org on 2017/06/08 05:10:06 UTC

[5/8] incubator-rocketmq-site git commit: Polish web site pages

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/5b69a90f/content/docs/faq/index.html
----------------------------------------------------------------------
diff --git a/content/docs/faq/index.html b/content/docs/faq/index.html
index 14864cb..9f87441 100644
--- a/content/docs/faq/index.html
+++ b/content/docs/faq/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-06-08T11:24:44+08:00">
+  <meta property="article:published_time" content="2017-06-08T13:09:18+08:00">
 
 
 
@@ -241,6 +241,14 @@
 
             <li><a href="/docs/filter-by-sql92-example/" class="">Filter Example</a></li>
           
+            
+            
+
+            
+            
+
+            <li><a href="/docs/faq/" class="active">FAQ</a></li>
+          
         </ul>
         
       </li>
@@ -303,7 +311,7 @@
             
             
 
-            <li><a href="/docs/pull-request/" class="">Pull Request</a></li>
+            <li><a href="/docs/pull-request/" class="">Manage Pull Request</a></li>
           
             
             
@@ -408,17 +416,6 @@
         
       </li>
     
-      <li>
-        
-          
-          
-
-          <a href="/docs/faq/"><span class="nav__sub-title">FAQ</span></a>
-        
-
-        
-      </li>
-    
   </ul>
 </nav>
     
@@ -456,93 +453,101 @@
 
 <ol>
   <li>If the topic sends a message within three days, then the consumer start consuming messages from the first message saved in the server.</li>
-  <li>If the topic sends a message three days ago, the consumer start consuming messages from the latest message in the server, in other words, starting from the tail of message queue.</li>
-  <li>If such consumer is the second reboot, then start to consumer message from the last consumption location.</li>
+  <li>If the topic sends a message three days ago, the consumer starts to consume messages from the latest message in the server, in other words, starting from the tail of message queue.</li>
+  <li>If such consumer is rebooted, then it starts to consume messages 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>
+<ol>
+  <li>
+    <p>Cluster consumption pattern
+The consumer business logic code returns Action.ReconsumerLater, NULL, or throws an exception, if a message failed to be consumed, it will retry for up to 16 times, after that, the message would be descarded.</p>
+  </li>
+  <li>
+    <p>Broadcast consumption pattern
+The broadcaset consumption still ensures that a message is consumered at least once, but no resend option is provided.</p>
+  </li>
+</ol>
 
-<h3 id="3-how-to-deal-with-consume-message-failed">3. How to deal with consume message failed?</h3>
+<h3 id="3-how-to-query-the-failed-message-if-there-is-a-consumption-failure">3. How to query the failed message if there is a consumption failure?</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 query by time, you can query messages within a period of time.</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>
+<h3 id="4-are-messages-delivered-exactly-once">4. Are messages delivered 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>
+<p>RocketMQ ensures that all messages are delivered at least once. In most cases, the messages are not repeated.</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>
+  <li>Start up a new broker and register it to the same list of name servers.</li>
+  <li>By default, only internal system topics and consumer groups are created automatically. If you would like to have your business topic and consumer groups on the new node, please replicate them from the existing broker. Admin tool and command lines are provided to handle 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>The following answers are all default values and can be modified by configuration.</p>
+<h3 id="1-how-long-are-the-messages-saved-on-the-server">1. How long are the messages 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>
+<p>Stored messages are will be 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="2-what-is-the-size-limit-for-message-body">2. What is the size limit for message Body?</h3>
+<p>Generally 256KB.</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>
+<p>When you start Consumer, set a ConsumeThreadNums property, example is as follows:</p>
 
-<div class="highlighter-rouge"><pre class="highlight"><code>properties.put(PropertyKeyConst.ConsumeThreadNums,20);
+<div class="highlighter-rouge"><pre class="highlight"><code>consumer.setConsumeThreadMin(20);
+consumer.setConsumeThreadMax(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>
+<h3 id="1-if-you-start-a-producer-or-consumer-failed-and-the-error-message-is-producer-group-or-consumer-repeat">1. If you start a producer or consumer failed and the error message is producer group or consumer repeat?</h3>
+<p>Reason:Using the same Producer /Consumer Group to launch multiple instances of Producer/Consumer in the same JVM may cause the client fail to start.</p>
 
-<p>Solution: Ensure that a JVM corresponds to a Producer ID/Consumer ID starts only with a Producer/Consumer instance.</p>
+<p>Solution: Make sure that a JVM corresponding to one Producer /Consumer Group starts only with one 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>
+<h3 id="2-if-consumer-failed-to-start-loading-json-file-in-broadcast-mode">2. If consumer failed to start loading json file in broadcast mode?</h3>
+<p>Reason: Fastjson version is too low to allow the broadcast consumer to load local offsets.json, causing the consumer boot failure. Damaged fastjson file can also cause the same problem.</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>
+<p>Solution: Fastjson version has to be upgraded to rocketmq client dependent version to ensure that the local offsets.json can be loaded. By default offsets.json file is in /home/{user}/.rocketmq_offsets. Or check the integrity of fastjson.</p>
 
-<h3 id="3-what-if-a-broker-crashes">3. What if a broker crashes?</h3>
+<h3 id="3-what-is-the-impact-of-a-broker-crash">3. What is the impact of a broker crash?</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>
+<ol>
+  <li>Master crashes</li>
+</ol>
 
-<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>
+<p>Messages can no longer be sent to this broker set, but if you have another broker set available, messages can still be sent given the topic is present. Messages can still be consumed from slaves.</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>
+  <li>Some slave crash</li>
 </ol>
 
-<p>If you can’t find this topic, create it via admin tools command updateTopic or web console on a broker.</p>
+<p>As long as there is another working slave, there will be no impact on sending messages. There will also be no impact on consuming messages except when the consumer group is set to consume from this slave preferably. By default, comsumer group consumes from master.</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>
+<ol>
+  <li>All slaves crash</li>
+</ol>
+
+<p>There will be no impact on sending messages to master, but, if the master is SYNC_MASTER, producer will get a SLAVE_NOT_AVAILABLE indicating that the message is not sent to any slaves. There will also be no impact on consuming messages except that if the consumer group is set to consume from slave preferably. By default, comsumer group consumes from master.</p>
+
+<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 messages to a topic whose routing info is not available to the producer.</p>
+
+<ol>
+  <li>Make sure that the producer can connect to a name server and is capable of fetching routing meta info from it.</li>
+  <li>Make sure that name servers do contain routing meta info of the topic. You may query the routing meta info from name server through topicRoute using admin tools or web console.</li>
+  <li>Make sure that your brokers are sending heartbeats to the same list of name servers your producer is connecting to.</li>
+  <li>Make sure that the topic’s permssion is 6(rw-), or at least 2(-w-).</li>
+</ol>
 
-<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>
+<p>If you can’t find this topic, create it on a broker via admin tools command updateTopic or web console.</p>
 
         
       </section>

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/5b69a90f/content/docs/filter-by-sql92-example/index.html
----------------------------------------------------------------------
diff --git a/content/docs/filter-by-sql92-example/index.html b/content/docs/filter-by-sql92-example/index.html
index dd751de..63f011e 100644
--- a/content/docs/filter-by-sql92-example/index.html
+++ b/content/docs/filter-by-sql92-example/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-06-08T11:24:44+08:00">
+  <meta property="article:published_time" content="2017-06-08T13:09:18+08:00">
 
 
 
@@ -241,6 +241,14 @@
 
             <li><a href="/docs/filter-by-sql92-example/" class="active">Filter Example</a></li>
           
+            
+            
+
+            
+            
+
+            <li><a href="/docs/faq/" class="">FAQ</a></li>
+          
         </ul>
         
       </li>
@@ -303,7 +311,7 @@
             
             
 
-            <li><a href="/docs/pull-request/" class="">Pull Request</a></li>
+            <li><a href="/docs/pull-request/" class="">Manage Pull Request</a></li>
           
             
             
@@ -408,17 +416,6 @@
         
       </li>
     
-      <li>
-        
-          
-          
-
-          <a href="/docs/faq/"><span class="nav__sub-title">FAQ</span></a>
-        
-
-        
-      </li>
-    
   </ul>
 </nav>
     

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/5b69a90f/content/docs/motivation/index.html
----------------------------------------------------------------------
diff --git a/content/docs/motivation/index.html b/content/docs/motivation/index.html
index a062d7d..9e2d584 100644
--- a/content/docs/motivation/index.html
+++ b/content/docs/motivation/index.html
@@ -18,7 +18,7 @@
 
 
 
-<meta name="description" content="At early stages, we constructed our distributed messaging middleware based on ActiveMQ 5.x(prior to 5.3). Our multinational business uses it for async communication, search, social network activity stream, data pipeline, even in its trade processes. As our trade business throughput rises, pressure originating from our messaging cluster also become urgent.">
+<meta name="description" content="At early stages, we constructed our distributed messaging middleware based on ActiveMQ 5.x(prior to 5.3). Our multinational business uses it for asynchronous communication, search, social network activity stream, data pipeline,even in its trade processes. As our trade business throughput rises, pressure originating from our messaging clusteralso becomes urgent.">
 
 
 
@@ -30,13 +30,13 @@
 
 
 
-  <meta property="og:description" content="At early stages, we constructed our distributed messaging middleware based on ActiveMQ 5.x(prior to 5.3). Our multinational business uses it for async communication, search, social network activity stream, data pipeline, even in its trade processes. As our trade business throughput rises, pressure originating from our messaging cluster also become urgent.">
+  <meta property="og:description" content="At early stages, we constructed our distributed messaging middleware based on ActiveMQ 5.x(prior to 5.3). Our multinational business uses it for asynchronous communication, search, social network activity stream, data pipeline,even in its trade processes. As our trade business throughput rises, pressure originating from our messaging clusteralso becomes urgent.">
 
 
 
   <meta name="twitter:site" content="@ApacheRocketMQ">
   <meta name="twitter:title" content="Motivation">
-  <meta name="twitter:description" content="At early stages, we constructed our distributed messaging middleware based on ActiveMQ 5.x(prior to 5.3). Our multinational business uses it for async communication, search, social network activity stream, data pipeline, even in its trade processes. As our trade business throughput rises, pressure originating from our messaging cluster also become urgent.">
+  <meta name="twitter:description" content="At early stages, we constructed our distributed messaging middleware based on ActiveMQ 5.x(prior to 5.3). Our multinational business uses it for asynchronous communication, search, social network activity stream, data pipeline,even in its trade processes. As our trade business throughput rises, pressure originating from our messaging clusteralso becomes urgent.">
   <meta name="twitter:url" content="">
 
   
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-06-08T11:24:44+08:00">
+  <meta property="article:published_time" content="2017-06-08T13:09:18+08:00">
 
 
 
@@ -241,6 +241,14 @@
 
             <li><a href="/docs/filter-by-sql92-example/" class="">Filter Example</a></li>
           
+            
+            
+
+            
+            
+
+            <li><a href="/docs/faq/" class="">FAQ</a></li>
+          
         </ul>
         
       </li>
@@ -303,7 +311,7 @@
             
             
 
-            <li><a href="/docs/pull-request/" class="">Pull Request</a></li>
+            <li><a href="/docs/pull-request/" class="">Manage Pull Request</a></li>
           
             
             
@@ -408,17 +416,6 @@
         
       </li>
     
-      <li>
-        
-          
-          
-
-          <a href="/docs/faq/"><span class="nav__sub-title">FAQ</span></a>
-        
-
-        
-      </li>
-    
   </ul>
 </nav>
     
@@ -428,7 +425,7 @@
 
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
     <meta itemprop="headline" content="Motivation">
-    <meta itemprop="description" content="At early stages, we constructed our distributed messaging middleware based on ActiveMQ 5.x(prior to 5.3). Our multinational business uses it for async communication, search, social network activity stream, data pipeline, even in its trade processes. As our trade business throughput rises, pressure originating from our messaging cluster also become urgent.">
+    <meta itemprop="description" content="At early stages, we constructed our distributed messaging middleware based on ActiveMQ 5.x(prior to 5.3). Our multinational business uses it for asynchronous communication, search, social network activity stream, data pipeline,even in its trade processes. As our trade business throughput rises, pressure originating from our messaging clusteralso becomes urgent.">
     <meta itemprop="datePublished" content="June 08, 2017">
     <meta itemprop="dateModified" content="December 16, 2016">
 
@@ -442,7 +439,10 @@
       
 
       <section class="page__content" itemprop="text">
-        <p>At early stages, we constructed our distributed messaging middleware based on ActiveMQ 5.x(prior to 5.3). Our multinational business uses it for async communication, search, social network activity stream, data pipeline, even in its trade processes. As our trade business throughput rises, pressure originating from our messaging cluster also become urgent.</p>
+        <p>At early stages, we constructed our distributed messaging middleware based on ActiveMQ 5.x(prior to 5.3). Our 
+multinational business uses it for asynchronous communication, search, social network activity stream, data pipeline,
+even in its trade processes. As our trade business throughput rises, pressure originating from our messaging cluster
+also becomes urgent.</p>
 
 <aside class="sidebar__right">
 <nav class="toc">
@@ -457,10 +457,16 @@
 
 <h1 id="why-rocketmq-">Why RocketMQ ?</h1>
 
-<p>Based on our research, with increased queues and virtual topics in use, ActiveMQ IO module reaches a bottleneck. We tried our best to solve this problem through throttling, circuit breaker or degradation, but it didn’t work well. So we begin to focus on the popular messaging solution Kafka at that time. Unfortunately, Kafka can not meet our requirements especially low latency and high reliability, see <a href="/rocketmq/how-to-support-more-queues-in-rocketmq/">here</a> for details.</p>
+<p>Based on our research, with increased queues and virtual topics in use, ActiveMQ IO module reaches a bottleneck. We 
+tried our best to solve this problem through throttling, circuit breaker or degradation, but it did not work well. So 
+we begin to focus on the popular messaging solution Kafka at that time. Unfortunately, Kafka can not meet our 
+requirements especially in terms of 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 invent a new messaging engine to handle a broader set of use cases, ranging from traditional pub/sub scenarios to high volume realtime zero-loss tolerance transaction system. We believe this solution can be beneficial, so we would like to open source it to the community. Today, more than 100 companies are using the open source version of RocketMQ in their business. We also published a commercial distribution based on RocketMQ, a Platform as a Service (PaaS) product called the
-<a href="https://intl.aliyun.com/">Alibaba Cloud Platform</a>.</p>
+<p>In this context, we decided to invent a new messaging engine to handle a broader set of use cases, ranging from 
+traditional pub/sub scenarios to high volume real-time zero-loss tolerance transaction system. We believe this solution
+can be beneficial, so we would like to open source it to the community. Today, more than 100 companies are using the 
+open source version of RocketMQ in their business. We also published a commercial distribution based on RocketMQ, a PaaS
+ product called the <a href="https://intl.aliyun.com/">Alibaba Cloud Platform</a>.</p>
 
 <p>The following table demonstrates the comparison between RocketMQ, ActiveMQ and Kafka (Apache’s most popular messaging solutions according to <a href="https://github.com/akullpp/awesome-java">awesome-java</a>):</p>
 

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/5b69a90f/content/docs/order-example/index.html
----------------------------------------------------------------------
diff --git a/content/docs/order-example/index.html b/content/docs/order-example/index.html
index 6191f5b..f9d8e54 100644
--- a/content/docs/order-example/index.html
+++ b/content/docs/order-example/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-06-08T11:24:44+08:00">
+  <meta property="article:published_time" content="2017-06-08T13:09:18+08:00">
 
 
 
@@ -241,6 +241,14 @@
 
             <li><a href="/docs/filter-by-sql92-example/" class="">Filter Example</a></li>
           
+            
+            
+
+            
+            
+
+            <li><a href="/docs/faq/" class="">FAQ</a></li>
+          
         </ul>
         
       </li>
@@ -303,7 +311,7 @@
             
             
 
-            <li><a href="/docs/pull-request/" class="">Pull Request</a></li>
+            <li><a href="/docs/pull-request/" class="">Manage Pull Request</a></li>
           
             
             
@@ -408,17 +416,6 @@
         
       </li>
     
-      <li>
-        
-          
-          
-
-          <a href="/docs/faq/"><span class="nav__sub-title">FAQ</span></a>
-        
-
-        
-      </li>
-    
   </ul>
 </nav>
     

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/5b69a90f/content/docs/pull-request/index.html
----------------------------------------------------------------------
diff --git a/content/docs/pull-request/index.html b/content/docs/pull-request/index.html
index 5f25838..8af1363 100644
--- a/content/docs/pull-request/index.html
+++ b/content/docs/pull-request/index.html
@@ -13,7 +13,7 @@
 
 
 
-<title>Best Practice in Pull Request - Apache RocketMQ</title>
+<title>How to manage Pull Request - Apache RocketMQ</title>
 
 
 
@@ -25,7 +25,7 @@
 
 <meta property="og:locale" content="en">
 <meta property="og:site_name" content="Apache RocketMQ">
-<meta property="og:title" content="Best Practice in Pull Request">
+<meta property="og:title" content="How to manage Pull Request">
 
 
 
@@ -35,7 +35,7 @@
 
 
   <meta name="twitter:site" content="@ApacheRocketMQ">
-  <meta name="twitter:title" content="Best Practice in Pull Request">
+  <meta name="twitter:title" content="How to manage Pull Request">
   <meta name="twitter:description" content="This page guides you through Git setup and contribution process.">
   <meta name="twitter:url" content="">
 
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-06-08T11:24:44+08:00">
+  <meta property="article:published_time" content="2017-06-08T13:09:18+08:00">
 
 
 
@@ -241,6 +241,14 @@
 
             <li><a href="/docs/filter-by-sql92-example/" class="">Filter Example</a></li>
           
+            
+            
+
+            
+            
+
+            <li><a href="/docs/faq/" class="">FAQ</a></li>
+          
         </ul>
         
       </li>
@@ -303,7 +311,7 @@
             
             
 
-            <li><a href="/docs/pull-request/" class="active">Pull Request</a></li>
+            <li><a href="/docs/pull-request/" class="active">Manage Pull Request</a></li>
           
             
             
@@ -408,17 +416,6 @@
         
       </li>
     
-      <li>
-        
-          
-          
-
-          <a href="/docs/faq/"><span class="nav__sub-title">FAQ</span></a>
-        
-
-        
-      </li>
-    
   </ul>
 </nav>
     
@@ -427,7 +424,7 @@
 
 
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
-    <meta itemprop="headline" content="Best Practice in Pull Request">
+    <meta itemprop="headline" content="How to manage Pull Request">
     <meta itemprop="description" content="This page guides you through Git setup and contribution process.">
     <meta itemprop="datePublished" content="June 08, 2017">
     <meta itemprop="dateModified" content="December 24, 2016">
@@ -435,7 +432,7 @@
     <div class="page__inner-wrap">
       
         <header>
-          <h1 class="page__title" itemprop="headline">Best Practice in Pull Request
+          <h1 class="page__title" itemprop="headline">How to manage Pull Request
 </h1>
           
         </header>
@@ -475,19 +472,16 @@
 <p>Cloning this locally will set up <code class="highlighter-rouge">origin</code> to point to your remote fork on github as the default remote.
 Now you can create your pull requests.</p>
 
-<p>You will need to update a local master sometimes (to merge to your development branches sometimes).
+<p>You will need to update a local master sometimes (to merge to your development branches).
 For this, you have to add remote for RocketMQ mirror as follows,</p>
 
 <div class="highlighter-rouge"><pre class="highlight"><code>git remote add upstream https://github.com/apache/incubator-rocketmq.git
 </code></pre>
 </div>
 
-<p>and update your local master via <code class="highlighter-rouge">git fetch</code> followed by <code class="highlighter-rouge">git rebase</code>, for instance, as follows</p>
-
-<div class="highlighter-rouge"><pre class="highlight"><code>git fetch upstream master
-git rebase upstream/master
-</code></pre>
-</div>
+<p>and update your local master via <code class="highlighter-rouge">git fetch</code> followed by <code class="highlighter-rouge">git rebase</code>, for instance:
+    git fetch upstream master
+    git rebase upstream/master</p>
 
 <h1 id="git-setup-for-committers">Git setup for Committers</h1>
 <p>In addition to contributors’ configurations, committers will have to attach the apache git repo:</p>
@@ -519,7 +513,7 @@ apache    https://git-wip-us.apache.org/repos/asf/incubator-rocketmq.git (push)
 </code></pre>
 </div>
 
-<p><em>To guarantee code quality of the master branch, all but minor changes should go through pull requests reviewed by peer committers.</em></p>
+<p><em>To ensure the code quality of the master branch, all but minor changes should go through pull requests reviewed by peer committers.</em></p>
 
 <h1 id="do-some-work-on-the-branch">Do some work on the branch</h1>
 
@@ -528,7 +522,7 @@ git push origin ROCKETMQ-xxxx # notice pushing to **origin** not **apache**
 </code></pre>
 </div>
 
-<p>Once you are ready to commit to the apache remote you can merge and push them directly or better yet create a PR.</p>
+<p>Once you are ready to commit to the apache remote you can merge and push them directly, otherwise always create a PR.</p>
 
 <h1 id="how-to-create-a-pr-committers">How to create a PR (committers)</h1>
 
@@ -541,31 +535,31 @@ git push origin ROCKETMQ-xxxx
 
 <ol>
   <li>
-    <p>Go to your ROCKETMQ-xxxx branch on Github. Since you forked it from Github’s apache/incubator-rocketmq. it will default any PR to go to apache/master.</p>
+    <p>Go to your ROCKETMQ-xxxx branch on Github. Since you forked it from Github’s apache/incubator-rocketmq. By default all PR will go to apache/master.</p>
   </li>
-  <li>Click the green “Compare, review, and create pull request” button.You can edit the to and from for the PR if it isn’t correct. The “base fork” should be apache/incubator-rocketmq unless you are collaborating separately with one of the committers on the list. The “base” will be master. Don’t submit a PR to one of the other branches unless you know what you are doing. The “head fork” will be your forked repo and the “compare” will be your ROCKETMQ-xxxx branch.</li>
+  <li>Click the green “Compare, review, and create pull request” button. You can edit the to and from for the PR if it isn’t correct. The “base fork” should be apache/incubator-rocketmq unless you are collaborating with one of the committers on the list. The “base” will be master. Don’t submit a PR to any other branches unless permitted by branch owner. The “head fork” will be your forked repo and the “compare” will be your ROCKETMQ-xxxx branch.</li>
   <li>Click the “Create pull request” button and name the request “ROCKETMQ-xxxx” all caps. This will connect the comments of the PR to the mailing list and JIRA comments.</li>
-  <li>From now on the PR lives on github’s apache/incubator-rocketmq. You use the commenting UI there.</li>
-  <li>If you are looking for a review or sharing with someone else say so in the comments but don’t worry about automated merging of your PR – you will have to do that later. The PR is tied to your branch so you can respond to comments, make fixes, and commit them from your local repo. They will appear on the PR page and be mirrored to Jira and the mailing list.</li>
-  <li>When you are satisfied and want to push it to Apache’s remote repo proceed with Merging a PR</li>
+  <li>From now on the PR lives on github’s apache/incubator-rocketmq. You can use the commenting UI there.</li>
+  <li>If you are looking for a review or wanting to share with someone else please write a note in the comments and don’t worry about automated merging of your PR – you will have to do that later. The PR is tied to your branch so you can respond to comments, make fixes, and commit them from your local repo. They will appear on the PR page and be mirrored to JIRA and the mailing list.</li>
+  <li>When you are satisfied and want to push it to Apache’s remote repo, you can merge this PR.</li>
 </ol>
 
 <h1 id="how-to-create-a-pr-contributors">How to create a PR (contributors)</h1>
 <p>Before you create a pull request, make sure</p>
 <ol>
   <li>A corresponding <a href="https://issues.apache.org/jira/browse/ROCKETMQ/">JIRA</a> issue is created and has a clear problem description.</li>
-  <li>You follow <a href="/docs/code-guidelines/">Coding Guidelines</a>.</li>
-  <li>You have unit tests for it, whenever applicable.</li>
+  <li>Make sure you follow <a href="/docs/code-guidelines/">Coding Guidelines</a>.</li>
+  <li>You have unit tests for everything you are about to commit.</li>
 </ol>
 
-<p>For information on creating pull requests, see <a href="https://help.github.com/articles/creating-a-pull-request/">GitHub PR docs</a>.</p>
+<p>For information about creating pull requests, please check <a href="https://help.github.com/articles/creating-a-pull-request/">GitHub PR docs</a>.</p>
 
 <p>Pull requests are made to <code class="highlighter-rouge">apache/incubator-rocketmq</code> repository on Github. 
-In the Github UI you should pick the master branch to target the PR as described in the section for committers. <br /> 
-You pull request will be reviewed and commented by committers, and issues can be discussed the contribution in progress. When all reviewers are positive on the pull request, it will be merged.</p>
+In the Github UI you should pick the master branch as target of the PR. <br />
+You pull request will be reviewed and commented by committers, and issues can be discussed. When all reviewers are positive on the pull request, it will be merged.</p>
 
 <h1 id="merging-a-pr-yours-or-contributors">Merging a PR (yours or contributors)</h1>
-<p>Start with reading <a href="https://help.github.com/articles/checking-out-pull-requests-locally/">GitHub PR merging locally</a>. Remember that pull requests are equivalent to a remote github branch with potentially a multitude of commits. In this case it is recommended to squash remote commit history to have one commit per issue, rather than merging in a multitude of contributor’s commits. In order to do that, as well as close the PR at the same time, it is recommended to use squash commits.
+<p>Start with reading <a href="https://help.github.com/articles/checking-out-pull-requests-locally/">GitHub PR merging locally</a>. Remember that pull requests are equivalent to a remote github branch with potentially a multitude of commits. In this case it is recommended to squash remote commit history to have one commit per issue, rather than merging in a multitude of contributor’s commits. In order to do that, as well as to close the PR at the same time, it is recommended to use squash commits.
 Merging pull requests are equivalent to a “pull” of a contributor’s branch:</p>
 
 <div class="highlighter-rouge"><pre class="highlight"><code>git checkout master      # switch to local master branch
@@ -574,9 +568,9 @@ git pull --squash https://github.com/cuser/incubator-rocketmq.git ROCKETMQ-xxxx
 </code></pre>
 </div>
 
-<p><code class="highlighter-rouge">--squash</code> ensures all PR history is squashed into single commit, and allows committer to use his/her own message. Read git help for merge or pull for more information about <code class="highlighter-rouge">--squash</code> option. In this example we assume that the contributor’s Github handle is “cuser” and the PR branch name is “ROCKETMQ-xxxx”. Next, resolve conflicts, if any, or ask a contributor to rebase on top of master, if PR went out of sync.</p>
+<p><code class="highlighter-rouge">--squash</code> ensures all PR history is squashed into single commit, and allows committer to use his/her own message. Please refer to git help for merge or pull for more information about <code class="highlighter-rouge">--squash</code> option. In this example we assume that the contributor’s Github handle is “cuser” and the PR branch name is “ROCKETMQ-xxxx”. Next, resolve all conflicts, or ask a contributor to rebase on top of master, if PR went out of sync.</p>
 
-<p>If you are ready to merge your own (committer’s) PR you probably only need to merge (not pull), since you have a local copy that you’ve been working on. This is the branch that you used to create the PR.</p>
+<p>If you are ready to merge your own (committer’s) PR you only need to merge (not pull), since you have a local copy that you’ve been working on. This is the branch that you used to create the PR.</p>
 
 <div class="highlighter-rouge"><pre class="highlight"><code>git checkout master      # switch to local master branch
 git pull apache master   # fast-forward to current remote HEAD
@@ -584,14 +578,14 @@ git merge --squash ROCKETMQ-xxxx
 </code></pre>
 </div>
 
-<p>Remember to run regular patch checks, build with tests enabled, and change CHANGELOG.
-If everything is fine, you now can commit the squashed request along the lines</p>
+<p>Please run regular patch checks, build with tests enabled, and change CHANGELOG whenever needed.
+If all requirements are met, you can commit the squashed request using:</p>
 
 <div class="highlighter-rouge"><pre class="highlight"><code>git commit --author="contributor_name &lt;contributor_email&gt;" -a -m "ROCKETMQ-XXXX description closes apache/incubator-rocketmq#ZZ"
 </code></pre>
 </div>
 
-<p>ROCKETMQ-XXXX is all caps and where ZZ is the pull request number on apache/incubator-rocketmq repository. Including “closes apache/incubator-rocketmq#ZZ” will close the PR automatically. More information is found here <a href="https://help.github.com/articles/closing-issues-via-commit-messages/">GitHub PR closing docs.</a>.
+<p>ROCKETMQ-XXXX is all capitalized and ZZ is the pull request number on apache/incubator-rocketmq repository. Including “closes apache/incubator-rocketmq#ZZ” will close the PR automatically. More information can be found here <a href="https://help.github.com/articles/closing-issues-via-commit-messages/">GitHub PR closing docs.</a>.
 Next, push to git-wip-us.apache.org:</p>
 
 <div class="highlighter-rouge"><pre class="highlight"><code>git push apache master
@@ -605,7 +599,7 @@ The PR, once pushed, will get mirrored to github. To update your github version
 </code></pre>
 </div>
 
-<p>Note on squashing: Since squash discards remote branch history, repeated PRs from the same remote branch are difficult for merging. The workflow implies that every new PR starts with a new rebased branch. This is more important for contributors to know, rather than for committers, because if new PR is not mergeable, github would warn to begin with. Anyway, watch for dupe PRs (based on same source branches). This is a bad practice.</p>
+<p>Note on squashing: Since squash discards remote branch history, repeated PRs from the same remote branch are difficult to be merged. The workflow implies that every new PR starts with a new rebased branch. This is more important for contributors to know, rather than for committers, because if new PR is not mergeable, github would warn at the start. Please watch for dupe PRs (based on same source branches).</p>
 
 <h1 id="closing-a-pr-without-committing-for-committers">Closing a PR without committing (for committers)</h1>
 <p>When we want to reject a PR (close without committing), we can just issue an empty commit on master’s HEAD without merging the PR:</p>
@@ -621,19 +615,19 @@ git push apache master
 
 <p>Read <a href="https://blogs.apache.org/infra/entry/improved_integration_between_apache_and">infra blog</a>. Comments and PRs with RocketMQ issue handles should post to mailing lists and JIRA. RocketMQ issue handles must in the form ROCKETMQ-YYYYY (all capitals). Usually it makes sense to file a JIRA issue first, and then create a PR with description
 ROCKETMQ-YYYY: <jira-issue-description>
-In this case all subsequent comments will automatically be copied to jira without having to mention JIRA issue explicitly in each comment of the PR.</jira-issue-description></p>
+All subsequent comments will then automatically be copied to JIRA.</jira-issue-description></p>
 
 <h1 id="best-practises">Best Practises</h1>
 
 <h2 id="avoiding-accidentally-committing-private-branches-to-the-asf-repo">Avoiding accidentally committing private branches to the ASF repo</h2>
 
-<p>Its dangerously easy —especially when using IDEs— to accidentally commit changes to the ASF repo, be it direct to the trunk, branch-2 or other standard branch on which you are developing, or to a private branch you had intended to keep on github (or a private repo).</p>
+<p>It’s dangerous —especially when using IDEs— to accidentally commit changes to the ASF repo, be directed to the trunk, branch-2, other standard branch on which you are developing, or to a private branch you had intended to keep on github (or a private repo).</p>
 
-<p>Committers can avoid this by having the directory in which they develop code set up with read only access to the ASF repository on github, without the apache repository added. A separate directory should be set up with write access to the ASF repository as well as read access to your other repositories. Merging operations and pushes back to the ASF repo are done from this directory —so isolated from all local development.</p>
+<p>Committers can avoid this by setting the directory in which they develop code to read only access to the ASF repository on github. A separate directory should also be set up with write access to the ASF repository as well as read access to your other repositories. Merging operations and push backs to the ASF repo are done from this directory —so it will be immune to all local changes.</p>
 
-<p>If you accidentally commit a patch to an ASF branch, do not attempt to roll back the branch and force out a new update. Simply commit and push out a new patch revoking the change.</p>
+<p>If you accidentally committed a patch to an ASF branch, do not attempt to roll back the branch and force out a new update. Simply commit and push out a new patch revoking the change.</p>
 
-<p>If you do accidentally commit a branch to the ASF repo, the infrastructure team can delete it —but they cannot stop it propagating to github and potentially being visible. Try not to do that.</p>
+<p>If you do accidentally committed a branch to the ASF repo, the infrastructure team can delete it —but they cannot stop it propagating to github and potentially being visible. Please avoid this.</p>
 
 
         
@@ -654,7 +648,7 @@ In this case all subsequent comments will automatically be copied to jira withou
     <h4 class="page__share-title">Share on</h4>
   
 
-  <a href="https://twitter.com/intent/tweet?via=ApacheRocketMQ&text=Best Practice in Pull Request /docs/pull-request/" 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://twitter.com/intent/tweet?via=ApacheRocketMQ&text=How to manage Pull Request /docs/pull-request/" 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/pull-request/" class="btn btn--facebook" title="Share on Facebook"><i class="fa fa-fw fa-facebook" aria-hidden="true"></i><span> Facebook</span></a>
 

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/5b69a90f/content/docs/quick-start/index.html
----------------------------------------------------------------------
diff --git a/content/docs/quick-start/index.html b/content/docs/quick-start/index.html
index e71b367..90afbae 100644
--- a/content/docs/quick-start/index.html
+++ b/content/docs/quick-start/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-06-08T11:24:44+08:00">
+  <meta property="article:published_time" content="2017-06-08T13:09:18+08:00">
 
 
 
@@ -241,6 +241,14 @@
 
             <li><a href="/docs/filter-by-sql92-example/" class="">Filter Example</a></li>
           
+            
+            
+
+            
+            
+
+            <li><a href="/docs/faq/" class="">FAQ</a></li>
+          
         </ul>
         
       </li>
@@ -303,7 +311,7 @@
             
             
 
-            <li><a href="/docs/pull-request/" class="">Pull Request</a></li>
+            <li><a href="/docs/pull-request/" class="">Manage Pull Request</a></li>
           
             
             
@@ -408,17 +416,6 @@
         
       </li>
     
-      <li>
-        
-          
-          
-
-          <a href="/docs/faq/"><span class="nav__sub-title">FAQ</span></a>
-        
-
-        
-      </li>
-    
   </ul>
 </nav>
     
@@ -442,7 +439,8 @@
       
 
       <section class="page__content" itemprop="text">
-        <p>This quick start guide is a detailed instruction of setting up RocketMQ messaging system on a local machine and sending/receiving messages.</p>
+        <p>This quick start guide is a detailed instruction of setting up RocketMQ messaging system on your local machine to send 
+and receive messages.</p>
 
 <aside class="sidebar__right">
 <nav class="toc">

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/5b69a90f/content/docs/release-manual.html
----------------------------------------------------------------------
diff --git a/content/docs/release-manual.html b/content/docs/release-manual.html
index ae57037..c231e9b 100644
--- a/content/docs/release-manual.html
+++ b/content/docs/release-manual.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-06-08T11:24:44+08:00">
+  <meta property="article:published_time" content="2017-06-08T13:09:18+08:00">
 
 
 
@@ -241,6 +241,14 @@
 
             <li><a href="/docs/filter-by-sql92-example/" class="">Filter Example</a></li>
           
+            
+            
+
+            
+            
+
+            <li><a href="/docs/faq/" class="">FAQ</a></li>
+          
         </ul>
         
       </li>
@@ -303,7 +311,7 @@
             
             
 
-            <li><a href="/docs/pull-request/" class="">Pull Request</a></li>
+            <li><a href="/docs/pull-request/" class="">Manage Pull Request</a></li>
           
             
             
@@ -408,17 +416,6 @@
         
       </li>
     
-      <li>
-        
-          
-          
-
-          <a href="/docs/faq/"><span class="nav__sub-title">FAQ</span></a>
-        
-
-        
-      </li>
-    
   </ul>
 </nav>
     
@@ -473,11 +470,11 @@
   </nav>
 </aside>
 
-<p>This is a guide to making a release of Apache RocketMQ (incubating). Please follow the steps below.</p>
+<p>This is a guide to make a released version of Apache RocketMQ (incubating). Please follow the steps below:</p>
 
 <h2 id="preliminaries">Preliminaries</h2>
 <h3 id="apache-release-documentation">Apache Release Documentation</h3>
-<p>There are some release documentations provided by The ASF, including the incubator release documentation, can be found here:</p>
+<p>The release documentations provided by The ASF can be found here:</p>
 
 <ul>
   <li><a href="http://www.apache.org/dev/release-publishing">Apache Release Guide</a></li>
@@ -488,12 +485,12 @@
 </ul>
 
 <h3 id="code-signing-key">Code Signing Key</h3>
-<p>Create a code signing gpg key for release signing, use <strong>&lt;your Apache ID&gt;@apache.org</strong> as your primary ID for the code signing key. See the <a href="https://www.apache.org/dev/release-signing">Apache Release Signing documentation</a> for more details.</p>
+<p>Create a code signing gpg key for release signing, use <strong>&lt;your Apache ID&gt;@apache.org</strong> as your primary ID for the code signing key. See <a href="https://www.apache.org/dev/release-signing">Apache Release Signing documentation</a> for more details.</p>
 
 <ul>
-  <li>Create new pgp key. How to use pgp please refer to <a href="http://www.apache.org/dev/openpgp.html">here</a>.</li>
+  <li>Create new pgp key. Please refer to <a href="http://www.apache.org/dev/openpgp.html">here</a> on how to use gpg key.</li>
   <li>Generate a new key via <code class="highlighter-rouge">gpg --gen-key</code>, and answer 4096 bits with no expiration time.</li>
-  <li>Upload your key to a public key server, like <code class="highlighter-rouge">gpg --keyserver pgpkeys.mit.edu --send-key &lt;your key id&gt;</code>.</li>
+  <li>Upload your key to a public key server by <code class="highlighter-rouge">gpg --keyserver pgpkeys.mit.edu --send-key &lt;your key id&gt;</code>.</li>
   <li>Get the key signed by other committers(Optional).</li>
   <li>Add the key to the RocketMQ <a href="https://dist.apache.org/repos/dist/dev/incubator/rocketmq/KEYS">KEYS file</a>.</li>
 </ul>
@@ -501,7 +498,7 @@
 <p><strong>Tips:</strong> If you have more than one key in your gpg, set the code signing key to <code class="highlighter-rouge">~/.gnupg/gpg.conf</code> as default key is recommended.</p>
 
 <h3 id="prepare-your-maven-settings">Prepare Your Maven Settings</h3>
-<p>Make sure that your Maven settings.xml file contains the following:</p>
+<p>Make sure your Maven settings.xml file contains the following:</p>
 
 <div class="language-xml highlighter-rouge"><pre class="highlight"><code><span class="nt">&lt;settings&gt;</span>
    <span class="nt">&lt;profiles&gt;</span>
@@ -552,33 +549,33 @@
 <p>Before building the release artifacts, do some verifications below:</p>
 
 <ul>
-  <li>Ensure that now your are in the candidate release branch.</li>
-  <li>Ensure that all the unit tests can pass via <code class="highlighter-rouge">mvn clean install</code>.</li>
-  <li>Ensure that all the integration tests can pass via <code class="highlighter-rouge">mvn clean test -Pit-test</code>.</li>
+  <li>Make sure that your are in the candidate release branch.</li>
+  <li>Make sure that all the unit tests can pass via <code class="highlighter-rouge">mvn clean install</code>.</li>
+  <li>Make sure that all the integration tests can pass via <code class="highlighter-rouge">mvn clean test -Pit-test</code>.</li>
 </ul>
 
 <p>Perform the following to generate and stage the artifacts:</p>
 
 <ol>
   <li><code class="highlighter-rouge">mvn clean release:clean</code></li>
-  <li><code class="highlighter-rouge">mvn release:prepare -Psigned_release -Darguments="-DskipTests"</code>, answer the right release version, SCM release tag, and the new development version.</li>
+  <li><code class="highlighter-rouge">mvn release:prepare -Psigned_release -Darguments="-DskipTests"</code>, answer the correct release version, SCM release tag, and the new development version.</li>
   <li><code class="highlighter-rouge">mvn -Psigned_release release:perform -Darguments="-DskipTests"</code>, generate the artifacts and push them to the <a href="https://repository.apache.org/#stagingRepositories">Nexus repo</a>. If you would like to perform a dry run first (without pushing the artifacts to the repo), add the arg -DdryRun=true</li>
 </ol>
 
 <p>Now, the candidate release artifacts can be found in the <a href="https://repository.apache.org/#stagingRepositories">Nexus staging repo</a> and in the <code class="highlighter-rouge">target</code> folder of your local branch.</p>
 
-<p><strong>Tips:</strong> If you are performing a source-only release, please remove all artifacts from the staging repo except for the .zip file containing the source and the javadocs jar file. In the Nexus GUI, you can right click on each artifact to be deleted and then select <code class="highlighter-rouge">Delete</code>.</p>
+<p><strong>Tips:</strong> If you are performing a source-only release, please remove all artifacts from the staging repo besides the .zip file containing the source and the javadocs jar file. In the Nexus GUI, you can right click on each artifact to be deleted and then select <code class="highlighter-rouge">Delete</code>.</p>
 
 <h3 id="validate-the-release-candidate">Validate the Release Candidate</h3>
-<p>Now the release candidate is ready, before calling a vote, the artifacts must satisfy the following checklist:</p>
+<p>Now the release candidate is ready, before calling a vote, the artifacts must satisfy the following requirements:</p>
 
 <ul>
   <li>Checksums and PGP signatures are valid.</li>
   <li>Build is successful including unit and integration tests.</li>
-  <li>DISCLAIMER is correct, filenames include “incubating”.</li>
+  <li>DISCLAIMER is correct and filenames must include “incubating”.</li>
   <li>LICENSE and NOTICE files are correct and dependency licenses are acceptable.</li>
-  <li>All source files have license headers where appropriate, RAT checks pass</li>
-  <li>Javadocs have been generated correctly and are accurate.</li>
+  <li>All source files have license headers and pass RAT checks.</li>
+  <li>Javadocs have been generated correctly.</li>
   <li>The provenance of all source files is clear (ASF or software grants).</li>
 </ul>
 
@@ -601,14 +598,14 @@
 <div class="language-shell highlighter-rouge"><pre class="highlight"><code>  gpg --verify rocketmq-all-%version-number%-incubating-source-release.zip.asc rocketmq-all-%version-number%-incubating-source-release.zip
 </code></pre>
 </div>
-<p>Check the output to ensure it contains only good signatures:</p>
+<p>Check the output to ensure it only contains good signatures:</p>
 
 <div class="language-text highlighter-rouge"><pre class="highlight"><code>  gpg: Good signature from ... gpg: Signature made ...
 </code></pre>
 </div>
 
 <ol>
-  <li>Compare MD5, SHA hash generated from the below command with the downloaded hash files.</li>
+  <li>Compare MD5, SHA hash generated by the below command with the downloaded hash files.</li>
 </ol>
 
 <div class="language-shell highlighter-rouge"><pre class="highlight"><code>  gpg --print-mds rocketmq-all-%version-number%-incubating-source-release.zip 
@@ -616,13 +613,13 @@
 </div>
 
 <h3 id="release-artifacts-to-dev-repository">Release Artifacts to Dev-Repository</h3>
-<p>If the release candidate appears to pass the validation checklist, close the staging repository in Nexus by selecting the staging repository <code class="highlighter-rouge">orgapacherocketmq-XXX</code> and clicking on the <code class="highlighter-rouge">Close</code> icon.</p>
+<p>If the release candidate passes the validation checklist, close the staging repository in Nexus by selecting the staging repository <code class="highlighter-rouge">orgapacherocketmq-XXX</code> and clicking on the <code class="highlighter-rouge">Close</code> icon.</p>
 
 <p>Nexus will now run through a series of checksum and signature validations.</p>
 
-<p>If the checks pass, Nexus will close the repository and give a URL to the closed staging repo (which contains the candidate artifacts). Include this URL in the voting email so that folks can find the staged candidate release artifacts.</p>
+<p>If the checks are passed, Nexus will close the repository and produce a URL to the closed staging repo (which contains the candidate artifacts). Include this URL in the voting email so that folks can find the staged candidate release artifacts.</p>
 
-<p>If the checks do not pass, fix the issues, roll back and restart the release process.</p>
+<p>If the checks aren’t passed, fix the issues then go back and restart the release process.</p>
 
 <p>If everything is ok, use svn to copy the candidate release artifacts to RocketMQ repo: https://dist.apache.org/repos/dist/dev/incubator/rocketmq/${release version}.</p>
 
@@ -633,7 +630,7 @@
 <p>General information regarding the Apache voting process can be found <a href="http://www.apache.org/foundation/voting.html">here</a>.</p>
 
 <h3 id="apache-rocketmq-community-vote">Apache RocketMQ Community Vote</h3>
-<p>To vote on a candidate release, send an email to the <a href="mailto:dev@rocketmq.apache.incubator.org">dev list</a> with subject <strong>[VOTE]: Release Apache RocketMQ &lt;release version&gt;(incubating) RC&lt;RC Number&gt;</strong> and a body along the lines of:</p>
+<p>To vote on a candidate release, send an email to the <a href="mailto:dev@rocketmq.apache.incubator.org">dev list</a> with subject <strong>[VOTE]: Release Apache RocketMQ &lt;release version&gt;(incubating) RC&lt;RC Number&gt;</strong> and body:</p>
 
 <blockquote>
   <p>Hello RocketMQ Community,</p>
@@ -670,7 +667,7 @@ https://dist.apache.org/repos/dist/dev/incubator/rocketmq/KEYS</p>
 The Apache RocketMQ Team</p>
 </blockquote>
 
-<p>Once 72 hours has passed (which is generally preferred) and/or at least three +1 (binding) votes have been cast with no -1 (binding) votes, send an email closing the vote and pronouncing the release candidate a success. Please use the subject: <strong>[RESULT][VOTE]: Release Apache RocketMQ &lt;release version&gt;(incubating) RC&lt;RC Number&gt;</strong> :</p>
+<p>Once 72 hours has passed (which is generally preferred) and/or at least three +1 (binding) votes have been cast with no -1 (binding) votes, send an email closing the vote and congratulate the release candidate. Please use the subject: <strong>[RESULT][VOTE]: Release Apache RocketMQ &lt;release version&gt;(incubating) RC&lt;RC Number&gt;</strong> :</p>
 
 <blockquote>
   <p>Hello RocketMQ Community,</p>
@@ -693,7 +690,7 @@ User Name (Apache ID)<br />
 The Apache RocketMQ Team</p>
 </blockquote>
 
-<p>If we do not pass the VOTE, fix the related issues, roll back, restart the release process and increase RC number. When we call a new vote, we must use the updated mail subject: <strong>[RESTART][VOTE][#&lt;Attempt Number&gt;]: Release Apache RocketMQ &lt;release version&gt;(incubating) RC&lt;RC Number&gt;</strong></p>
+<p>If we do not pass the VOTE, fix the related issues, go back, restart the release process and increase RC number. When we call a new vote, we must use the updated mail subject: <strong>[RESTART][VOTE][#&lt;Attempt Number&gt;]: Release Apache RocketMQ &lt;release version&gt;(incubating) RC&lt;RC Number&gt;</strong></p>
 
 <h3 id="incubator-pmc-vote">Incubator PMC Vote</h3>
 <p>Once the candidate release vote passes on dev@rocketmq, send an email to <a href="mailto:general@incubator.apache.org">IMPC</a> with subject <strong>[VOTE]: Release Apache RocketMQ &lt;release version&gt;(incubating) RC&lt;RC Number&gt;</strong> and a body along the lines of:</p>
@@ -739,7 +736,7 @@ https://dist.apache.org/repos/dist/dev/incubator/rocketmq/KEYS</p>
 The Apache RocketMQ Team</p>
 </blockquote>
 
-<p>Also don’t forget announce the vote result:</p>
+<p>Also don’t forget to announce the vote result:</p>
 
 <blockquote>
   <p>Hello Incubator PMC,</p>

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/5b69a90f/content/docs/rmq-arc/index.html
----------------------------------------------------------------------
diff --git a/content/docs/rmq-arc/index.html b/content/docs/rmq-arc/index.html
index 03ea9ae..5db7168 100644
--- a/content/docs/rmq-arc/index.html
+++ b/content/docs/rmq-arc/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-06-08T11:24:44+08:00">
+  <meta property="article:published_time" content="2017-06-08T13:09:18+08:00">
 
 
 
@@ -241,6 +241,14 @@
 
             <li><a href="/docs/filter-by-sql92-example/" class="">Filter Example</a></li>
           
+            
+            
+
+            
+            
+
+            <li><a href="/docs/faq/" class="">FAQ</a></li>
+          
         </ul>
         
       </li>
@@ -303,7 +311,7 @@
             
             
 
-            <li><a href="/docs/pull-request/" class="">Pull Request</a></li>
+            <li><a href="/docs/pull-request/" class="">Manage Pull Request</a></li>
           
             
             
@@ -408,17 +416,6 @@
         
       </li>
     
-      <li>
-        
-          
-          
-
-          <a href="/docs/faq/"><span class="nav__sub-title">FAQ</span></a>
-        
-
-        
-      </li>
-    
   </ul>
 </nav>
     
@@ -458,7 +455,7 @@
 
 <h1 id="overview">Overview</h1>
 
-<p>The greatest strengths of RocketMQ are high throughput, high reliability, and low latency when supporting massive messages through exquisite scale out and scale up. RocketMQ consists of four parts: name servers, brokers, producers and consumers. Each of them can be horizontally extended without a single Point of Failure. As shown in screenshot below.</p>
+<p>Apache RocketMQ is a distributed messaging and streaming platform with low latency, high performance and reliability, trillion-level capacity and flexible scalability. It consists of four parts: name servers, brokers, producers and consumers. Each of them can be horizontally extended without a single Point of Failure. As shown in screenshot above.</p>
 
 <p><strong>NameServer Cluster</strong></p>
 
@@ -466,7 +463,7 @@
 
 <p><strong>Broker Cluster</strong></p>
 
-<p>Brokers take care of message storage by providing lightweight TOPIC and QUEUE mechanisms. It supports the Push and Pull model, contains fault tolerance mechanism (2 copies or 3 copies), and provides strong padding of peaks and capacity of accumulating hundreds of billion messages in their original time order. In addition, Brokers provide disaster recovery, rich metrics statistics, and alert mechanisms, all of which are lacking in traditional messaging systems.</p>
+<p>Brokers take care of message storage by providing lightweight TOPIC and QUEUE mechanisms. They support the Push and Pull model, contains fault tolerance mechanism (2 copies or 3 copies), and provides strong padding of peaks and capacity of accumulating hundreds of billion messages in their original time order. In addition, Brokers provide disaster recovery, rich metrics statistics, and alert mechanisms, all of which are lacking in traditional messaging systems.</p>
 
 <p><strong>Producer Cluster</strong></p>
 
@@ -475,7 +472,7 @@
 <p><strong>Consumer Cluster</strong></p>
 
 <p>Consumers support distributed deployment in the Push and Pull model as well. It also supports cluster consumption and message broadcasting. It provides real-time message subscription mechanism and can meet most consumer requirements. 
-RocketMQ’s website provides a simple quick-start guide[3] to interested users.</p>
+RocketMQ’s website provides a simple quick-start guide to interested users.</p>
 
 <h1 id="nameserver">NameServer</h1>
 
@@ -506,11 +503,11 @@ RocketMQ’s website provides a simple quick-start guide[3] to interested users.
 <p>As shown in image below, Broker server has searval important sub modules:</p>
 
 <ul>
-  <li>Remoting Module, the entry of broker, handle the requests from clients.</li>
-  <li>Client Manager, manage the clients (Producer/Consumer), maintain topic subscription of consumer.</li>
-  <li>Store Service, provide simple APIs to store or query message in physical disk.</li>
-  <li>HA Service, provide data sync feature between master broker and slave broker.</li>
-  <li>Index Service, build index for messages by specified key and provide quick message query function.</li>
+  <li>Remoting Module, the entry of broker, handles the requests from clients.</li>
+  <li>Client Manager, manages the clients (Producer/Consumer) and maintains topic subscription of consumer.</li>
+  <li>Store Service, provides simple APIs to store or query message in physical disk.</li>
+  <li>HA Service, provides data sync feature between master broker and slave broker.</li>
+  <li>Index Service, builds index for messages by specified key and provides quick message query.</li>
 </ul>
 
 <p><img src="/assets/images/rmq-basic-component.png" alt="" /></p>

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/5b69a90f/content/docs/rmq-deployment/index.html
----------------------------------------------------------------------
diff --git a/content/docs/rmq-deployment/index.html b/content/docs/rmq-deployment/index.html
index 98ee4e6..005b7af 100644
--- a/content/docs/rmq-deployment/index.html
+++ b/content/docs/rmq-deployment/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-06-08T11:24:44+08:00">
+  <meta property="article:published_time" content="2017-06-08T13:09:18+08:00">
 
 
 
@@ -241,6 +241,14 @@
 
             <li><a href="/docs/filter-by-sql92-example/" class="">Filter Example</a></li>
           
+            
+            
+
+            
+            
+
+            <li><a href="/docs/faq/" class="">FAQ</a></li>
+          
         </ul>
         
       </li>
@@ -303,7 +311,7 @@
             
             
 
-            <li><a href="/docs/pull-request/" class="">Pull Request</a></li>
+            <li><a href="/docs/pull-request/" class="">Manage Pull Request</a></li>
           
             
             
@@ -408,17 +416,6 @@
         
       </li>
     
-      <li>
-        
-          
-          
-
-          <a href="/docs/faq/"><span class="nav__sub-title">FAQ</span></a>
-        
-
-        
-      </li>
-    
   </ul>
 </nav>
     
@@ -474,24 +471,24 @@
   </nav>
 </aside>
 
-<p>This section is to introduce deployment solution which is considered production-ready. Generally speaking, we are deploying a resilient RocketMQ cluster having no single point of failure.</p>
+<p>This section introduces production-ready deployment solution. Generally speaking, we are deploying a resilient RocketMQ cluster having no single point of failure.</p>
 
 <h3 id="prerequisite">Prerequisite</h3>
-<p>Before starting this section, make sure you have read Quick Start section, in which core concepts and components of RocketMQ are introduced.</p>
+<p>Before starting this section, make sure you have read Quick Start section, and are farmiliar with the core concepts and components of RocketMQ.</p>
 
 <h4 id="production-ready-deployment">Production-ready Deployment</h4>
 <h5 id="name-server">Name Server</h5>
-<p>To ensure the cluster can still operate normally when one instance crashes, two or more name server instances are recommended. As long as there is one name server instance alive, the whole cluster remains in service.</p>
+<p>To ensure the cluster can still function when one instance crashes, two or more name server instances are recommended. As long as there is one name server instance alive, the whole cluster remains in service.</p>
 
-<p>Name server follows the share-nothing design paradigm. Brokers send heartbeat data to all name servers. Producers and consumers may query meta data from any of name servers available while sending / consuming messages.</p>
+<p>Name server follows the share-nothing design paradigm. Brokers send heartbeat data to all name servers. Producers and consumers can query meta data from any of name servers available while sending / consuming messages.</p>
 
 <h4 id="broker">Broker</h4>
 <p>Brokers can be divided into two categories according to their roles: master and slave. Master brokers provide RW access while slave brokers only accept read access.</p>
 
-<p>To deploy a high-availability RocketMQ cluster which has no single point of failure, a series of broker sets should be deployed. A broker set contains one master with brokerId set to 0 and several slaves with non-zero brokerIDs. All of the brokers in one set have the same brokerName. In serious scenarios, we should have at least two brokers in one broker set. Each topic resides in two or more brokers.</p>
+<p>To deploy a high-availability RocketMQ cluster with no single point of failure, a series of broker sets should be deployed. A broker set contains one master with brokerId set to 0 and several slaves with non-zero brokerIDs. All of the brokers in one set have the same brokerName. In serious scenarios, we should have at least two brokers in one broker set. Each topic resides in two or more brokers.</p>
 
 <h3 id="configuration">Configuration</h3>
-<p>When deploying a RocketMQ cluster, below configurations should be taken into consideration.</p>
+<p>When deploying a RocketMQ cluster, recommended configuration is listed below:</p>
 
 <h5 id="broker-configuration">Broker configuration</h5>
 
@@ -499,7 +496,7 @@
   <thead>
     <tr>
       <th>Property Name</th>
-      <th style="text-align: center">Default values</th>
+      <th style="text-align: center">Default value</th>
       <th style="text-align: right">Details</th>
     </tr>
   </thead>
@@ -578,12 +575,12 @@
 <h4 id="how-to-get">How To Get</h4>
 <p>The admin tool is shipped along with RocketMQ. Either you download a pre-built binary version or build from source by yourself, you already have it.</p>
 
-<p>In case you have source code, the rocketmq-tools module contains its source code.</p>
+<p>In case you need the source code, the rocketmq-tools module contains its source code.</p>
 
 <h4 id="how-to-use">How to use</h4>
 <p>The Admin Tool is very easy to use. Here, for demonstration purpose, *nix environment is assumed.</p>
 
-<p>Change directory to ${PACKAGE}/bin, command bash mqadmin, you should see the following help menu pops out:</p>
+<p>Change directory to ${PACKAGE}/bin, command bash mqadmin, you should see the following help menu:</p>
 
 <div class="language-java highlighter-rouge"><pre class="highlight"><code><span class="n">The</span> <span class="n">most</span> <span class="n">commonly</span> <span class="n">used</span> <span class="n">mqadmin</span> <span class="n">commands</span> <span class="nl">are:</span>
    <span class="n">updateTopic</span>          <span class="n">Update</span> <span class="n">or</span> <span class="n">create</span> <span class="n">topic</span>
@@ -602,13 +599,13 @@
    <span class="n">queryMsgByOffset</span>     <span class="n">Query</span> <span class="n">Message</span> <span class="n">by</span> <span class="n">offset</span>
    <span class="n">queryMsgByUniqueKey</span>  <span class="n">Query</span> <span class="n">Message</span> <span class="n">by</span> <span class="n">Unique</span> <span class="n">key</span>
    <span class="n">printMsg</span>             <span class="n">Print</span> <span class="n">Message</span> <span class="n">Detail</span>
-   <span class="n">sendMsgStatus</span>        <span class="n">send</span> <span class="n">msg</span> <span class="n">to</span> <span class="n">broker</span>
+   <span class="n">sendMsgStatus</span>        <span class="n">Send</span> <span class="n">msg</span> <span class="n">to</span> <span class="n">broker</span>
    <span class="n">brokerConsumeStats</span>   <span class="n">Fetch</span> <span class="n">broker</span> <span class="n">consume</span> <span class="n">stats</span> <span class="n">data</span>
    <span class="n">producerConnection</span>   <span class="n">Query</span> <span class="n">producer</span><span class="err">'</span><span class="n">s</span> <span class="n">socket</span> <span class="n">connection</span> <span class="n">and</span> <span class="n">client</span> <span class="n">version</span>
    <span class="n">consumerConnection</span>   <span class="n">Query</span> <span class="n">consumer</span><span class="err">'</span><span class="n">s</span> <span class="n">socket</span> <span class="n">connection</span><span class="o">,</span> <span class="n">client</span> <span class="n">version</span> <span class="n">and</span> <span class="n">subscription</span>
    <span class="n">consumerProgress</span>     <span class="n">Query</span> <span class="n">consumers</span><span class="err">'</span><span class="n">s</span> <span class="n">progress</span><span class="o">,</span> <span class="n">speed</span>
    <span class="n">consumerStatus</span>       <span class="n">Query</span> <span class="n">consumer</span><span class="err">'</span><span class="n">s</span> <span class="n">internal</span> <span class="n">data</span> <span class="n">structure</span>
-   <span class="n">cloneGroupOffset</span>     <span class="n">clone</span> <span class="n">offset</span> <span class="n">from</span> <span class="n">other</span> <span class="n">group</span>
+   <span class="n">cloneGroupOffset</span>     <span class="n">Clone</span> <span class="n">offset</span> <span class="n">from</span> <span class="n">other</span> <span class="n">group</span>
    <span class="n">clusterList</span>          <span class="n">List</span> <span class="n">all</span> <span class="n">of</span> <span class="n">clusters</span>
    <span class="n">topicList</span>            <span class="n">Fetch</span> <span class="n">all</span> <span class="n">topic</span> <span class="n">list</span> <span class="n">from</span> <span class="n">name</span> <span class="n">server</span>
    <span class="n">updateKvConfig</span>       <span class="n">Create</span> <span class="n">or</span> <span class="n">update</span> <span class="n">KV</span> <span class="n">config</span>
@@ -622,7 +619,7 @@
    <span class="n">statsAll</span>             <span class="n">Topic</span> <span class="n">and</span> <span class="n">Consumer</span> <span class="n">tps</span> <span class="n">stats</span>
    <span class="n">syncDocs</span>             <span class="n">Synchronize</span> <span class="n">wiki</span> <span class="n">and</span> <span class="n">issue</span> <span class="n">to</span> <span class="n">github</span><span class="o">.</span><span class="na">com</span>
    <span class="n">allocateMQ</span>           <span class="n">Allocate</span> <span class="n">MQ</span>
-   <span class="n">checkMsgSendRT</span>       <span class="n">check</span> <span class="n">message</span> <span class="n">send</span> <span class="n">response</span> <span class="n">time</span>
+   <span class="n">checkMsgSendRT</span>       <span class="n">Check</span> <span class="n">message</span> <span class="n">send</span> <span class="n">response</span> <span class="n">time</span>
    <span class="n">clusterRT</span>            <span class="n">List</span> <span class="n">All</span> <span class="n">clusters</span> <span class="n">Message</span> <span class="n">Send</span> <span class="n">RT</span>
 
 </code></pre>
@@ -639,7 +636,7 @@ If you want to get more information about a specific command like ‘clusterList
 </div>
 
 <h3 id="replication-mode">Replication mode</h3>
-<p>To guarantee any successfully published message won’t be lost, RocketMQ provides a Replication mode to gain stronger durability and higher availability with two replication way: Sync &amp; Async.</p>
+<p>To make sure that no successfully published message will be lost, RocketMQ provides a Replication mode to gain stronger durability and higher availability with two replication ways: Sync &amp; Async.</p>
 
 <h5 id="replication-sync--async-broker">Replication: Sync / Async Broker</h5>
 

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/5b69a90f/content/docs/roadmap/index.html
----------------------------------------------------------------------
diff --git a/content/docs/roadmap/index.html b/content/docs/roadmap/index.html
index 9723b15..d1d03d9 100644
--- a/content/docs/roadmap/index.html
+++ b/content/docs/roadmap/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-06-08T11:24:44+08:00">
+  <meta property="article:published_time" content="2017-06-08T13:09:18+08:00">
 
 
 
@@ -241,6 +241,14 @@
 
             <li><a href="/docs/filter-by-sql92-example/" class="">Filter Example</a></li>
           
+            
+            
+
+            
+            
+
+            <li><a href="/docs/faq/" class="">FAQ</a></li>
+          
         </ul>
         
       </li>
@@ -303,7 +311,7 @@
             
             
 
-            <li><a href="/docs/pull-request/" class="">Pull Request</a></li>
+            <li><a href="/docs/pull-request/" class="">Manage Pull Request</a></li>
           
             
             
@@ -408,17 +416,6 @@
         
       </li>
     
-      <li>
-        
-          
-          
-
-          <a href="/docs/faq/"><span class="nav__sub-title">FAQ</span></a>
-        
-
-        
-      </li>
-    
   </ul>
 </nav>
     
@@ -445,7 +442,7 @@
         <h2 id="410430-incubating-roadmap">4.1.0~4.3.0-incubating RoadMap:</h2>
 
 <h3 id="openmessaging">OpenMessaging</h3>
-<p>OpenMessaging, which includes the establishment of industry guidelines and messaging, streaming specifications to provide a common framework for finance, e-commerce, IoT and big-data area. The design principles are the cloud-oriented, simplicity, flexibility, and language independent in distributed heterogeneous environments. Conformance to these specifications will make it possible to develop a heterogeneous messaging applications across all major platforms and operating systems. <a href="https://issues.apache.org/jira/browse/ROCKETMQ-17">JIRA</a></p>
+<p>OpenMessaging, which includes the establishment of industry guidelines and messaging, streaming specifications to provide a common framework for finance, e-commerce, IoT and big-data area. The design principles are the cloud-orientedness, simplicity, flexibility, and language independency in distributed heterogeneous environments. Conformance to these specifications allows the development of a heterogeneous messaging applications across all major platforms and operating systems. <a href="https://issues.apache.org/jira/browse/ROCKETMQ-17">JIRA</a></p>
 
 <aside class="sidebar__right">
 <nav class="toc">
@@ -472,44 +469,44 @@
 </aside>
 
 <h3 id="message-filtering">Message Filtering</h3>
-<p>So far, RocketMQ only support message filtering feature by <code class="highlighter-rouge">TAG</code>, but one message only can own one tag, this is too limited to meet complex business requirements.</p>
+<p>So far, RocketMQ only supports message filtering feature by <code class="highlighter-rouge">TAG</code>, but one message can only own one tag, which is too limited to meet complex business requirements.</p>
 
 <p>So, we want to define and implement a reasonable filter language based on a subset of the SQL 92 expression syntax to support customized message filtering. <a href="https://issues.apache.org/jira/browse/ROCKETMQ-121">JIRA</a></p>
 
 <h3 id="batch-messaging">Batch Messaging</h3>
 
-<p>In order to use RocketMQ in big data related scenarios, batch messaging is necessary, which will bring million-level TPS for RocketMQ. <a href="https://issues.apache.org/jira/browse/ROCKETMQ-80">JIRA</a>, <a href="https://github.com/apache/incubator-rocketmq/pull/53">PR</a></p>
+<p>In order to use RocketMQ in big data related scenarios, batch messaging is necessary and will bring million-level TPS for RocketMQ. <a href="https://issues.apache.org/jira/browse/ROCKETMQ-80">JIRA</a>, <a href="https://github.com/apache/incubator-rocketmq/pull/53">PR</a></p>
 
 <h3 id="consistent-hash-allocate-strategychas">Consistent Hash Allocate Strategy(CHAS)</h3>
 
-<p>Consumer clients use the average allocate strategy by far, which is very sensitive when clients register or unregister continually.</p>
+<p>Consumer clients use the average allocate strategy by far, which is very sensitive when clients register or unregister continuously.</p>
 
-<p>A Consistent Hash allocate strategy is valuable for the developer who cares more about stabilization than averaging.</p>
+<p>A Consistent Hash allocate strategy is valuable for developers who care more about stabilization than averaging.</p>
 
-<p>So it’s better for us to support CHAS as a extra choice in consumer load balancing. <a href="https://issues.apache.org/jira/browse/ROCKETMQ-67">JIRA</a>, <a href="https://github.com/apache/incubator-rocketmq/pull/67">PR</a></p>
+<p>So we decided to support CHAS as an extra choice in consumer load balancing. <a href="https://issues.apache.org/jira/browse/ROCKETMQ-67">JIRA</a>, <a href="https://github.com/apache/incubator-rocketmq/pull/67">PR</a></p>
 
 <h3 id="global-order-messaging">Global Order Messaging</h3>
 
 <p>As we know, messages in the same queue can be consumed sequentially. So we always send the congeneric messages to the same queue to guarantee ordering, which will cause hot-point issue.</p>
 
-<p>So It’s cool if we support a new global order messaging mechanism, without hot-points problem. <a href="https://issues.apache.org/jira/browse/ROCKETMQ-122">JIRA</a></p>
+<p>So it’d be cool if we can support a new global order messaging mechanism without the hot-point problem. <a href="https://issues.apache.org/jira/browse/ROCKETMQ-122">JIRA</a></p>
 
 <h3 id="distributed-transaction-messaging">Distributed Transaction Messaging</h3>
-<p>Undoubtedly, transaction messaging is very frequently-used in most business.</p>
+<p>Undoubtedly, transaction messaging is frequently used in most business.</p>
 
-<p>But it is unfortunate that users must implement transaction mechanism by themselves until now, may be they need DataBase to implement it.</p>
+<p>But users have to implement transaction mechanism by themselves for now, so there is a potential need of a database implementation to solve the problem.</p>
 
-<p>It’s time to support distributed transaction messaging to make it convenient for the user, help them handle complex business with skill and ease. <a href="https://issues.apache.org/jira/browse/ROCKETMQ-123">JIRA</a></p>
+<p>Now we can support distributed transaction messaging to make it convenient for the users and help them handle complex business. <a href="https://issues.apache.org/jira/browse/ROCKETMQ-123">JIRA</a></p>
 
 <h3 id="non-redundant-message-delivery-mechanism">Non-Redundant Message Delivery Mechanism</h3>
 
-<p>The duplicated messages are worrisome. It will cost much if user need non-repeating messages.</p>
+<p>The duplicated messages will impose extra cost if user needs non-repeating messages.</p>
 
-<p>In most cases, user need store the consume records to judge a message is replicated or not, and the store stage should guarantee strong consistency. As you see, it’s very complicated, so support a strict and non-redundant message delivery mechanism is impending. <a href="https://issues.apache.org/jira/browse/ROCKETMQ-124">JIRA</a></p>
+<p>In most cases, user needs to store the consume records to determine if a message is duplicated, and the store stage should guarantee consistency. So we need to support a strict and non-redundant message delivery mechanism. <a href="https://issues.apache.org/jira/browse/ROCKETMQ-124">JIRA</a></p>
 
 <h3 id="intellective-ha-architecture">Intellective HA Architecture</h3>
 
-<p>RocketMQ uses master-slave as HA architecture, which has low latency and high throughput features, but this program need human intervention to recover from abnormal situations.</p>
+<p>RocketMQ uses master-slave as HA architecture, which has low latency and high throughput, but this program needs human intervention to recover from abnormal situations.</p>
 
 <p>So, we want to support a multi-replication high availability/reliability mechanism, without human intervention. <a href="https://issues.apache.org/jira/browse/ROCKETMQ-125">JIRA</a></p>
 
@@ -523,7 +520,7 @@
 
 <ol>
   <li>Support more application layer protocol: WebSocket, HTTP2, etc.</li>
-  <li>Support more native language SDK: PHP, Python, .Net, Node, Go, etc. The chosen programming languages are the result of surveying many cloud platforms.</li>
+  <li>Support more native language SDK: PHP, Python, .Net, Node, Go, etc. The chosen programming languages are based on the investigation of many cloud platforms.</li>
   <li>Support advanced message queuing protocol(AMQP).</li>
 </ol>
 

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/5b69a90f/content/docs/schedule-example/index.html
----------------------------------------------------------------------
diff --git a/content/docs/schedule-example/index.html b/content/docs/schedule-example/index.html
index 162ac02..e02a28c 100644
--- a/content/docs/schedule-example/index.html
+++ b/content/docs/schedule-example/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-06-08T11:24:44+08:00">
+  <meta property="article:published_time" content="2017-06-08T13:09:18+08:00">
 
 
 
@@ -241,6 +241,14 @@
 
             <li><a href="/docs/filter-by-sql92-example/" class="">Filter Example</a></li>
           
+            
+            
+
+            
+            
+
+            <li><a href="/docs/faq/" class="">FAQ</a></li>
+          
         </ul>
         
       </li>
@@ -303,7 +311,7 @@
             
             
 
-            <li><a href="/docs/pull-request/" class="">Pull Request</a></li>
+            <li><a href="/docs/pull-request/" class="">Manage Pull Request</a></li>
           
             
             
@@ -408,17 +416,6 @@
         
       </li>
     
-      <li>
-        
-          
-          
-
-          <a href="/docs/faq/"><span class="nav__sub-title">FAQ</span></a>
-        
-
-        
-      </li>
-    
   </ul>
 </nav>