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

[1/4] incubator-rocketmq-site git commit: [ROCKETMQ-216] - Website polish closes apache/incubator-rocketmq-site#14

Repository: incubator-rocketmq-site
Updated Branches:
  refs/heads/asf-site ee0ec5a01 -> 94c21bba6


[ROCKETMQ-216] - Website polish closes apache/incubator-rocketmq-site#14


Project: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/commit/a84f68da
Tree: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/tree/a84f68da
Diff: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/diff/a84f68da

Branch: refs/heads/asf-site
Commit: a84f68daaf400df1cf08e5b89ceade5b14d894ff
Parents: 754269c
Author: zhoudiqiu <zh...@wustl.edu>
Authored: Tue Jun 6 21:19:40 2017 +0800
Committer: dongeforever <do...@apache.org>
Committed: Tue Jun 6 21:19:40 2017 +0800

----------------------------------------------------------------------
 _data/navigation.yml                   |   4 +-
 _docs/01-quick-start-guide.md          |   7 +-
 _docs/02-motivation.md                 |  10 +-
 _docs/04-cli-admin-tool.md             |   2 +-
 _docs/07-frequently-asked-questions.md |  12 +-
 _docs/12-rmq-batch-example.md          |  27 ++---
 _docs/13-rmq-broadcasting-example.md   |  61 +++++-----
 _docs/14-rmq-deployment.md             |  10 +-
 _docs/15-order-message-example .md     | 105 ++++++++--------
 _docs/16-rmq-architecture.md           |  16 +--
 _docs/17-rmq-schedule-example.md       |   5 +-
 _docs/18-simple-example.md             | 179 +++++++++-------------------
 _docs/19-filter-by-sql92-example.md    |  40 +++----
 home.md                                |  26 ++--
 14 files changed, 209 insertions(+), 295 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/a84f68da/_data/navigation.yml
----------------------------------------------------------------------
diff --git a/_data/navigation.yml b/_data/navigation.yml
index 97f0958..5185f2d 100644
--- a/_data/navigation.yml
+++ b/_data/navigation.yml
@@ -19,10 +19,10 @@ main:
 docs:
   - title: User Guide
     children:
-      - title: "Quick Start"
-        url: /docs/quick-start/
       - title: "Why RocketMQ"
         url: /docs/motivation/
+      - title: "Quick Start"
+        url: /docs/quick-start/
       - title: "Simple Example"
         url: /docs/simple-example/
       - title: "Order Example"

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/a84f68da/_docs/01-quick-start-guide.md
----------------------------------------------------------------------
diff --git a/_docs/01-quick-start-guide.md b/_docs/01-quick-start-guide.md
index 8b84636..e298d39 100644
--- a/_docs/01-quick-start-guide.md
+++ b/_docs/01-quick-start-guide.md
@@ -5,7 +5,7 @@ excerpt: "How to quickly install and setup Apache RocketMQ."
 modified: 2016-12-29T15:01:43-04:00
 ---
 
-This quick start guide is to give detailed instructions, helping you setup RocketMQ messaging system on a single local machine and send/receive the very first message.
+This quick start guide is a detailed instruction of setting up RocketMQ messaging system on a local machine and sending/receiving messages.
 
 {% include toc %}
 
@@ -42,12 +42,11 @@ This quick start guide is to give detailed instructions, helping you setup Rocke
   > tail -f ~/logs/rocketmqlogs/broker.log 
   The broker[%s, 172.30.30.233:10911] boot success...
 ```
-  you may need to pay attention to the broker ip, for that the broker will not use the loopback network interface, So you should make sure you have connected to other network.
-
+  
 
 # Send & Receive Messages
 
-Before sending/receiving messages, we need to tell clients where name servers are located. RocketMQ provides multiple ways to achieve this. For simplicity, we use environment variable `NAMESRV_ADDR`
+Before sending/receiving messages, we need to tell clients the location of name servers. RocketMQ provides multiple ways to achieve this. For simplicity, we use environment variable `NAMESRV_ADDR`
 
 ```shell
  > export NAMESRV_ADDR=localhost:9876

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/a84f68da/_docs/02-motivation.md
----------------------------------------------------------------------
diff --git a/_docs/02-motivation.md b/_docs/02-motivation.md
index d462d98..14eb57a 100644
--- a/_docs/02-motivation.md
+++ b/_docs/02-motivation.md
@@ -4,19 +4,19 @@ permalink: /docs/motivation/
 modified: 2016-12-16T15:01:43-04:00
 ---
 
-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.
+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.
 
 {% include toc %}
 
 # Why RocketMQ ?
 
-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 [here](/rocketmq/how-to-support-more-queues-in-rocketmq/) for details.
+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 [here](/rocketmq/how-to-support-more-queues-in-rocketmq/) for details.
 
-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
-[Alibaba Cloud Platform](https://intl.aliyun.com/). 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.
+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
+[Alibaba Cloud Platform](https://intl.aliyun.com/).
 
 
-The following are some different design between RocketMQ, ActiveMQ and Kafka(They are the apache's most popular messaging solutions according to [awesome-java](https://github.com/akullpp/awesome-java)):
+The following table demonstrates the comparison between RocketMQ, ActiveMQ and Kafka (Apache's most popular messaging solutions according to [awesome-java](https://github.com/akullpp/awesome-java)):
 
 # RocketMQ vs. ActiveMQ vs. Kafka
 

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/a84f68da/_docs/04-cli-admin-tool.md
----------------------------------------------------------------------
diff --git a/_docs/04-cli-admin-tool.md b/_docs/04-cli-admin-tool.md
index ca351e9..aa2ef44 100644
--- a/_docs/04-cli-admin-tool.md
+++ b/_docs/04-cli-admin-tool.md
@@ -17,7 +17,7 @@ Make sure you have walked through [Quick Start](/docs/quick-start/) and [Core Co
 
 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.
 
-In case you have source code, the [rocketmq-tools module](https://github.com/apache/incubator-rocketmq/tree/master/tools) contains its source code.
+In case you don't have source code, the [rocketmq-tools module](https://github.com/apache/incubator-rocketmq/tree/master/tools) contains its source code.
 
 # How to use
 

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/a84f68da/_docs/07-frequently-asked-questions.md
----------------------------------------------------------------------
diff --git a/_docs/07-frequently-asked-questions.md b/_docs/07-frequently-asked-questions.md
index 671e364..68d45e1 100644
--- a/_docs/07-frequently-asked-questions.md
+++ b/_docs/07-frequently-asked-questions.md
@@ -3,20 +3,20 @@ title: "Frequently Asked Questions"
 permalink: /docs/faq/
 modified: 2016-12-27T15:18:43-04:00
 ---
-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.
+The following questions are frequently asked with regard to the RocketMQ project in general.
  
 ## General
-### 1. 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.
+### 1. Why did we create rocketmq project instead of selecting other products?
+Please refer to [Why RocketMQ](/docs/motivation/)
 
 ### 2. Do I have to install other softewares, such as zookeeper, to use RocketMQ?
-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.
+No. RocketMQ can run independently.
 
 ## Usage
 ### 1. Where does the newly created Consumer ID start consuming messages?
  
-1. If the topic sends a message within three days, then the consumer start consume message from the first message saved in the server.
-2. 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.
+1. If the topic sends a message within three days, then the consumer start consuming messages from the first message saved in the server.
+2. 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.
 3. If such consumer is the second reboot, then start to consumer message from the last consumption location.
 
 ### 2. How to reconsume message when consumption fails?

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/a84f68da/_docs/12-rmq-batch-example.md
----------------------------------------------------------------------
diff --git a/_docs/12-rmq-batch-example.md b/_docs/12-rmq-batch-example.md
index 01b5d32..a94c27c 100644
--- a/_docs/12-rmq-batch-example.md
+++ b/_docs/12-rmq-batch-example.md
@@ -7,23 +7,16 @@ modified: 2017-04-24T15:01:43-04:00
 
 {% include toc %}
 
-#### When to use batch
-Batch is not for packaging but improving performance of small messages. So the messages of the same batch should act the same role, no more effort should be taken to split the batch.
-No split has another important advantage, messages of the same batch should be sent atomically, that is all successfully or all unsuccessfully, of which the importance is self-evident.
-So performance and atomicity are the original intentions, which will reflect on the usage constraints. 
-That is to say, if you want to improve performance for small messages or to send messages atomically, batch is a nice solution for you.
-#### Usage constraints
-Performance and atomicity are worth  the following constraints:
-messages of the same batch should have:
+### Why batch?
+Sending messages in batch improves performance of delivering small messages. 
 
-1. same topic: If they belong to different topics(internally the queues), then may be sent to different brokers, which will against atomicity.
-2. same waitStoreMsgOK: also differences will against atomicity.
-3. no delay level: If we care about the delay level, we need to decode the internal properties of every message, which will cause much performance loss.
+### Usage constraints
+Messages of the same batch should have: same topic, same waitStoreMsgOK and no schedule support.
 
-And the most important, the total size, that is the sum of size of each message in one batch, should be no more than 1M.
+Besides, the total size of the messages in one batch should be no more than 1MiB.
 
-#### How to use batch
-If you just send several small messages in a time and do not need to worry about the size limit, it is easy to use batch:
+### How to use batch
+If you just send messages of no more than 1MiB at a time, it is easy to use batch:
 
 ```java
 String topic = "BatchTest";
@@ -39,8 +32,8 @@ try {
 }
     
 ```
-#### Split into lists
-The complexity only grow when you send large batch and you may not sure if it exceeds the size limit (1M).
+### Split into lists
+The complexity only grow when you send large batch and you may not sure if it exceeds the size limit (1MiB).
 
 At this time, you'd better split the lists:
 
@@ -98,4 +91,4 @@ while (splitter.hasNext()) {
        //handle the error
    }
 }
-```
\ No newline at end of file
+```

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/a84f68da/_docs/13-rmq-broadcasting-example.md
----------------------------------------------------------------------
diff --git a/_docs/13-rmq-broadcasting-example.md b/_docs/13-rmq-broadcasting-example.md
index 63a10fb..ea2b30d 100644
--- a/_docs/13-rmq-broadcasting-example.md
+++ b/_docs/13-rmq-broadcasting-example.md
@@ -7,21 +7,18 @@ modified: 2017-04-24T15:01:43-04:00
 
 {% include toc %}
 
-#### What is Broadcasting
-Broadcasting is when sending a meeage to a topic,all subscribers of the topic will receive the message even if they are in the same consumer group.If you want all subscribers in a group receive all the messages in a topic,broadcasting is a good choice.
+### What is broadcasting
+Broadcasting is sending a message to all subscribers of a topic. If you want all subscribers receive messages about a topic, broadcasting is a good choice.
 
-#### How to use
-
-##### First,Produce message as before
+### Producer example
 
 ```java
-DefaultMQProducer producer = new DefaultMQProducer("ProducerGroupName");
-
-producer.start();
+public class BroadcastProducer {
+    public static void main(String[] args) throws Exception {
+        DefaultMQProducer producer = new DefaultMQProducer("ProducerGroupName");
+        producer.start();
 
-for (int i = 0; i < 10000000; i++){
-    try {
-        {
+        for (int i = 0; i < 100; i++){
             Message msg = new Message("TopicTest",
                 "TagA",
                 "OrderID188",
@@ -29,38 +26,38 @@ for (int i = 0; i < 10000000; i++){
             SendResult sendResult = producer.send(msg);
             System.out.printf("%s%n", sendResult);
         }
-
-    } catch (Exception e) {
-        e.printStackTrace();
+        producer.shutdown();
     }
 }
-producer.shutdown();
 ```
 
-##### Second,Consume message in Broadcast mode
+### Consumer example
 
 ```java
-DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("please_rename_unique_group_name_1");
+public class BroadcastConsumer {
+    public static void main(String[] args) throws Exception {
+        DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("example_group_name");
 
-consumer.setConsumeFromWhere(ConsumeFromWhere.CONSUME_FROM_FIRST_OFFSET);
+        consumer.setConsumeFromWhere(ConsumeFromWhere.CONSUME_FROM_FIRST_OFFSET);
 
-//set to broadcast mode
-consumer.setMessageModel(MessageModel.BROADCASTING);
+        //set to broadcast mode
+        consumer.setMessageModel(MessageModel.BROADCASTING);
 
-consumer.subscribe("TopicTest", "TagA || TagC || TagD");
+        consumer.subscribe("TopicTest", "TagA || TagC || TagD");
 
-consumer.registerMessageListener(new MessageListenerConcurrently() {
+        consumer.registerMessageListener(new MessageListenerConcurrently() {
 
-    @Override
-    public ConsumeConcurrentlyStatus consumeMessage(List<MessageExt> msgs,
-        ConsumeConcurrentlyContext context) {
-        System.out.printf(Thread.currentThread().getName() + " Receive New Messages: " + msgs + "%n");
-        return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;
-    }
-});
+            @Override
+            public ConsumeConcurrentlyStatus consumeMessage(List<MessageExt> msgs,
+                ConsumeConcurrentlyContext context) {
+                System.out.printf(Thread.currentThread().getName() + " Receive New Messages: " + msgs + "%n");
+                return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;
+            }
+        });
 
-consumer.start();
-System.out.printf("Broadcast Consumer Started.%n");
+        consumer.start();
+        System.out.printf("Broadcast Consumer Started.%n");
+    }
+}
 ```
 
-Enjoy it.

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/a84f68da/_docs/14-rmq-deployment.md
----------------------------------------------------------------------
diff --git a/_docs/14-rmq-deployment.md b/_docs/14-rmq-deployment.md
index 3fb000c..9e52422 100644
--- a/_docs/14-rmq-deployment.md
+++ b/_docs/14-rmq-deployment.md
@@ -14,14 +14,14 @@ Before starting this section, make sure you have read Quick Start section, in wh
 
 #### Production-ready Deployment
 ##### Name Server
-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 at least one name server instance alive, the whole cluster remains serving.
+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.
 
-Name server follows share-nothing design paradigm. Brokers send heartbeat data to all name servers. Producers and consumers may query meta data from any one of name servers available while sending / consuming messages.
+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.
 
 #### Broker
 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.
 
-To deploy a high-availability RocketMQ cluster which has no single point of failure, a series of broker sets should be deployed. One 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.
+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.
 
 ### Configuration
 When deploying a RocketMQ cluster, below configurations should be taken into consideration.
@@ -111,11 +111,11 @@ usage: mqadmin clusterList [-h] [-i <arg>] [-m] [-n <arg>]
 ```
 
 ### Replication mode
-With the purpose to guarantee that any successfully published message will not be lost, RocketMQ provides a Replication mode to gain stronger durability and higher availability with two replication way: Sync & Async.
+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 & Async.
 
 ##### Replication: Sync / Async Broker
 
-Similar to many replication system, sync brokers await until commit log is replicated to the slave before acknowledging. Async brokers, instead, return immediately after messages are processed on master.
+Like many replication system, sync brokers wait until commit log is replicated to the slave before acknowledging. Async brokers, instead, return immediately after messages are processed on master.
 
 ##### How to configure
 There are three pre-built configurations shipped with the distribution of RocketMQ under conf folder for your reference:

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/a84f68da/_docs/15-order-message-example .md
----------------------------------------------------------------------
diff --git a/_docs/15-order-message-example .md b/_docs/15-order-message-example .md
index 0375322..a8c2b7a 100644
--- a/_docs/15-order-message-example .md	
+++ b/_docs/15-order-message-example .md	
@@ -9,39 +9,38 @@ modified: 2017-04-24T15:01:43-04:00
 {% include toc %}
 
 
-To send and subscribe to order messages, use Java MQ SDK 1.2.7 and above. The sequential message is a kind of message type which is provided by MQ according to the order, which is suitable for the news release and consumption according to the principle of fifo. 
-
-For more information, please refer to the sequential message file. 
-The global order message and the partition order message send and receive the way to be the same basically, please refer to the following example code specifically. 
+RocketMQ provides ordered messages using FIFO order.
 
+The following example demonstrates sending/recieving of globally and partitionally ordered message.
 #### Send message sample code 
 
 ```java
-try {
-    MQProducer producer = new DefaultMQProducer("please_rename_unique_group_name");
-    producer.start();
-
-    String[] tags = new String[] {"TagA", "TagB", "TagC", "TagD", "TagE"};
-    for (int i = 0; i < 100; i++) {
-        int orderId = i % 10;
-        Message msg =
-            new Message("TopicTestjjj", tags[i % tags.length], "KEY" + i,
-                ("Hello RocketMQ " + i).getBytes(RemotingHelper.DEFAULT_CHARSET));
-        SendResult sendResult = producer.send(msg, new MessageQueueSelector() {
+public class OrderedProducer {
+    public static void main(String[] args) throws Exception {
+        //Instantiate with a producer group name.
+        MQProducer producer = new DefaultMQProducer("example_group_name");
+        //Launch the instance.
+        producer.start();
+        String[] tags = new String[] {"TagA", "TagB", "TagC", "TagD", "TagE"};
+        for (int i = 0; i < 100; i++) {
+            int orderId = i % 10;
+            //Create a message instance, specifying topic, tag and message body.
+            Message msg = new Message("TopicTestjjj", tags[i % tags.length], "KEY" + i,
+                    ("Hello RocketMQ " + i).getBytes(RemotingHelper.DEFAULT_CHARSET));
+            SendResult sendResult = producer.send(msg, new MessageQueueSelector() {
             @Override
             public MessageQueue select(List<MessageQueue> mqs, Message msg, Object arg) {
                 Integer id = (Integer) arg;
                 int index = id % mqs.size();
                 return mqs.get(index);
             }
-        }, orderId);
+            }, orderId);
 
-        System.out.printf("%s%n", sendResult);
+            System.out.printf("%s%n", sendResult);
+        }
+        //server shutdown
+        producer.shutdown();
     }
-
-    producer.shutdown();
-} catch (MQClientException | RemotingException | MQBrokerException | InterruptedException e) {
-    e.printStackTrace();
 }
 ```
 
@@ -49,38 +48,42 @@ try {
 #### Subscription message sample code 
 
 ```java
-DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("please_rename_unique_group_name_3");
-
-consumer.setConsumeFromWhere(ConsumeFromWhere.CONSUME_FROM_FIRST_OFFSET);
-
-consumer.subscribe("TopicTest", "TagA || TagC || TagD");
-
-consumer.registerMessageListener(new MessageListenerOrderly() {
-
-    AtomicLong consumeTimes = new AtomicLong(0);
-    @Override
-    public ConsumeOrderlyStatus consumeMessage(List<MessageExt> msgs,
-                                               ConsumeOrderlyContext context) {
-        context.setAutoCommit(false);
-        System.out.printf(Thread.currentThread().getName() + " Receive New Messages: " + msgs + "%n");
-        this.consumeTimes.incrementAndGet();
-        if ((this.consumeTimes.get() % 2) == 0) {
-            return ConsumeOrderlyStatus.SUCCESS;
-        } else if ((this.consumeTimes.get() % 3) == 0) {
-            return ConsumeOrderlyStatus.ROLLBACK;
-        } else if ((this.consumeTimes.get() % 4) == 0) {
-            return ConsumeOrderlyStatus.COMMIT;
-        } else if ((this.consumeTimes.get() % 5) == 0) {
-            context.setSuspendCurrentQueueTimeMillis(3000);
-            return ConsumeOrderlyStatus.SUSPEND_CURRENT_QUEUE_A_MOMENT;
-        }
-        return ConsumeOrderlyStatus.SUCCESS;
+public class OrderedConsumer {
+    public static void main(String[] args) throws Exception {
+        DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("example_group_name");
 
-    }
-});
+        consumer.setConsumeFromWhere(ConsumeFromWhere.CONSUME_FROM_FIRST_OFFSET);
+
+        consumer.subscribe("TopicTest", "TagA || TagC || TagD");
 
-consumer.start();
+        consumer.registerMessageListener(new MessageListenerOrderly() {
 
-System.out.printf("Consumer Started.%n");
+            AtomicLong consumeTimes = new AtomicLong(0);
+            @Override
+            public ConsumeOrderlyStatus consumeMessage(List<MessageExt> msgs,
+                                                       ConsumeOrderlyContext context) {
+                context.setAutoCommit(false);
+                System.out.printf(Thread.currentThread().getName() + " Receive New Messages: " + msgs + "%n");
+                this.consumeTimes.incrementAndGet();
+                if ((this.consumeTimes.get() % 2) == 0) {
+                    return ConsumeOrderlyStatus.SUCCESS;
+                } else if ((this.consumeTimes.get() % 3) == 0) {
+                    return ConsumeOrderlyStatus.ROLLBACK;
+                } else if ((this.consumeTimes.get() % 4) == 0) {
+                    return ConsumeOrderlyStatus.COMMIT;
+                } else if ((this.consumeTimes.get() % 5) == 0) {
+                    context.setSuspendCurrentQueueTimeMillis(3000);
+                    return ConsumeOrderlyStatus.SUSPEND_CURRENT_QUEUE_A_MOMENT;
+                }
+                return ConsumeOrderlyStatus.SUCCESS;
+
+            }
+        });
+
+        consumer.start();
+
+        System.out.printf("Consumer Started.%n");
+    }
+}
 ```
 

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/a84f68da/_docs/16-rmq-architecture.md
----------------------------------------------------------------------
diff --git a/_docs/16-rmq-architecture.md b/_docs/16-rmq-architecture.md
index fc2774e..0cd352b 100644
--- a/_docs/16-rmq-architecture.md
+++ b/_docs/16-rmq-architecture.md
@@ -13,17 +13,17 @@ modified: 2017-04-24T15:01:43-04:00
 
 # Overview
 
-The greatest innovation of RocketMQ is high throughput, high reliability, and low latency of 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 single Point of Failure. As shown in screenshot below.
+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.
 
 
 
 **NameServer Cluster**
 
-Name Servers provide lightweight service discovery and routing. Each Name Server records full routing information, provides equivalent reading and writing service, and supports fast storage expansion.
+Name Servers provide lightweight service discovery and routing. Each Name Server records full routing information, provides corresponding reading and writing service, and supports fast storage expansion.
 
 **Broker Cluster**
 
-Brokers take care of message storage by providing lightweight TOPIC and QUEUE mechanisms. It supports the Push and Pull modes, fault tolerance mechanism (2 copies or 3 copies), 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 lack in traditional messaging systems.
+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.
 
 **Producer Cluster**
 
@@ -31,17 +31,17 @@ Producers support distributed deployment. Distributed Producers send messages to
 
 **Consumer Cluster**
 
-Consumers support distributed deployment in the Push and Pull models as well. It also supports cluster consumption and message broadcast. It provides real-time message subscription mechanism and can meet most consumer scenarios. 
-RocketMQ’s website provide a quick-start guide[3] for those guys who want to have a try without too much labor.
+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.
 
 # NameServer
 
-NameServer is a little but fully functional server, which mainly includes two features:
+NameServer is a fully functional server, which mainly includes two features:
 
-* Broker Management, **NameServer** accepts the register from Broker cluster and provides heartbeat mechanism to ensure whether a broker is alive.
+* Broker Management, **NameServer** accepts the register from Broker cluster and provides heartbeat mechanism to check whether a broker is alive.
 * Routing Management, each NameServer will hold whole routing info about the broker cluster and the **queue** info for clients query.
 
-As we know, RocketMQ clients(Producer/Consumer) will query the queue routing info from NameServer, but how do the clients find NameServer address?
+As we know, RocketMQ clients(Producer/Consumer) will query the queue routing info from NameServer, but how do clients find NameServer address?
 
 There are four methods to feed NameServer address list to clients:
 

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/a84f68da/_docs/17-rmq-schedule-example.md
----------------------------------------------------------------------
diff --git a/_docs/17-rmq-schedule-example.md b/_docs/17-rmq-schedule-example.md
index a55b46d..e9610ee 100644
--- a/_docs/17-rmq-schedule-example.md
+++ b/_docs/17-rmq-schedule-example.md
@@ -10,8 +10,9 @@ modified: 2017-04-24T15:01:43-04:00
 {% include toc %}
 
 
-### What is mq schedule?
-If you use `DefaultMQPullConsumer` to consume message,you have to fetch message manualy.There are some steps here to achieve this point.But with `MQPullConsumerScheduleService`,you will consume messages easily.
+### What is scheduled message?
+Scheduled messages differ from normal messages such that they won't be delivered until a provided time later.
+If you use `DefaultMQPullConsumer` to consume message, you have to fetch message manually. There are other options availible but  `MQPullConsumerScheduleService` is the easiest.
 
 #### DefaultMQPullConsumer use case
 

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/a84f68da/_docs/18-simple-example.md
----------------------------------------------------------------------
diff --git a/_docs/18-simple-example.md b/_docs/18-simple-example.md
index 92ac35b..f7436b9 100644
--- a/_docs/18-simple-example.md
+++ b/_docs/18-simple-example.md
@@ -9,97 +9,60 @@ modified: 2017-04-24T15:01:43-04:00
 
 {% include toc %}
 
-Use Rocketmq to send ordinary messages have three ways: reliable synchronous transmission, reliable
-asynchronous transmission, one-way (Oneway) send. 
+Use RocketMQ to send messages in three ways: reliable synchronous, reliable
+asynchronous, and one-way transmission. 
 
-This paper introduces the principle of
-each implementation, the use of the scene and the similarities and differences between the
-three implementations, and provides a code example for reference
-Reliable synchronous transmission
-Principle: synchronous transmission refers to the sender of the message issued after the
-data are received after the recipient sends back a packet should be made under the mode of
-communication
-Application scenarios: this way the application of the scene is very extensive, such as
+This page introduces: 
+the use cases, similarities and differences between the three implementations, 
+and a code example for reference.
+
+### Reliable synchronous transmission
+
+Application: Reliable synchronous transmission is used in extensive scenes, such as
 important notification messages, SMS notification, SMS marketing system, etc..
 
 ```java
-public class Producer {
-    public static void main(String[] args) throws MQClientException,
-        InterruptedException {
-         /*
-         * Instantiate with a producer group name.
-         */
+public class SyncProducer {
+    public static void main(String[] args) throws Exception {
+        //Instantiate with a producer group name.
         DefaultMQProducer producer = new
             DefaultMQProducer("please_rename_unique_group_name");
-         /*
-         * Specify name server addresses.
-         * <p/>
-         *
-         * Alternatively, you may specify name server addresses via exporting
-        environmental variable: NAMESRV_ADDR
-         * <pre>
-         * {@code
-         * producer.setNamesrvAddr("name-server1-ip:9876;name-server2-ip:9876");
-         * }
-         * </pre>
-         */
-         /*
-         * Launch the instance.
-         */
+        //Launch the instance.
         producer.start();
-        for (int i = 0; i < 1000; i++) {
-            try {
-                 /*
-                 * Create a message instance, specifying topic, tag and message
-                body.
-                 */
-                Message msg = new Message("TopicTest" /* Topic */,
-                    "TagA" /* Tag */,
-                    ("Hello RocketMQ " +
-                        i).getBytes(RemotingHelper.DEFAULT_CHARSET) /* Message body */
-                );
-                 /*
-                 * Call send message to deliver message to one of brokers.
-                 */
-                SendResult sendResult = producer.send(msg);
-                System.out.printf("%s%n", sendResult);
-            } catch (Exception e) {
-                e.printStackTrace();
-                Thread.sleep(1000);
-            }
+        for (int i = 0; i < 100; i++) {
+            //Create a message instance, specifying topic, tag and message body.
+            Message msg = new Message("TopicTest" /* Topic */,
+                "TagA" /* Tag */,
+                ("Hello RocketMQ " +
+                    i).getBytes(RemotingHelper.DEFAULT_CHARSET) /* Message body */
+            );
+            //Call send message to deliver message to one of brokers.
+            SendResult sendResult = producer.send(msg);
+            System.out.printf("%s%n", sendResult);
         }
-         /*
-         * Shut down once the producer instance is not longer in use.
-         */
+        //Shut down once the producer instance is not longer in use.
         producer.shutdown();
     }
 }
 
 ```
-#### Reliable asynchronous transmission
-Principle: asynchronous transmission refers to the sender sends the data, not the receiver
-back to respond, and then send the next packet communication. Asynchronous send MQ,
-users need to realize asynchronous callback interface (SendCallback), in the implementation
-of asynchronous send message to the application server, without waiting for a response can
-be returned directly to the receiving server, through the callback interface response, and
-response to the server for processing results.
+### Reliable asynchronous transmission
 
-
-Applications: asynchronous transmission is generally used to link time-consuming, RT
-response time sensitive business scenarios, such as user video upload after notification to
-start transcoding, the transcoding after push notification transcoding results.
+Application: asynchronous transmission is generally used to link time-consuming, 
+response time sensitive business scenarios.
 
 ```java
 public class AsyncProducer {
-    public static void main(String[] args) throws MQClientException,
-        InterruptedException, UnsupportedEncodingException {
+    public static void main(String[] args) throws Exception {
+        //Instantiate with a producer group name.
         DefaultMQProducer producer = new DefaultMQProducer("Jodie_Daily_test");
+        //Launch the instance.
         producer.start();
         producer.setRetryTimesWhenSendAsyncFailed(0);
-        for (int i = 0; i < 10000000; i++) {
-            try {
+        for (int i = 0; i < 100; i++) {
                 final int index = i;
-                Message msg = new Message("Jodie_topic_1023",
+                //Create a message instance, specifying topic, tag and message body.
+                Message msg = new Message("TopicTest",
                     "TagA",
                     "OrderID188",
                     "Hello world".getBytes(RemotingHelper.DEFAULT_CHARSET));
@@ -115,73 +78,39 @@ public class AsyncProducer {
                         e.printStackTrace();
                     }
                 });
-            } catch (Exception e) {
-                e.printStackTrace();
-            }
         }
+        //Shut down once the producer instance is not longer in use.
         producer.shutdown();
     }
 }
 ```
 
-Unidirectional (Oneway) transmission
-Principle: one-way (Oneway) to send the message is only responsible for sending the
-message, do not wait for the server to respond and no callback function to trigger, that is,
-send the request does not wait for a reply. The process of sending messages in this way
-takes a very short time, usually at the microsecond level.
-Application scenarios: for some very short, but not high reliability requirements of the scene,
+### One-way transmission
+
+Application: One-way transmission is used for cases requiring moderate reliability,
 such as log collection.
 
 ```java
-public class producerOneWay {
-    public static void main(String[] args) throws MQClientException,
-        InterruptedException, MQClientException {
-         /*
-         * Instantiate with a producer group name.
-         */
-        DefaultMQProducer producer = new
-            DefaultMQProducer("please_rename_unique_group_name");
-         /*
-         * Specify name server addresses.
-         * <p/>
-         *
-         * Alternatively, you may specify name server addresses via exporting
-        environmental variable: NAMESRV_ADDR
-         * <pre>
-         * {@code
-         * producer.setNamesrvAddr("name-server1-ip:9876;name-server2-ip:9876");
-         * }
-         * </pre>
-         */
-         /*
-         * Launch the instance.
-         */
+public class OnewayProducer {
+    public static void main(String[] args) throws Exception{
+        //Instantiate with a producer group name.
+        DefaultMQProducer producer = new DefaultMQProducer("example_group_name");
+        //Launch the instance.
         producer.start();
-        for (int i = 0; i < 1000; i++) {
-            try {
-                 /*
-                 * Create a message instance, specifying topic, tag and message
-                body.
-                 */
-                Message msg = new Message("TopicTest" /* Topic */,
-                    "TagA" /* Tag */,
-                    ("Hello RocketMQ " +
-                        i).getBytes(RemotingHelper.DEFAULT_CHARSET) /* Message body */
-                );
-                 /*
-                 * Call send message to deliver message to one of brokers.
-                 */
-                producer.sendOneway(msg);
-            } catch (Exception e) {
-                e.printStackTrace();
-                Thread.sleep(1000);
-            }
+        for (int i = 0; i < 100; i++) {
+            //Create a message instance, specifying topic, tag and message body.
+            Message msg = new Message("TopicTest" /* Topic */,
+                "TagA" /* Tag */,
+                ("Hello RocketMQ " +
+                    i).getBytes(RemotingHelper.DEFAULT_CHARSET) /* Message body */
+            );
+            //Call send message to deliver message to one of brokers.
+            producer.sendOneway(msg);
+            
         }
-         /*
-         * Shut down once the producer instance is not longer in use.
-         */
+        //Shut down once the producer instance is not longer in use.
         producer.shutdown();
     }
 }
 
-```
\ No newline at end of file
+```

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/a84f68da/_docs/19-filter-by-sql92-example.md
----------------------------------------------------------------------
diff --git a/_docs/19-filter-by-sql92-example.md b/_docs/19-filter-by-sql92-example.md
index 52a28ac..f7bec02 100644
--- a/_docs/19-filter-by-sql92-example.md
+++ b/_docs/19-filter-by-sql92-example.md
@@ -1,11 +1,11 @@
 ---
-title: "Filter By SQL92 Example "
+title: "Filter Example "
 permalink: /docs/filter-by-sql92-example/
 excerpt: "How to filter messages by SQL92 in Apache RocketMQ."
 modified: 2017-04-26T16:35:00-04:00
 ---
 
-In most cases, tag is simple and useful to select message as you want. For example:
+In most cases, tag is a simple and useful design to select message you want. For example:
 
 ```java
 DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("CID_EXAMPLE");
@@ -14,11 +14,11 @@ consumer.subscribe("TOPIC", "TAGA || TAGB || TAGC");
 
 {% include toc %}
 
-Consumer will recieve messages that contains TAGA or TAGB or TAGC. But the limitation is that one message only could has one tag, this may be not suitable for more sophisticated scenarios.At this time, you could use sql expression to select messages.
+The consumer will recieve messages that contains TAGA or TAGB or TAGC. But the limitation is that one message only can have one tag, and this may not work for sophisticated scenarios. In this case, you can use SQL expression to filter out messages.
 
 ### Principle
 
-SQL feature could do some calculation through the properties you put in messages when sending. Under the grammars defined by RocketMQ, you can implement some interesting logic as you want. Here is an example:
+SQL feature could do some calculation through the properties you put in when sending messages. Under the grammars defined by RocketMQ, you can implement some interesting logic. Here is an example:
 
 <pre>
 ------------
@@ -39,38 +39,33 @@ SQL feature could do some calculation through the properties you put in messages
 
 ### Grammars
 
-RocketMQ only defines some basic grammars to support this feature. Not enough ? You could also extend it easily.
+RocketMQ only defines some basic grammars to support this feature. You could also extend it easily.
 
 1. Numeric comparison, like `>`, `>=`, `<`, `<=`, `BETWEEN`, `=`;
 2. Character comparison, like `=`, `<>`, `IN`;
 3. `IS NULL` or `IS NOT NULL`;
-4. Logical `AND`, logical `OR`, logical `NOT`;
+4. Logical `AND`, `OR`, `NOT`;
 
-Constant type are:
+Constant types are:
 
 1. Numeric, like 123, 3.1415;
-2. Character, like 'abc', must be maked with single quotes;
+2. Character, like 'abc', must be made with single quotes;
 3. `NULL`, special constant;
 4. Boolean, `TRUE` or `FALSE`;
 
-### Interface
+### Usage constraints
 
-Only push consumer could select messages by SQL92.The interface is:
+Only push consumer could select messages by SQL92. The interface is:
 
 `public void subscribe(final String topic, final MessageSelector messageSelector)`
 
-### Examples
+### Producer example
 
 You can put properties in message through method `putUserProperty` when sending.
 
 ```java
 DefaultMQProducer producer = new DefaultMQProducer("please_rename_unique_group_name");
-try {
-    producer.start();
-} catch (MQClientException e) {
-    e.printStackTrace();
-    return;
-}
+producer.start();
 
 Message msg = new Message("TopicTest",
     tag,
@@ -84,18 +79,15 @@ SendResult sendResult = producer.send(msg);
 producer.shutdown();
 ```
 
+### Consumer example
+
 Use `MessageSelector.bySql` to select messages through SQL92 when consuming.
 
 ```java
 DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("please_rename_unique_group_name_4");
 
-try {
-	// only subsribe messages have property a, also a >=0 and a <= 3
-    consumer.subscribe("TopicTest", MessageSelector.bySql("a between 0 and 3");
-} catch (MQClientException e) {
-    e.printStackTrace();
-    return;
-}
+// only subsribe messages have property a, also a >=0 and a <= 3
+consumer.subscribe("TopicTest", MessageSelector.bySql("a between 0 and 3");
 
 consumer.registerMessageListener(new MessageListenerConcurrently() {
     @Override

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/a84f68da/home.md
----------------------------------------------------------------------
diff --git a/home.md b/home.md
index f70efeb..2790399 100644
--- a/home.md
+++ b/home.md
@@ -12,29 +12,29 @@ feature_row:
   - image_path: /assets/images/rmq-feature-lowlatency.png
     alt: "Low Latency"
     title: "Low Latency"
-    excerpt: "More than 99.6% response latency within 1 millisecond under high stress."
+    excerpt: "More than 99.6% response latency within 1 millisecond under high pressure."
   - image_path: /assets/images/rmq-feature-finance.png
     alt: "Finance Oriented"
     title: "Finance Oriented"
-    excerpt: "High availability with tracking and auditing characteristics."
+    excerpt: "High availability with tracking and auditing features."
+  - image_path: /assets/images/rmq-feature-industry.png
+    alt: "Industry Sustainable"
+    title: "Industry Sustainable"
+    excerpt: "Trillion-level message capacity guaranteed."
+
+feature_row1:
+  - image_path: /assets/images/rmq-feature-neutral.png
+    alt: "Vendor Neutral"
+    title: "Vendor Neutral"
+    excerpt: "A new open distributed messaging and streaming standard since latest 4.1 version."
   - image_path: /assets/images/rmq-feature-bigdata.png
     alt: "BigData Friendly"
     title: "BigData Friendly"
     excerpt: "Batch transferring with versatile integration for flooding throughput."
-
-feature_row1:
-  - image_path: /assets/images/rmq-feature-industry.png
-    alt: "Industry Sustainable"
-    title: "Industry Sustainable"
-    excerpt: "Trillions of messages capacity guarantee especially in 11.11 Global Shopping Festival."
   - image_path: /assets/images/rmq-feature-massiveaccumulation.png
     alt: "Massive Accumulation"
     title: "Massive Accumulation"
-    excerpt: "Accumulate messages as long as having enough disk without performance loss."
-  - image_path: /assets/images/rmq-feature-neutral.png
-    alt: "Vendor Neutral"
-    title: "Vendor Neutral"
-    excerpt: "A new open distributed messaging and streaming standard since latest 4.x version."
+    excerpt: "Given sufficient disk space, accumulate messages without performance loss."
 ---
 
 {% include feature_row %}


[2/4] incubator-rocketmq-site git commit: Merge branch 'master' into asf-site

Posted by do...@apache.org.
Merge branch 'master' into asf-site


Project: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/commit/a496c5a6
Tree: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/tree/a496c5a6
Diff: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/diff/a496c5a6

Branch: refs/heads/asf-site
Commit: a496c5a6eac421017626ec48ea46e172f18950c5
Parents: ee0ec5a a84f68d
Author: dongeforever <do...@apache.org>
Authored: Tue Jun 6 21:20:10 2017 +0800
Committer: dongeforever <do...@apache.org>
Committed: Tue Jun 6 21:20:10 2017 +0800

----------------------------------------------------------------------
 _data/navigation.yml                   |   4 +-
 _docs/01-quick-start-guide.md          |   7 +-
 _docs/02-motivation.md                 |  10 +-
 _docs/04-cli-admin-tool.md             |   2 +-
 _docs/07-frequently-asked-questions.md |  12 +-
 _docs/12-rmq-batch-example.md          |  27 ++---
 _docs/13-rmq-broadcasting-example.md   |  61 +++++-----
 _docs/14-rmq-deployment.md             |  10 +-
 _docs/15-order-message-example .md     | 105 ++++++++--------
 _docs/16-rmq-architecture.md           |  16 +--
 _docs/17-rmq-schedule-example.md       |   5 +-
 _docs/18-simple-example.md             | 179 +++++++++-------------------
 _docs/19-filter-by-sql92-example.md    |  40 +++----
 home.md                                |  26 ++--
 14 files changed, 209 insertions(+), 295 deletions(-)
----------------------------------------------------------------------



[3/4] incubator-rocketmq-site git commit: Build

Posted by do...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/94c21bba/content/docs/order-example/index.html
----------------------------------------------------------------------
diff --git a/content/docs/order-example/index.html b/content/docs/order-example/index.html
index feb6542..9806af6 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-02T15:31:28+08:00">
+  <meta property="article:published_time" content="2017-06-06T21:20:18+08:00">
 
 
 
@@ -183,7 +183,7 @@
             
             
 
-            <li><a href="/docs/quick-start/" class="">Quick Start</a></li>
+            <li><a href="/docs/motivation/" class="">Why RocketMQ</a></li>
           
             
             
@@ -191,7 +191,7 @@
             
             
 
-            <li><a href="/docs/motivation/" class="">Why RocketMQ</a></li>
+            <li><a href="/docs/quick-start/" class="">Quick Start</a></li>
           
             
             
@@ -429,7 +429,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
     <meta itemprop="headline" content="Order Message">
     <meta itemprop="description" content="How to send and receive ordered messages in Apache RocketMQ.">
-    <meta itemprop="datePublished" content="June 02, 2017">
+    <meta itemprop="datePublished" content="June 06, 2017">
     <meta itemprop="dateModified" content="April 25, 2017">
 
     <div class="page__inner-wrap">
@@ -453,77 +453,80 @@
   </nav>
 </aside>
 
-<p>To send and subscribe to order messages, use Java MQ SDK 1.2.7 and above. The sequential message is a kind of message type which is provided by MQ according to the order, which is suitable for the news release and consumption according to the principle of fifo.</p>
-
-<p>For more information, please refer to the sequential message file. 
-The global order message and the partition order message send and receive the way to be the same basically, please refer to the following example code specifically.</p>
+<p>RocketMQ provides ordered messages using FIFO order.</p>
 
+<p>The following example demonstrates sending/recieving of globally and partitionally ordered message.</p>
 <h4 id="send-message-sample-code">Send message sample code</h4>
 
-<div class="language-java highlighter-rouge"><pre class="highlight"><code><span class="k">try</span> <span class="o">{</span>
-    <span class="n">MQProducer</span> <span class="n">producer</span> <span class="o">=</span> <span class="k">new</span> <span class="n">DefaultMQProducer</span><span class="o">(</span><span class="s">"please_rename_unique_group_name"</span><span class="o">);</span>
-    <span class="n">producer</span><span class="o">.</span><span class="na">start</span><span class="o">();</span>
-
-    <span class="n">String</span><span class="o">[]</span> <span class="n">tags</span> <span class="o">=</span> <span class="k">new</span> <span class="n">String</span><span class="o">[]</span> <span class="o">{</span><span class="s">"TagA"</span><span class="o">,</span> <span class="s">"TagB"</span><span class="o">,</span> <span class="s">"TagC"</span><span class="o">,</span> <span class="s">"TagD"</span><span class="o">,</span> <span class="s">"TagE"</span><span class="o">};</span>
-    <span class="k">for</span> <span class="o">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="mi">100</span><span class="o">;</span> <span class="n">i</span><span class="o">++)</span> <span class="o">{</span>
-        <span class="kt">int</span> <span class="n">orderId</span> <span class="o">=</span> <span class="n">i</span> <span class="o">%</span> <span class="mi">10</span><span class="o">;</span>
-        <span class="n">Message</span> <span class="n">msg</span> <span class="o">=</span>
-            <span class="k">new</span> <span class="nf">Message</span><span class="o">(</span><span class="s">"TopicTestjjj"</span><span class="o">,</span> <span class="n">tags</span><span class="o">[</span><span class="n">i</span> <span class="o">%</span> <span class="n">tags</span><span class="o">.</span><span class="na">length</span><span class="o">],</span> <span class="s">"KEY"</span> <span class="o">+</span> <span class="n">i</span><span class="o">,</span>
-                <span class="o">(</span><span class="s">"Hello RocketMQ "</span> <span class="o">+</span> <span class="n">i</span><span class="o">).</span><span class="na">getBytes</span><span class="o">(</span><span class="n">RemotingHelper</span><span class="o">.</span><span class="na">DEFAULT_CHARSET</span><span class="o">));</span>
-        <span class="n">SendResult</span> <span class="n">sendResult</span> <span class="o">=</span> <span class="n">producer</span><span class="o">.</span><span class="na">send</span><span class="o">(</span><span class="n">msg</span><span class="o">,</span> <span class="k">new</span> <span class="n">MessageQueueSelector</span><span class="o">()</span> <span class="o">{</span>
+<div class="language-java highlighter-rouge"><pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="nc">OrderedProducer</span> <span class="o">{</span>
+    <span class="kd">public</span> <span class="kd">static</span> <span class="kt">void</span> <span class="nf">main</span><span class="o">(</span><span class="n">String</span><span class="o">[]</span> <span class="n">args</span><span class="o">)</span> <span class="kd">throws</span> <span class="n">Exception</span> <span class="o">{</span>
+        <span class="c1">//Instantiate with a producer group name.</span>
+        <span class="n">MQProducer</span> <span class="n">producer</span> <span class="o">=</span> <span class="k">new</span> <span class="n">DefaultMQProducer</span><span class="o">(</span><span class="s">"example_group_name"</span><span class="o">);</span>
+        <span class="c1">//Launch the instance.</span>
+        <span class="n">producer</span><span class="o">.</span><span class="na">start</span><span class="o">();</span>
+        <span class="n">String</span><span class="o">[]</span> <span class="n">tags</span> <span class="o">=</span> <span class="k">new</span> <span class="n">String</span><span class="o">[]</span> <span class="o">{</span><span class="s">"TagA"</span><span class="o">,</span> <span class="s">"TagB"</span><span class="o">,</span> <span class="s">"TagC"</span><span class="o">,</span> <span class="s">"TagD"</span><span class="o">,</span> <span class="s">"TagE"</span><span class="o">};</span>
+        <span class="k">for</span> <span class="o">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="mi">100</span><span class="o">;</span> <span class="n">i</span><span class="o">++)</span> <span class="o">{</span>
+            <span class="kt">int</span> <span class="n">orderId</span> <span class="o">=</span> <span class="n">i</span> <span class="o">%</span> <span class="mi">10</span><span class="o">;</span>
+            <span class="c1">//Create a message instance, specifying topic, tag and message body.</span>
+            <span class="n">Message</span> <span class="n">msg</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Message</span><span class="o">(</span><span class="s">"TopicTestjjj"</span><span class="o">,</span> <span class="n">tags</span><span class="o">[</span><span class="n">i</span> <span class="o">%</span> <span class="n">tags</span><span class="o">.</span><span class="na">length</span><span class="o">],</span> <span class="s">"KEY"</span> <span class="o">+</span> <span class="n">i</span><span class="o">,</span>
+                    <span class="o">(</span><span class="s">"Hello RocketMQ "</span> <span class="o">+</span> <span class="n">i</span><span class="o">).</span><span class="na">getBytes</span><span class="o">(</span><span class="n">RemotingHelper</span><span class="o">.</span><span class="na">DEFAULT_CHARSET</span><span class="o">));</span>
+            <span class="n">SendResult</span> <span class="n">sendResult</span> <span class="o">=</span> <span class="n">producer</span><span class="o">.</span><span class="na">send</span><span class="o">(</span><span class="n">msg</span><span class="o">,</span> <span class="k">new</span> <span class="n">MessageQueueSelector</span><span class="o">()</span> <span class="o">{</span>
             <span class="nd">@Override</span>
             <span class="kd">public</span> <span class="n">MessageQueue</span> <span class="nf">select</span><span class="o">(</span><span class="n">List</span><span class="o">&lt;</span><span class="n">MessageQueue</span><span class="o">&gt;</span> <span class="n">mqs</span><span class="o">,</span> <span class="n">Message</span> <span class="n">msg</span><span class="o">,</span> <span class="n">Object</span> <span class="n">arg</span><span class="o">)</span> <span class="o">{</span>
                 <span class="n">Integer</span> <span class="n">id</span> <span class="o">=</span> <span class="o">(</span><span class="n">Integer</span><span class="o">)</span> <span class="n">arg</span><span class="o">;</span>
                 <span class="kt">int</span> <span class="n">index</span> <span class="o">=</span> <span class="n">id</span> <span class="o">%</span> <span class="n">mqs</span><span class="o">.</span><span class="na">size</span><span class="o">();</span>
                 <span class="k">return</span> <span class="n">mqs</span><span class="o">.</span><span class="na">get</span><span class="o">(</span><span class="n">index</span><span class="o">);</span>
             <span class="o">}</span>
-        <span class="o">},</span> <span class="n">orderId</span><span class="o">);</span>
+            <span class="o">},</span> <span class="n">orderId</span><span class="o">);</span>
 
-        <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">printf</span><span class="o">(</span><span class="s">"%s%n"</span><span class="o">,</span> <span class="n">sendResult</span><span class="o">);</span>
+            <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">printf</span><span class="o">(</span><span class="s">"%s%n"</span><span class="o">,</span> <span class="n">sendResult</span><span class="o">);</span>
+        <span class="o">}</span>
+        <span class="c1">//server shutdown</span>
+        <span class="n">producer</span><span class="o">.</span><span class="na">shutdown</span><span class="o">();</span>
     <span class="o">}</span>
-
-    <span class="n">producer</span><span class="o">.</span><span class="na">shutdown</span><span class="o">();</span>
-<span class="o">}</span> <span class="k">catch</span> <span class="o">(</span><span class="n">MQClientException</span> <span class="o">|</span> <span class="n">RemotingException</span> <span class="o">|</span> <span class="n">MQBrokerException</span> <span class="o">|</span> <span class="n">InterruptedException</span> <span class="n">e</span><span class="o">)</span> <span class="o">{</span>
-    <span class="n">e</span><span class="o">.</span><span class="na">printStackTrace</span><span class="o">();</span>
 <span class="o">}</span>
 </code></pre>
 </div>
 
 <h4 id="subscription-message-sample-code">Subscription message sample code</h4>
 
-<div class="language-java highlighter-rouge"><pre class="highlight"><code><span class="n">DefaultMQPushConsumer</span> <span class="n">consumer</span> <span class="o">=</span> <span class="k">new</span> <span class="n">DefaultMQPushConsumer</span><span class="o">(</span><span class="s">"please_rename_unique_group_name_3"</span><span class="o">);</span>
-
-<span class="n">consumer</span><span class="o">.</span><span class="na">setConsumeFromWhere</span><span class="o">(</span><span class="n">ConsumeFromWhere</span><span class="o">.</span><span class="na">CONSUME_FROM_FIRST_OFFSET</span><span class="o">);</span>
-
-<span class="n">consumer</span><span class="o">.</span><span class="na">subscribe</span><span class="o">(</span><span class="s">"TopicTest"</span><span class="o">,</span> <span class="s">"TagA || TagC || TagD"</span><span class="o">);</span>
-
-<span class="n">consumer</span><span class="o">.</span><span class="na">registerMessageListener</span><span class="o">(</span><span class="k">new</span> <span class="n">MessageListenerOrderly</span><span class="o">()</span> <span class="o">{</span>
-
-    <span class="n">AtomicLong</span> <span class="n">consumeTimes</span> <span class="o">=</span> <span class="k">new</span> <span class="n">AtomicLong</span><span class="o">(</span><span class="mi">0</span><span class="o">);</span>
-    <span class="nd">@Override</span>
-    <span class="kd">public</span> <span class="n">ConsumeOrderlyStatus</span> <span class="nf">consumeMessage</span><span class="o">(</span><span class="n">List</span><span class="o">&lt;</span><span class="n">MessageExt</span><span class="o">&gt;</span> <span class="n">msgs</span><span class="o">,</span>
-                                               <span class="n">ConsumeOrderlyContext</span> <span class="n">context</span><span class="o">)</span> <span class="o">{</span>
-        <span class="n">context</span><span class="o">.</span><span class="na">setAutoCommit</span><span class="o">(</span><span class="kc">false</span><span class="o">);</span>
-        <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">printf</span><span class="o">(</span><span class="n">Thread</span><span class="o">.</span><span class="na">currentThread</span><span class="o">().</span><span class="na">getName</span><span class="o">()</span> <span class="o">+</span> <span class="s">" Receive New Messages: "</span> <span class="o">+</span> <span class="n">msgs</span> <span class="o">+</span> <span class="s">"%n"</span><span class="o">);</span>
-        <span class="k">this</span><span class="o">.</span><span class="na">consumeTimes</span><span class="o">.</span><span class="na">incrementAndGet</span><span class="o">();</span>
-        <span class="k">if</span> <span class="o">((</span><span class="k">this</span><span class="o">.</span><span class="na">consumeTimes</span><span class="o">.</span><span class="na">get</span><span class="o">()</span> <span class="o">%</span> <span class="mi">2</span><span class="o">)</span> <span class="o">==</span> <span class="mi">0</span><span class="o">)</span> <span class="o">{</span>
-            <span class="k">return</span> <span class="n">ConsumeOrderlyStatus</span><span class="o">.</span><span class="na">SUCCESS</span><span class="o">;</span>
-        <span class="o">}</span> <span class="k">else</span> <span class="k">if</span> <span class="o">((</span><span class="k">this</span><span class="o">.</span><span class="na">consumeTimes</span><span class="o">.</span><span class="na">get</span><span class="o">()</span> <span class="o">%</span> <span class="mi">3</span><span class="o">)</span> <span class="o">==</span> <span class="mi">0</span><span class="o">)</span> <span class="o">{</span>
-            <span class="k">return</span> <span class="n">ConsumeOrderlyStatus</span><span class="o">.</span><span class="na">ROLLBACK</span><span class="o">;</span>
-        <span class="o">}</span> <span class="k">else</span> <span class="k">if</span> <span class="o">((</span><span class="k">this</span><span class="o">.</span><span class="na">consumeTimes</span><span class="o">.</span><span class="na">get</span><span class="o">()</span> <span class="o">%</span> <span class="mi">4</span><span class="o">)</span> <span class="o">==</span> <span class="mi">0</span><span class="o">)</span> <span class="o">{</span>
-            <span class="k">return</span> <span class="n">ConsumeOrderlyStatus</span><span class="o">.</span><span class="na">COMMIT</span><span class="o">;</span>
-        <span class="o">}</span> <span class="k">else</span> <span class="k">if</span> <span class="o">((</span><span class="k">this</span><span class="o">.</span><span class="na">consumeTimes</span><span class="o">.</span><span class="na">get</span><span class="o">()</span> <span class="o">%</span> <span class="mi">5</span><span class="o">)</span> <span class="o">==</span> <span class="mi">0</span><span class="o">)</span> <span class="o">{</span>
-            <span class="n">context</span><span class="o">.</span><span class="na">setSuspendCurrentQueueTimeMillis</span><span class="o">(</span><span class="mi">3000</span><span class="o">);</span>
-            <span class="k">return</span> <span class="n">ConsumeOrderlyStatus</span><span class="o">.</span><span class="na">SUSPEND_CURRENT_QUEUE_A_MOMENT</span><span class="o">;</span>
-        <span class="o">}</span>
-        <span class="k">return</span> <span class="n">ConsumeOrderlyStatus</span><span class="o">.</span><span class="na">SUCCESS</span><span class="o">;</span>
+<div class="language-java highlighter-rouge"><pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="nc">OrderedConsumer</span> <span class="o">{</span>
+    <span class="kd">public</span> <span class="kd">static</span> <span class="kt">void</span> <span class="nf">main</span><span class="o">(</span><span class="n">String</span><span class="o">[]</span> <span class="n">args</span><span class="o">)</span> <span class="kd">throws</span> <span class="n">Exception</span> <span class="o">{</span>
+        <span class="n">DefaultMQPushConsumer</span> <span class="n">consumer</span> <span class="o">=</span> <span class="k">new</span> <span class="n">DefaultMQPushConsumer</span><span class="o">(</span><span class="s">"example_group_name"</span><span class="o">);</span>
 
-    <span class="o">}</span>
-<span class="o">});</span>
+        <span class="n">consumer</span><span class="o">.</span><span class="na">setConsumeFromWhere</span><span class="o">(</span><span class="n">ConsumeFromWhere</span><span class="o">.</span><span class="na">CONSUME_FROM_FIRST_OFFSET</span><span class="o">);</span>
 
-<span class="n">consumer</span><span class="o">.</span><span class="na">start</span><span class="o">();</span>
+        <span class="n">consumer</span><span class="o">.</span><span class="na">subscribe</span><span class="o">(</span><span class="s">"TopicTest"</span><span class="o">,</span> <span class="s">"TagA || TagC || TagD"</span><span class="o">);</span>
 
-<span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">printf</span><span class="o">(</span><span class="s">"Consumer Started.%n"</span><span class="o">);</span>
+        <span class="n">consumer</span><span class="o">.</span><span class="na">registerMessageListener</span><span class="o">(</span><span class="k">new</span> <span class="n">MessageListenerOrderly</span><span class="o">()</span> <span class="o">{</span>
+
+            <span class="n">AtomicLong</span> <span class="n">consumeTimes</span> <span class="o">=</span> <span class="k">new</span> <span class="n">AtomicLong</span><span class="o">(</span><span class="mi">0</span><span class="o">);</span>
+            <span class="nd">@Override</span>
+            <span class="kd">public</span> <span class="n">ConsumeOrderlyStatus</span> <span class="nf">consumeMessage</span><span class="o">(</span><span class="n">List</span><span class="o">&lt;</span><span class="n">MessageExt</span><span class="o">&gt;</span> <span class="n">msgs</span><span class="o">,</span>
+                                                       <span class="n">ConsumeOrderlyContext</span> <span class="n">context</span><span class="o">)</span> <span class="o">{</span>
+                <span class="n">context</span><span class="o">.</span><span class="na">setAutoCommit</span><span class="o">(</span><span class="kc">false</span><span class="o">);</span>
+                <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">printf</span><span class="o">(</span><span class="n">Thread</span><span class="o">.</span><span class="na">currentThread</span><span class="o">().</span><span class="na">getName</span><span class="o">()</span> <span class="o">+</span> <span class="s">" Receive New Messages: "</span> <span class="o">+</span> <span class="n">msgs</span> <span class="o">+</span> <span class="s">"%n"</span><span class="o">);</span>
+                <span class="k">this</span><span class="o">.</span><span class="na">consumeTimes</span><span class="o">.</span><span class="na">incrementAndGet</span><span class="o">();</span>
+                <span class="k">if</span> <span class="o">((</span><span class="k">this</span><span class="o">.</span><span class="na">consumeTimes</span><span class="o">.</span><span class="na">get</span><span class="o">()</span> <span class="o">%</span> <span class="mi">2</span><span class="o">)</span> <span class="o">==</span> <span class="mi">0</span><span class="o">)</span> <span class="o">{</span>
+                    <span class="k">return</span> <span class="n">ConsumeOrderlyStatus</span><span class="o">.</span><span class="na">SUCCESS</span><span class="o">;</span>
+                <span class="o">}</span> <span class="k">else</span> <span class="k">if</span> <span class="o">((</span><span class="k">this</span><span class="o">.</span><span class="na">consumeTimes</span><span class="o">.</span><span class="na">get</span><span class="o">()</span> <span class="o">%</span> <span class="mi">3</span><span class="o">)</span> <span class="o">==</span> <span class="mi">0</span><span class="o">)</span> <span class="o">{</span>
+                    <span class="k">return</span> <span class="n">ConsumeOrderlyStatus</span><span class="o">.</span><span class="na">ROLLBACK</span><span class="o">;</span>
+                <span class="o">}</span> <span class="k">else</span> <span class="k">if</span> <span class="o">((</span><span class="k">this</span><span class="o">.</span><span class="na">consumeTimes</span><span class="o">.</span><span class="na">get</span><span class="o">()</span> <span class="o">%</span> <span class="mi">4</span><span class="o">)</span> <span class="o">==</span> <span class="mi">0</span><span class="o">)</span> <span class="o">{</span>
+                    <span class="k">return</span> <span class="n">ConsumeOrderlyStatus</span><span class="o">.</span><span class="na">COMMIT</span><span class="o">;</span>
+                <span class="o">}</span> <span class="k">else</span> <span class="k">if</span> <span class="o">((</span><span class="k">this</span><span class="o">.</span><span class="na">consumeTimes</span><span class="o">.</span><span class="na">get</span><span class="o">()</span> <span class="o">%</span> <span class="mi">5</span><span class="o">)</span> <span class="o">==</span> <span class="mi">0</span><span class="o">)</span> <span class="o">{</span>
+                    <span class="n">context</span><span class="o">.</span><span class="na">setSuspendCurrentQueueTimeMillis</span><span class="o">(</span><span class="mi">3000</span><span class="o">);</span>
+                    <span class="k">return</span> <span class="n">ConsumeOrderlyStatus</span><span class="o">.</span><span class="na">SUSPEND_CURRENT_QUEUE_A_MOMENT</span><span class="o">;</span>
+                <span class="o">}</span>
+                <span class="k">return</span> <span class="n">ConsumeOrderlyStatus</span><span class="o">.</span><span class="na">SUCCESS</span><span class="o">;</span>
+
+            <span class="o">}</span>
+        <span class="o">});</span>
+
+        <span class="n">consumer</span><span class="o">.</span><span class="na">start</span><span class="o">();</span>
+
+        <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">printf</span><span class="o">(</span><span class="s">"Consumer Started.%n"</span><span class="o">);</span>
+    <span class="o">}</span>
+<span class="o">}</span>
 </code></pre>
 </div>
 

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/94c21bba/content/docs/pull-request/index.html
----------------------------------------------------------------------
diff --git a/content/docs/pull-request/index.html b/content/docs/pull-request/index.html
index 44e71b1..c533a25 100644
--- a/content/docs/pull-request/index.html
+++ b/content/docs/pull-request/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-06-02T15:31:28+08:00">
+  <meta property="article:published_time" content="2017-06-06T21:20:18+08:00">
 
 
 
@@ -183,7 +183,7 @@
             
             
 
-            <li><a href="/docs/quick-start/" class="">Quick Start</a></li>
+            <li><a href="/docs/motivation/" class="">Why RocketMQ</a></li>
           
             
             
@@ -191,7 +191,7 @@
             
             
 
-            <li><a href="/docs/motivation/" class="">Why RocketMQ</a></li>
+            <li><a href="/docs/quick-start/" class="">Quick Start</a></li>
           
             
             
@@ -429,7 +429,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
     <meta itemprop="headline" content="Best Practice in Pull Request">
     <meta itemprop="description" content="This page guides you through Git setup and contribution process.">
-    <meta itemprop="datePublished" content="June 02, 2017">
+    <meta itemprop="datePublished" content="June 06, 2017">
     <meta itemprop="dateModified" content="December 25, 2016">
 
     <div class="page__inner-wrap">

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/94c21bba/content/docs/quick-start/index.html
----------------------------------------------------------------------
diff --git a/content/docs/quick-start/index.html b/content/docs/quick-start/index.html
index 51b337f..42f7f5b 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-02T15:31:28+08:00">
+  <meta property="article:published_time" content="2017-06-06T21:20:18+08:00">
 
 
 
@@ -183,7 +183,7 @@
             
             
 
-            <li><a href="/docs/quick-start/" class="active">Quick Start</a></li>
+            <li><a href="/docs/motivation/" class="">Why RocketMQ</a></li>
           
             
             
@@ -191,7 +191,7 @@
             
             
 
-            <li><a href="/docs/motivation/" class="">Why RocketMQ</a></li>
+            <li><a href="/docs/quick-start/" class="active">Quick Start</a></li>
           
             
             
@@ -429,7 +429,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
     <meta itemprop="headline" content="Quick Start">
     <meta itemprop="description" content="How to quickly install and setup Apache RocketMQ.">
-    <meta itemprop="datePublished" content="June 02, 2017">
+    <meta itemprop="datePublished" content="June 06, 2017">
     <meta itemprop="dateModified" content="December 30, 2016">
 
     <div class="page__inner-wrap">
@@ -442,7 +442,7 @@
       
 
       <section class="page__content" itemprop="text">
-        <p>This quick start guide is to give detailed instructions, helping you setup RocketMQ messaging system on a single local machine and send/receive the very first message.</p>
+        <p>This quick start guide is a detailed instruction of setting up RocketMQ messaging system on a local machine and sending/receiving messages.</p>
 
 <aside class="sidebar__right">
 <nav class="toc">
@@ -493,11 +493,10 @@
   The broker[%s, 172.30.30.233:10911] boot success...
 </code></pre>
 </div>
-<p>you may need to pay attention to the broker ip, for that the broker will not use the loopback network interface, So you should make sure you have connected to other network.</p>
 
 <h1 id="send--receive-messages">Send &amp; Receive Messages</h1>
 
-<p>Before sending/receiving messages, we need to tell clients where name servers are located. RocketMQ provides multiple ways to achieve this. For simplicity, we use environment variable <code class="highlighter-rouge">NAMESRV_ADDR</code></p>
+<p>Before sending/receiving messages, we need to tell clients the location of name servers. RocketMQ provides multiple ways to achieve this. For simplicity, we use environment variable <code class="highlighter-rouge">NAMESRV_ADDR</code></p>
 
 <div class="language-shell highlighter-rouge"><pre class="highlight"><code> &gt; <span class="nb">export </span><span class="nv">NAMESRV_ADDR</span><span class="o">=</span>localhost:9876
  &gt; sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/94c21bba/content/docs/release-manual.html
----------------------------------------------------------------------
diff --git a/content/docs/release-manual.html b/content/docs/release-manual.html
index a0b8d87..282f62d 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-02T15:31:28+08:00">
+  <meta property="article:published_time" content="2017-06-06T21:20:18+08:00">
 
 
 
@@ -183,7 +183,7 @@
             
             
 
-            <li><a href="/docs/quick-start/" class="">Quick Start</a></li>
+            <li><a href="/docs/motivation/" class="">Why RocketMQ</a></li>
           
             
             
@@ -191,7 +191,7 @@
             
             
 
-            <li><a href="/docs/motivation/" class="">Why RocketMQ</a></li>
+            <li><a href="/docs/quick-start/" class="">Quick Start</a></li>
           
             
             
@@ -429,7 +429,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
     <meta itemprop="headline" content="Release Manual">
     <meta itemprop="description" content="Apache RocketMQ Release Manual">
-    <meta itemprop="datePublished" content="June 02, 2017">
+    <meta itemprop="datePublished" content="June 06, 2017">
     <meta itemprop="dateModified" content="February 08, 2017">
 
     <div class="page__inner-wrap">

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/94c21bba/content/docs/rmq-arc/index.html
----------------------------------------------------------------------
diff --git a/content/docs/rmq-arc/index.html b/content/docs/rmq-arc/index.html
index 2f19145..286062a 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-02T15:31:28+08:00">
+  <meta property="article:published_time" content="2017-06-06T21:20:18+08:00">
 
 
 
@@ -183,7 +183,7 @@
             
             
 
-            <li><a href="/docs/quick-start/" class="">Quick Start</a></li>
+            <li><a href="/docs/motivation/" class="">Why RocketMQ</a></li>
           
             
             
@@ -191,7 +191,7 @@
             
             
 
-            <li><a href="/docs/motivation/" class="">Why RocketMQ</a></li>
+            <li><a href="/docs/quick-start/" class="">Quick Start</a></li>
           
             
             
@@ -429,7 +429,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
     <meta itemprop="headline" content="RocketMQ Architecture">
     <meta itemprop="description" content="The main Architecture of Apache RocketMQ.">
-    <meta itemprop="datePublished" content="June 02, 2017">
+    <meta itemprop="datePublished" content="June 06, 2017">
     <meta itemprop="dateModified" content="April 25, 2017">
 
     <div class="page__inner-wrap">
@@ -458,15 +458,15 @@
 
 <h1 id="overview">Overview</h1>
 
-<p>The greatest innovation of RocketMQ is high throughput, high reliability, and low latency of 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 single Point of Failure. As shown in screenshot below.</p>
+<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><strong>NameServer Cluster</strong></p>
 
-<p>Name Servers provide lightweight service discovery and routing. Each Name Server records full routing information, provides equivalent reading and writing service, and supports fast storage expansion.</p>
+<p>Name Servers provide lightweight service discovery and routing. Each Name Server records full routing information, provides corresponding reading and writing service, and supports fast storage expansion.</p>
 
 <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 modes, fault tolerance mechanism (2 copies or 3 copies), 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 lack in traditional messaging systems.</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><strong>Producer Cluster</strong></p>
 
@@ -474,19 +474,19 @@
 
 <p><strong>Consumer Cluster</strong></p>
 
-<p>Consumers support distributed deployment in the Push and Pull models as well. It also supports cluster consumption and message broadcast. It provides real-time message subscription mechanism and can meet most consumer scenarios. 
-RocketMQ’s website provide a quick-start guide[3] for those guys who want to have a try without too much labor.</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>
 
 <h1 id="nameserver">NameServer</h1>
 
-<p>NameServer is a little but fully functional server, which mainly includes two features:</p>
+<p>NameServer is a fully functional server, which mainly includes two features:</p>
 
 <ul>
-  <li>Broker Management, <strong>NameServer</strong> accepts the register from Broker cluster and provides heartbeat mechanism to ensure whether a broker is alive.</li>
+  <li>Broker Management, <strong>NameServer</strong> accepts the register from Broker cluster and provides heartbeat mechanism to check whether a broker is alive.</li>
   <li>Routing Management, each NameServer will hold whole routing info about the broker cluster and the <strong>queue</strong> info for clients query.</li>
 </ul>
 
-<p>As we know, RocketMQ clients(Producer/Consumer) will query the queue routing info from NameServer, but how do the clients find NameServer address?</p>
+<p>As we know, RocketMQ clients(Producer/Consumer) will query the queue routing info from NameServer, but how do clients find NameServer address?</p>
 
 <p>There are four methods to feed NameServer address list to clients:</p>
 

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/94c21bba/content/docs/rmq-deployment/index.html
----------------------------------------------------------------------
diff --git a/content/docs/rmq-deployment/index.html b/content/docs/rmq-deployment/index.html
index 46a0c88..c526bd3 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-02T15:31:28+08:00">
+  <meta property="article:published_time" content="2017-06-06T21:20:18+08:00">
 
 
 
@@ -183,7 +183,7 @@
             
             
 
-            <li><a href="/docs/quick-start/" class="">Quick Start</a></li>
+            <li><a href="/docs/motivation/" class="">Why RocketMQ</a></li>
           
             
             
@@ -191,7 +191,7 @@
             
             
 
-            <li><a href="/docs/motivation/" class="">Why RocketMQ</a></li>
+            <li><a href="/docs/quick-start/" class="">Quick Start</a></li>
           
             
             
@@ -429,7 +429,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
     <meta itemprop="headline" content="Deployment">
     <meta itemprop="description" content="How to deploy the Apache RocketMQ.">
-    <meta itemprop="datePublished" content="June 02, 2017">
+    <meta itemprop="datePublished" content="June 06, 2017">
     <meta itemprop="dateModified" content="April 25, 2017">
 
     <div class="page__inner-wrap">
@@ -481,14 +481,14 @@
 
 <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 at least one name server instance alive, the whole cluster remains serving.</p>
+<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>Name server follows share-nothing design paradigm. Brokers send heartbeat data to all name servers. Producers and consumers may query meta data from any one of name servers available while sending / consuming messages.</p>
+<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>
 
 <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. One 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 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>
 
 <h3 id="configuration">Configuration</h3>
 <p>When deploying a RocketMQ cluster, below configurations should be taken into consideration.</p>
@@ -639,11 +639,11 @@ If you want to get more information about a specific command like ‘clusterList
 </div>
 
 <h3 id="replication-mode">Replication mode</h3>
-<p>With the purpose to guarantee that any successfully published message will not be lost, RocketMQ provides a Replication mode to gain stronger durability and higher availability with two replication way: Sync &amp; Async.</p>
+<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>
 
 <h5 id="replication-sync--async-broker">Replication: Sync / Async Broker</h5>
 
-<p>Similar to many replication system, sync brokers await until commit log is replicated to the slave before acknowledging. Async brokers, instead, return immediately after messages are processed on master.</p>
+<p>Like many replication system, sync brokers wait until commit log is replicated to the slave before acknowledging. Async brokers, instead, return immediately after messages are processed on master.</p>
 
 <h5 id="how-to-configure">How to configure</h5>
 <p>There are three pre-built configurations shipped with the distribution of RocketMQ under conf folder for your reference:</p>

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/94c21bba/content/docs/roadmap/index.html
----------------------------------------------------------------------
diff --git a/content/docs/roadmap/index.html b/content/docs/roadmap/index.html
index be735df..6f42f04 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-02T15:31:28+08:00">
+  <meta property="article:published_time" content="2017-06-06T21:20:18+08:00">
 
 
 
@@ -183,7 +183,7 @@
             
             
 
-            <li><a href="/docs/quick-start/" class="">Quick Start</a></li>
+            <li><a href="/docs/motivation/" class="">Why RocketMQ</a></li>
           
             
             
@@ -191,7 +191,7 @@
             
             
 
-            <li><a href="/docs/motivation/" class="">Why RocketMQ</a></li>
+            <li><a href="/docs/quick-start/" class="">Quick Start</a></li>
           
             
             
@@ -429,7 +429,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
     <meta itemprop="headline" content="The RoadMap of Apache RocketMQ">
     <meta itemprop="description" content="4.1.0~4.3.0-incubating RoadMap:">
-    <meta itemprop="datePublished" content="June 02, 2017">
+    <meta itemprop="datePublished" content="June 06, 2017">
     <meta itemprop="dateModified" content="March 08, 2017">
 
     <div class="page__inner-wrap">

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/94c21bba/content/docs/schedule-example/index.html
----------------------------------------------------------------------
diff --git a/content/docs/schedule-example/index.html b/content/docs/schedule-example/index.html
index 40aee73..9878d07 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-02T15:31:28+08:00">
+  <meta property="article:published_time" content="2017-06-06T21:20:18+08:00">
 
 
 
@@ -183,7 +183,7 @@
             
             
 
-            <li><a href="/docs/quick-start/" class="">Quick Start</a></li>
+            <li><a href="/docs/motivation/" class="">Why RocketMQ</a></li>
           
             
             
@@ -191,7 +191,7 @@
             
             
 
-            <li><a href="/docs/motivation/" class="">Why RocketMQ</a></li>
+            <li><a href="/docs/quick-start/" class="">Quick Start</a></li>
           
             
             
@@ -429,7 +429,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
     <meta itemprop="headline" content="Schedule example">
     <meta itemprop="description" content="How to use schedule component to reduce pull in RocketMQ.">
-    <meta itemprop="datePublished" content="June 02, 2017">
+    <meta itemprop="datePublished" content="June 06, 2017">
     <meta itemprop="dateModified" content="April 25, 2017">
 
     <div class="page__inner-wrap">
@@ -446,7 +446,7 @@
 <nav class="toc">
     <header><h4 class="nav__title"><i class="fa fa-file-text"></i> On This Page</h4></header>
 <ul class="toc__menu" id="markdown-toc">
-  <li><a href="#what-is-mq-schedule" id="markdown-toc-what-is-mq-schedule">What is mq schedule?</a>    <ul>
+  <li><a href="#what-is-scheduled-message" id="markdown-toc-what-is-scheduled-message">What is scheduled message?</a>    <ul>
       <li><a href="#defaultmqpullconsumer-use-case" id="markdown-toc-defaultmqpullconsumer-use-case">DefaultMQPullConsumer use case</a></li>
       <li><a href="#use-mqpullconsumerscheduleservice-consume-message" id="markdown-toc-use-mqpullconsumerscheduleservice-consume-message">Use MQPullConsumerScheduleService consume message</a></li>
       <li><a href="#have-fun-with-mqpullconsumerscheduleservice" id="markdown-toc-have-fun-with-mqpullconsumerscheduleservice">Have fun with <code class="highlighter-rouge">MQPullConsumerScheduleService</code>.</a></li>
@@ -457,8 +457,9 @@
   </nav>
 </aside>
 
-<h3 id="what-is-mq-schedule">What is mq schedule?</h3>
-<p>If you use <code class="highlighter-rouge">DefaultMQPullConsumer</code> to consume message,you have to fetch message manualy.There are some steps here to achieve this point.But with <code class="highlighter-rouge">MQPullConsumerScheduleService</code>,you will consume messages easily.</p>
+<h3 id="what-is-scheduled-message">What is scheduled message?</h3>
+<p>Scheduled messages differ from normal messages such that they won’t be delivered until a provided time later.
+If you use <code class="highlighter-rouge">DefaultMQPullConsumer</code> to consume message, you have to fetch message manually. There are other options availible but  <code class="highlighter-rouge">MQPullConsumerScheduleService</code> is the easiest.</p>
 
 <h4 id="defaultmqpullconsumer-use-case">DefaultMQPullConsumer use case</h4>
 

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/94c21bba/content/docs/simple-example/index.html
----------------------------------------------------------------------
diff --git a/content/docs/simple-example/index.html b/content/docs/simple-example/index.html
index a6d1dbf..6809304 100644
--- a/content/docs/simple-example/index.html
+++ b/content/docs/simple-example/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-06-02T15:31:28+08:00">
+  <meta property="article:published_time" content="2017-06-06T21:20:18+08:00">
 
 
 
@@ -183,7 +183,7 @@
             
             
 
-            <li><a href="/docs/quick-start/" class="">Quick Start</a></li>
+            <li><a href="/docs/motivation/" class="">Why RocketMQ</a></li>
           
             
             
@@ -191,7 +191,7 @@
             
             
 
-            <li><a href="/docs/motivation/" class="">Why RocketMQ</a></li>
+            <li><a href="/docs/quick-start/" class="">Quick Start</a></li>
           
             
             
@@ -429,7 +429,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
     <meta itemprop="headline" content="Simple Message Example">
     <meta itemprop="description" content="How to send simple message to reduce pull in RocketMQ.">
-    <meta itemprop="datePublished" content="June 02, 2017">
+    <meta itemprop="datePublished" content="June 06, 2017">
     <meta itemprop="dateModified" content="April 25, 2017">
 
     <div class="page__inner-wrap">
@@ -446,101 +446,67 @@
 <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="#reliable-synchronous-transmission" id="markdown-toc-reliable-synchronous-transmission">Reliable synchronous transmission</a></li>
   <li><a href="#reliable-asynchronous-transmission" id="markdown-toc-reliable-asynchronous-transmission">Reliable asynchronous transmission</a></li>
+  <li><a href="#one-way-transmission" id="markdown-toc-one-way-transmission">One-way transmission</a></li>
 </ul>
 
   </nav>
 </aside>
 
-<p>Use Rocketmq to send ordinary messages have three ways: reliable synchronous transmission, reliable
-asynchronous transmission, one-way (Oneway) send.</p>
-
-<p>This paper introduces the principle of
-each implementation, the use of the scene and the similarities and differences between the
-three implementations, and provides a code example for reference
-Reliable synchronous transmission
-Principle: synchronous transmission refers to the sender of the message issued after the
-data are received after the recipient sends back a packet should be made under the mode of
-communication
-Application scenarios: this way the application of the scene is very extensive, such as
+<p>Use RocketMQ to send messages in three ways: reliable synchronous, reliable
+asynchronous, and one-way transmission.</p>
+
+<p>This page introduces: 
+the use cases, similarities and differences between the three implementations, 
+and a code example for reference.</p>
+
+<h3 id="reliable-synchronous-transmission">Reliable synchronous transmission</h3>
+
+<p>Application: Reliable synchronous transmission is used in extensive scenes, such as
 important notification messages, SMS notification, SMS marketing system, etc..</p>
 
-<div class="language-java highlighter-rouge"><pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="nc">Producer</span> <span class="o">{</span>
-    <span class="kd">public</span> <span class="kd">static</span> <span class="kt">void</span> <span class="nf">main</span><span class="o">(</span><span class="n">String</span><span class="o">[]</span> <span class="n">args</span><span class="o">)</span> <span class="kd">throws</span> <span class="n">MQClientException</span><span class="o">,</span>
-        <span class="n">InterruptedException</span> <span class="o">{</span>
-         <span class="cm">/*
-         * Instantiate with a producer group name.
-         */</span>
+<div class="language-java highlighter-rouge"><pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="nc">SyncProducer</span> <span class="o">{</span>
+    <span class="kd">public</span> <span class="kd">static</span> <span class="kt">void</span> <span class="nf">main</span><span class="o">(</span><span class="n">String</span><span class="o">[]</span> <span class="n">args</span><span class="o">)</span> <span class="kd">throws</span> <span class="n">Exception</span> <span class="o">{</span>
+        <span class="c1">//Instantiate with a producer group name.</span>
         <span class="n">DefaultMQProducer</span> <span class="n">producer</span> <span class="o">=</span> <span class="k">new</span>
             <span class="n">DefaultMQProducer</span><span class="o">(</span><span class="s">"please_rename_unique_group_name"</span><span class="o">);</span>
-         <span class="cm">/*
-         * Specify name server addresses.
-         * &lt;p/&gt;
-         *
-         * Alternatively, you may specify name server addresses via exporting
-        environmental variable: NAMESRV_ADDR
-         * &lt;pre&gt;
-         * {@code
-         * producer.setNamesrvAddr("name-server1-ip:9876;name-server2-ip:9876");
-         * }
-         * &lt;/pre&gt;
-         */</span>
-         <span class="cm">/*
-         * Launch the instance.
-         */</span>
+        <span class="c1">//Launch the instance.</span>
         <span class="n">producer</span><span class="o">.</span><span class="na">start</span><span class="o">();</span>
-        <span class="k">for</span> <span class="o">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="mi">1000</span><span class="o">;</span> <span class="n">i</span><span class="o">++)</span> <span class="o">{</span>
-            <span class="k">try</span> <span class="o">{</span>
-                 <span class="cm">/*
-                 * Create a message instance, specifying topic, tag and message
-                body.
-                 */</span>
-                <span class="n">Message</span> <span class="n">msg</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Message</span><span class="o">(</span><span class="s">"TopicTest"</span> <span class="cm">/* Topic */</span><span class="o">,</span>
-                    <span class="s">"TagA"</span> <span class="cm">/* Tag */</span><span class="o">,</span>
-                    <span class="o">(</span><span class="s">"Hello RocketMQ "</span> <span class="o">+</span>
-                        <span class="n">i</span><span class="o">).</span><span class="na">getBytes</span><span class="o">(</span><span class="n">RemotingHelper</span><span class="o">.</span><span class="na">DEFAULT_CHARSET</span><span class="o">)</span> <span class="cm">/* Message body */</span>
-                <span class="o">);</span>
-                 <span class="cm">/*
-                 * Call send message to deliver message to one of brokers.
-                 */</span>
-                <span class="n">SendResult</span> <span class="n">sendResult</span> <span class="o">=</span> <span class="n">producer</span><span class="o">.</span><span class="na">send</span><span class="o">(</span><span class="n">msg</span><span class="o">);</span>
-                <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">printf</span><span class="o">(</span><span class="s">"%s%n"</span><span class="o">,</span> <span class="n">sendResult</span><span class="o">);</span>
-            <span class="o">}</span> <span class="k">catch</span> <span class="o">(</span><span class="n">Exception</span> <span class="n">e</span><span class="o">)</span> <span class="o">{</span>
-                <span class="n">e</span><span class="o">.</span><span class="na">printStackTrace</span><span class="o">();</span>
-                <span class="n">Thread</span><span class="o">.</span><span class="na">sleep</span><span class="o">(</span><span class="mi">1000</span><span class="o">);</span>
-            <span class="o">}</span>
+        <span class="k">for</span> <span class="o">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="mi">100</span><span class="o">;</span> <span class="n">i</span><span class="o">++)</span> <span class="o">{</span>
+            <span class="c1">//Create a message instance, specifying topic, tag and message body.</span>
+            <span class="n">Message</span> <span class="n">msg</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Message</span><span class="o">(</span><span class="s">"TopicTest"</span> <span class="cm">/* Topic */</span><span class="o">,</span>
+                <span class="s">"TagA"</span> <span class="cm">/* Tag */</span><span class="o">,</span>
+                <span class="o">(</span><span class="s">"Hello RocketMQ "</span> <span class="o">+</span>
+                    <span class="n">i</span><span class="o">).</span><span class="na">getBytes</span><span class="o">(</span><span class="n">RemotingHelper</span><span class="o">.</span><span class="na">DEFAULT_CHARSET</span><span class="o">)</span> <span class="cm">/* Message body */</span>
+            <span class="o">);</span>
+            <span class="c1">//Call send message to deliver message to one of brokers.</span>
+            <span class="n">SendResult</span> <span class="n">sendResult</span> <span class="o">=</span> <span class="n">producer</span><span class="o">.</span><span class="na">send</span><span class="o">(</span><span class="n">msg</span><span class="o">);</span>
+            <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">printf</span><span class="o">(</span><span class="s">"%s%n"</span><span class="o">,</span> <span class="n">sendResult</span><span class="o">);</span>
         <span class="o">}</span>
-         <span class="cm">/*
-         * Shut down once the producer instance is not longer in use.
-         */</span>
+        <span class="c1">//Shut down once the producer instance is not longer in use.</span>
         <span class="n">producer</span><span class="o">.</span><span class="na">shutdown</span><span class="o">();</span>
     <span class="o">}</span>
 <span class="o">}</span>
 
 </code></pre>
 </div>
-<h4 id="reliable-asynchronous-transmission">Reliable asynchronous transmission</h4>
-<p>Principle: asynchronous transmission refers to the sender sends the data, not the receiver
-back to respond, and then send the next packet communication. Asynchronous send MQ,
-users need to realize asynchronous callback interface (SendCallback), in the implementation
-of asynchronous send message to the application server, without waiting for a response can
-be returned directly to the receiving server, through the callback interface response, and
-response to the server for processing results.</p>
-
-<p>Applications: asynchronous transmission is generally used to link time-consuming, RT
-response time sensitive business scenarios, such as user video upload after notification to
-start transcoding, the transcoding after push notification transcoding results.</p>
+<h3 id="reliable-asynchronous-transmission">Reliable asynchronous transmission</h3>
+
+<p>Application: asynchronous transmission is generally used to link time-consuming, 
+response time sensitive business scenarios.</p>
 
 <div class="language-java highlighter-rouge"><pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="nc">AsyncProducer</span> <span class="o">{</span>
-    <span class="kd">public</span> <span class="kd">static</span> <span class="kt">void</span> <span class="nf">main</span><span class="o">(</span><span class="n">String</span><span class="o">[]</span> <span class="n">args</span><span class="o">)</span> <span class="kd">throws</span> <span class="n">MQClientException</span><span class="o">,</span>
-        <span class="n">InterruptedException</span><span class="o">,</span> <span class="n">UnsupportedEncodingException</span> <span class="o">{</span>
+    <span class="kd">public</span> <span class="kd">static</span> <span class="kt">void</span> <span class="nf">main</span><span class="o">(</span><span class="n">String</span><span class="o">[]</span> <span class="n">args</span><span class="o">)</span> <span class="kd">throws</span> <span class="n">Exception</span> <span class="o">{</span>
+        <span class="c1">//Instantiate with a producer group name.</span>
         <span class="n">DefaultMQProducer</span> <span class="n">producer</span> <span class="o">=</span> <span class="k">new</span> <span class="n">DefaultMQProducer</span><span class="o">(</span><span class="s">"Jodie_Daily_test"</span><span class="o">);</span>
+        <span class="c1">//Launch the instance.</span>
         <span class="n">producer</span><span class="o">.</span><span class="na">start</span><span class="o">();</span>
         <span class="n">producer</span><span class="o">.</span><span class="na">setRetryTimesWhenSendAsyncFailed</span><span class="o">(</span><span class="mi">0</span><span class="o">);</span>
-        <span class="k">for</span> <span class="o">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="mi">10000000</span><span class="o">;</span> <span class="n">i</span><span class="o">++)</span> <span class="o">{</span>
-            <span class="k">try</span> <span class="o">{</span>
+        <span class="k">for</span> <span class="o">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="mi">100</span><span class="o">;</span> <span class="n">i</span><span class="o">++)</span> <span class="o">{</span>
                 <span class="kd">final</span> <span class="kt">int</span> <span class="n">index</span> <span class="o">=</span> <span class="n">i</span><span class="o">;</span>
-                <span class="n">Message</span> <span class="n">msg</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Message</span><span class="o">(</span><span class="s">"Jodie_topic_1023"</span><span class="o">,</span>
+                <span class="c1">//Create a message instance, specifying topic, tag and message body.</span>
+                <span class="n">Message</span> <span class="n">msg</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Message</span><span class="o">(</span><span class="s">"TopicTest"</span><span class="o">,</span>
                     <span class="s">"TagA"</span><span class="o">,</span>
                     <span class="s">"OrderID188"</span><span class="o">,</span>
                     <span class="s">"Hello world"</span><span class="o">.</span><span class="na">getBytes</span><span class="o">(</span><span class="n">RemotingHelper</span><span class="o">.</span><span class="na">DEFAULT_CHARSET</span><span class="o">));</span>
@@ -556,71 +522,37 @@ start transcoding, the transcoding after push notification transcoding results.<
                         <span class="n">e</span><span class="o">.</span><span class="na">printStackTrace</span><span class="o">();</span>
                     <span class="o">}</span>
                 <span class="o">});</span>
-            <span class="o">}</span> <span class="k">catch</span> <span class="o">(</span><span class="n">Exception</span> <span class="n">e</span><span class="o">)</span> <span class="o">{</span>
-                <span class="n">e</span><span class="o">.</span><span class="na">printStackTrace</span><span class="o">();</span>
-            <span class="o">}</span>
         <span class="o">}</span>
+        <span class="c1">//Shut down once the producer instance is not longer in use.</span>
         <span class="n">producer</span><span class="o">.</span><span class="na">shutdown</span><span class="o">();</span>
     <span class="o">}</span>
 <span class="o">}</span>
 </code></pre>
 </div>
 
-<p>Unidirectional (Oneway) transmission
-Principle: one-way (Oneway) to send the message is only responsible for sending the
-message, do not wait for the server to respond and no callback function to trigger, that is,
-send the request does not wait for a reply. The process of sending messages in this way
-takes a very short time, usually at the microsecond level.
-Application scenarios: for some very short, but not high reliability requirements of the scene,
+<h3 id="one-way-transmission">One-way transmission</h3>
+
+<p>Application: One-way transmission is used for cases requiring moderate reliability,
 such as log collection.</p>
 
-<div class="language-java highlighter-rouge"><pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="nc">producerOneWay</span> <span class="o">{</span>
-    <span class="kd">public</span> <span class="kd">static</span> <span class="kt">void</span> <span class="nf">main</span><span class="o">(</span><span class="n">String</span><span class="o">[]</span> <span class="n">args</span><span class="o">)</span> <span class="kd">throws</span> <span class="n">MQClientException</span><span class="o">,</span>
-        <span class="n">InterruptedException</span><span class="o">,</span> <span class="n">MQClientException</span> <span class="o">{</span>
-         <span class="cm">/*
-         * Instantiate with a producer group name.
-         */</span>
-        <span class="n">DefaultMQProducer</span> <span class="n">producer</span> <span class="o">=</span> <span class="k">new</span>
-            <span class="n">DefaultMQProducer</span><span class="o">(</span><span class="s">"please_rename_unique_group_name"</span><span class="o">);</span>
-         <span class="cm">/*
-         * Specify name server addresses.
-         * &lt;p/&gt;
-         *
-         * Alternatively, you may specify name server addresses via exporting
-        environmental variable: NAMESRV_ADDR
-         * &lt;pre&gt;
-         * {@code
-         * producer.setNamesrvAddr("name-server1-ip:9876;name-server2-ip:9876");
-         * }
-         * &lt;/pre&gt;
-         */</span>
-         <span class="cm">/*
-         * Launch the instance.
-         */</span>
+<div class="language-java highlighter-rouge"><pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="nc">OnewayProducer</span> <span class="o">{</span>
+    <span class="kd">public</span> <span class="kd">static</span> <span class="kt">void</span> <span class="nf">main</span><span class="o">(</span><span class="n">String</span><span class="o">[]</span> <span class="n">args</span><span class="o">)</span> <span class="kd">throws</span> <span class="n">Exception</span><span class="o">{</span>
+        <span class="c1">//Instantiate with a producer group name.</span>
+        <span class="n">DefaultMQProducer</span> <span class="n">producer</span> <span class="o">=</span> <span class="k">new</span> <span class="n">DefaultMQProducer</span><span class="o">(</span><span class="s">"example_group_name"</span><span class="o">);</span>
+        <span class="c1">//Launch the instance.</span>
         <span class="n">producer</span><span class="o">.</span><span class="na">start</span><span class="o">();</span>
-        <span class="k">for</span> <span class="o">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="mi">1000</span><span class="o">;</span> <span class="n">i</span><span class="o">++)</span> <span class="o">{</span>
-            <span class="k">try</span> <span class="o">{</span>
-                 <span class="cm">/*
-                 * Create a message instance, specifying topic, tag and message
-                body.
-                 */</span>
-                <span class="n">Message</span> <span class="n">msg</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Message</span><span class="o">(</span><span class="s">"TopicTest"</span> <span class="cm">/* Topic */</span><span class="o">,</span>
-                    <span class="s">"TagA"</span> <span class="cm">/* Tag */</span><span class="o">,</span>
-                    <span class="o">(</span><span class="s">"Hello RocketMQ "</span> <span class="o">+</span>
-                        <span class="n">i</span><span class="o">).</span><span class="na">getBytes</span><span class="o">(</span><span class="n">RemotingHelper</span><span class="o">.</span><span class="na">DEFAULT_CHARSET</span><span class="o">)</span> <span class="cm">/* Message body */</span>
-                <span class="o">);</span>
-                 <span class="cm">/*
-                 * Call send message to deliver message to one of brokers.
-                 */</span>
-                <span class="n">producer</span><span class="o">.</span><span class="na">sendOneway</span><span class="o">(</span><span class="n">msg</span><span class="o">);</span>
-            <span class="o">}</span> <span class="k">catch</span> <span class="o">(</span><span class="n">Exception</span> <span class="n">e</span><span class="o">)</span> <span class="o">{</span>
-                <span class="n">e</span><span class="o">.</span><span class="na">printStackTrace</span><span class="o">();</span>
-                <span class="n">Thread</span><span class="o">.</span><span class="na">sleep</span><span class="o">(</span><span class="mi">1000</span><span class="o">);</span>
-            <span class="o">}</span>
+        <span class="k">for</span> <span class="o">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="mi">100</span><span class="o">;</span> <span class="n">i</span><span class="o">++)</span> <span class="o">{</span>
+            <span class="c1">//Create a message instance, specifying topic, tag and message body.</span>
+            <span class="n">Message</span> <span class="n">msg</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Message</span><span class="o">(</span><span class="s">"TopicTest"</span> <span class="cm">/* Topic */</span><span class="o">,</span>
+                <span class="s">"TagA"</span> <span class="cm">/* Tag */</span><span class="o">,</span>
+                <span class="o">(</span><span class="s">"Hello RocketMQ "</span> <span class="o">+</span>
+                    <span class="n">i</span><span class="o">).</span><span class="na">getBytes</span><span class="o">(</span><span class="n">RemotingHelper</span><span class="o">.</span><span class="na">DEFAULT_CHARSET</span><span class="o">)</span> <span class="cm">/* Message body */</span>
+            <span class="o">);</span>
+            <span class="c1">//Call send message to deliver message to one of brokers.</span>
+            <span class="n">producer</span><span class="o">.</span><span class="na">sendOneway</span><span class="o">(</span><span class="n">msg</span><span class="o">);</span>
+            
         <span class="o">}</span>
-         <span class="cm">/*
-         * Shut down once the producer instance is not longer in use.
-         */</span>
+        <span class="c1">//Shut down once the producer instance is not longer in use.</span>
         <span class="n">producer</span><span class="o">.</span><span class="na">shutdown</span><span class="o">();</span>
     <span class="o">}</span>
 <span class="o">}</span>
@@ -663,7 +595,7 @@ such as log collection.</p>
 ">Previous</a>
     
     
-      <a href="/docs/filter-by-sql92-example/" class="pagination--pager" title="Filter By SQL92 Example
+      <a href="/docs/filter-by-sql92-example/" class="pagination--pager" title="Filter Example
 ">Next</a>
     
   </nav>

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/94c21bba/content/dowloading/releases/index.html
----------------------------------------------------------------------
diff --git a/content/dowloading/releases/index.html b/content/dowloading/releases/index.html
index 4097795..68562d9 100644
--- a/content/dowloading/releases/index.html
+++ b/content/dowloading/releases/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-06-02T15:31:28+08:00">
+  <meta property="article:published_time" content="2017-06-06T21:20:18+08:00">
 
 
 
@@ -183,7 +183,7 @@
             
             
 
-            <li><a href="/docs/quick-start/" class="">Quick Start</a></li>
+            <li><a href="/docs/motivation/" class="">Why RocketMQ</a></li>
           
             
             
@@ -191,7 +191,7 @@
             
             
 
-            <li><a href="/docs/motivation/" class="">Why RocketMQ</a></li>
+            <li><a href="/docs/quick-start/" class="">Quick Start</a></li>
           
             
             
@@ -429,7 +429,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
     <meta itemprop="headline" content="Downloading the Apache RocketMQ Releases">
     <meta itemprop="description" content="Use the links below to download the Apache RocketMQ Releases, the latest release is 4.0.0-incubating.">
-    <meta itemprop="datePublished" content="June 02, 2017">
+    <meta itemprop="datePublished" content="June 06, 2017">
     <meta itemprop="dateModified" content="February 21, 2017">
 
     <div class="page__inner-wrap">

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/94c21bba/content/feed.xml
----------------------------------------------------------------------
diff --git a/content/feed.xml b/content/feed.xml
index 6d7c2e3..e17d0b8 100644
--- a/content/feed.xml
+++ b/content/feed.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xml" href="/feed.xslt.xml"?><feed xmlns="http://www.w3.org/2005/Atom"><generator uri="http://jekyllrb.com" version="3.3.1">Jekyll</generator><link href="/feed.xml" rel="self" type="application/atom+xml" /><link href="/" rel="alternate" type="text/html" /><updated>2017-06-02T15:31:28+08:00</updated><id>//</id><title type="html">Apache RocketMQ</title><subtitle>The homepage of RocketMQ.</subtitle><author><name>{&quot;name&quot;=&gt;nil, &quot;avatar&quot;=&gt;&quot;/assets/images/rmq-logo.png&quot;, &quot;bio&quot;=&gt;&quot;A fast, low latency, reliable, scalable, distributed MOM.&quot;, &quot;location&quot;=&gt;&quot;Hangzhou, China&quot;, &quot;email&quot;=&gt;&quot;dev@rocketmq.incubator.apache.org&quot;, &quot;uri&quot;=&gt;&quot;http://incubator.staging.apache.org/projects/rocketmq.html&quot;, &quot;bitbucket&quot;=&gt;nil, &quot;codepen&quot;=&gt;nil, &quot;dribbble&quot;=&gt;nil, &quot;flickr&quot;=&gt;nil, &quo
 t;facebook&quot;=&gt;nil, &quot;foursquare&quot;=&gt;nil, &quot;github&quot;=&gt;&quot;apache/incubator-rocketmq&quot;, &quot;google_plus&quot;=&gt;nil, &quot;keybase&quot;=&gt;nil, &quot;instagram&quot;=&gt;nil, &quot;lastfm&quot;=&gt;nil, &quot;linkedin&quot;=&gt;nil, &quot;pinterest&quot;=&gt;nil, &quot;soundcloud&quot;=&gt;nil, &quot;stackoverflow&quot;=&gt;&quot;questions/tagged/rocketmq&quot;, &quot;steam&quot;=&gt;nil, &quot;tumblr&quot;=&gt;nil, &quot;twitter&quot;=&gt;&quot;ApacheRocketMQ&quot;, &quot;vine&quot;=&gt;nil, &quot;weibo&quot;=&gt;nil, &quot;xing&quot;=&gt;nil, &quot;youtube&quot;=&gt;nil, &quot;quora&quot;=&gt;&quot;topic/RocketMQ&quot;}</name><email>dev@rocketmq.incubator.apache.org</email><uri>http://incubator.staging.apache.org/projects/rocketmq.html</uri></author><entry><title type="html">Release Notes - Apache RocketMQ - Version 4.1.0-incubating</title><link href="/release-notes-4.1.0-incubating/" rel="alternate" type="text/html" title="Release Notes - Apa
 che RocketMQ - Version 4.1.0-incubating" /><published>2017-06-02T00:00:00+08:00</published><updated>2017-06-02T00:00:00+08:00</updated><id>/release-notes-4.1.0-incubating</id><content type="html" xml:base="/release-notes-4.1.0-incubating/">&lt;p&gt;Release Notes - Apache RocketMQ - Version 4.1.0-incubating&lt;/p&gt;
+<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xml" href="/feed.xslt.xml"?><feed xmlns="http://www.w3.org/2005/Atom"><generator uri="http://jekyllrb.com" version="3.3.1">Jekyll</generator><link href="/feed.xml" rel="self" type="application/atom+xml" /><link href="/" rel="alternate" type="text/html" /><updated>2017-06-06T21:20:18+08:00</updated><id>//</id><title type="html">Apache RocketMQ</title><subtitle>The homepage of RocketMQ.</subtitle><author><name>{&quot;name&quot;=&gt;nil, &quot;avatar&quot;=&gt;&quot;/assets/images/rmq-logo.png&quot;, &quot;bio&quot;=&gt;&quot;A fast, low latency, reliable, scalable, distributed MOM.&quot;, &quot;location&quot;=&gt;&quot;Hangzhou, China&quot;, &quot;email&quot;=&gt;&quot;dev@rocketmq.incubator.apache.org&quot;, &quot;uri&quot;=&gt;&quot;http://incubator.staging.apache.org/projects/rocketmq.html&quot;, &quot;bitbucket&quot;=&gt;nil, &quot;codepen&quot;=&gt;nil, &quot;dribbble&quot;=&gt;nil, &quot;flickr&quot;=&gt;nil, &quo
 t;facebook&quot;=&gt;nil, &quot;foursquare&quot;=&gt;nil, &quot;github&quot;=&gt;&quot;apache/incubator-rocketmq&quot;, &quot;google_plus&quot;=&gt;nil, &quot;keybase&quot;=&gt;nil, &quot;instagram&quot;=&gt;nil, &quot;lastfm&quot;=&gt;nil, &quot;linkedin&quot;=&gt;nil, &quot;pinterest&quot;=&gt;nil, &quot;soundcloud&quot;=&gt;nil, &quot;stackoverflow&quot;=&gt;&quot;questions/tagged/rocketmq&quot;, &quot;steam&quot;=&gt;nil, &quot;tumblr&quot;=&gt;nil, &quot;twitter&quot;=&gt;&quot;ApacheRocketMQ&quot;, &quot;vine&quot;=&gt;nil, &quot;weibo&quot;=&gt;nil, &quot;xing&quot;=&gt;nil, &quot;youtube&quot;=&gt;nil, &quot;quora&quot;=&gt;&quot;topic/RocketMQ&quot;}</name><email>dev@rocketmq.incubator.apache.org</email><uri>http://incubator.staging.apache.org/projects/rocketmq.html</uri></author><entry><title type="html">Release Notes - Apache RocketMQ - Version 4.1.0-incubating</title><link href="/release-notes-4.1.0-incubating/" rel="alternate" type="text/html" title="Release Notes - Apa
 che RocketMQ - Version 4.1.0-incubating" /><published>2017-06-02T00:00:00+08:00</published><updated>2017-06-02T00:00:00+08:00</updated><id>/release-notes-4.1.0-incubating</id><content type="html" xml:base="/release-notes-4.1.0-incubating/">&lt;p&gt;Release Notes - Apache RocketMQ - Version 4.1.0-incubating&lt;/p&gt;
 
 &lt;h2 id=&quot;new-feature&quot;&gt;New Feature&lt;/h2&gt;
 

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/94c21bba/content/index.html
----------------------------------------------------------------------
diff --git a/content/index.html b/content/index.html
index fe7f837..67d8ebc 100644
--- a/content/index.html
+++ b/content/index.html
@@ -209,7 +209,7 @@
 
           
             <div class="archive__item-excerpt">
-              <p>More than 99.6% response latency within 1 millisecond under high stress.</p>
+              <p>More than 99.6% response latency within 1 millisecond under high pressure.</p>
 
             </div>
           
@@ -237,7 +237,7 @@
 
           
             <div class="archive__item-excerpt">
-              <p>High availability with tracking and auditing characteristics.</p>
+              <p>High availability with tracking and auditing features.</p>
 
             </div>
           
@@ -254,18 +254,18 @@
       <div class="archive__item">
         
           <div class="archive__item-teaser">
-            <img src="/assets/images/rmq-feature-bigdata.png" alt="BigData Friendly" />
+            <img src="/assets/images/rmq-feature-industry.png" alt="Industry Sustainable" />
           </div>
         
 
         <div class="archive__item-body">
           
-            <h2 class="archive__item-title">BigData Friendly</h2>
+            <h2 class="archive__item-title">Industry Sustainable</h2>
           
 
           
             <div class="archive__item-excerpt">
-              <p>Batch transferring with versatile integration for flooding throughput.</p>
+              <p>Trillion-level message capacity guaranteed.</p>
 
             </div>
           
@@ -288,18 +288,18 @@
       <div class="archive__item">
         
           <div class="archive__item-teaser">
-            <img src="/assets/images/rmq-feature-industry.png" alt="Industry Sustainable" />
+            <img src="/assets/images/rmq-feature-neutral.png" alt="Vendor Neutral" />
           </div>
         
 
         <div class="archive__item-body">
           
-            <h2 class="archive__item-title">Industry Sustainable</h2>
+            <h2 class="archive__item-title">Vendor Neutral</h2>
           
 
           
             <div class="archive__item-excerpt">
-              <p>Trillions of messages capacity guarantee especially in 11.11 Global Shopping Festival.</p>
+              <p>A new open distributed messaging and streaming standard since latest 4.1 version.</p>
 
             </div>
           
@@ -316,18 +316,18 @@
       <div class="archive__item">
         
           <div class="archive__item-teaser">
-            <img src="/assets/images/rmq-feature-massiveaccumulation.png" alt="Massive Accumulation" />
+            <img src="/assets/images/rmq-feature-bigdata.png" alt="BigData Friendly" />
           </div>
         
 
         <div class="archive__item-body">
           
-            <h2 class="archive__item-title">Massive Accumulation</h2>
+            <h2 class="archive__item-title">BigData Friendly</h2>
           
 
           
             <div class="archive__item-excerpt">
-              <p>Accumulate messages as long as having enough disk without performance loss.</p>
+              <p>Batch transferring with versatile integration for flooding throughput.</p>
 
             </div>
           
@@ -344,18 +344,18 @@
       <div class="archive__item">
         
           <div class="archive__item-teaser">
-            <img src="/assets/images/rmq-feature-neutral.png" alt="Vendor Neutral" />
+            <img src="/assets/images/rmq-feature-massiveaccumulation.png" alt="Massive Accumulation" />
           </div>
         
 
         <div class="archive__item-body">
           
-            <h2 class="archive__item-title">Vendor Neutral</h2>
+            <h2 class="archive__item-title">Massive Accumulation</h2>
           
 
           
             <div class="archive__item-excerpt">
-              <p>A new open distributed messaging and streaming standard since latest 4.x version.</p>
+              <p>Given sufficient disk space, accumulate messages without performance loss.</p>
 
             </div>
           


[4/4] incubator-rocketmq-site git commit: Build

Posted by do...@apache.org.
Build


Project: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/commit/94c21bba
Tree: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/tree/94c21bba
Diff: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/diff/94c21bba

Branch: refs/heads/asf-site
Commit: 94c21bba60c4d85b76d83cce5592cb5c2c66d53a
Parents: a496c5a
Author: dongeforever <do...@apache.org>
Authored: Tue Jun 6 21:20:55 2017 +0800
Committer: dongeforever <do...@apache.org>
Committed: Tue Jun 6 21:20:55 2017 +0800

----------------------------------------------------------------------
 content/about/contact/index.html                |   4 +-
 content/about/rewards/index.html                |   4 +-
 content/about/team/index.html                   |   4 +-
 content/archive-layout-with-content/index.html  |   2 +-
 content/collection-archive/index.html           |   9 +-
 content/docs/batch-example/index.html           |  37 ++--
 content/docs/best-practice-broker/index.html    |  10 +-
 content/docs/best-practice-consumer/index.html  |   8 +-
 content/docs/best-practice-namesvr/index.html   |   8 +-
 content/docs/best-practice-producer/index.html  |   8 +-
 content/docs/broadcast-example/index.html       |  78 ++++----
 content/docs/cli-admin-tool/index.html          |  10 +-
 content/docs/cluster-deployment/index.html      |   8 +-
 content/docs/code-guidelines/index.html         |   8 +-
 content/docs/core-concept/index.html            |   8 +-
 content/docs/documentation/index.html           |   8 +-
 content/docs/faq/index.html                     |  28 +--
 content/docs/filter-by-sql92-example/index.html |  63 +++---
 content/docs/motivation/index.html              |  26 +--
 content/docs/order-example/index.html           | 113 +++++------
 content/docs/pull-request/index.html            |   8 +-
 content/docs/quick-start/index.html             |  13 +-
 content/docs/release-manual.html                |   8 +-
 content/docs/rmq-arc/index.html                 |  24 +--
 content/docs/rmq-deployment/index.html          |  18 +-
 content/docs/roadmap/index.html                 |   8 +-
 content/docs/schedule-example/index.html        |  15 +-
 content/docs/simple-example/index.html          | 192 ++++++-------------
 content/dowloading/releases/index.html          |   8 +-
 content/feed.xml                                |   2 +-
 content/index.html                              |  28 +--
 31 files changed, 342 insertions(+), 426 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/94c21bba/content/about/contact/index.html
----------------------------------------------------------------------
diff --git a/content/about/contact/index.html b/content/about/contact/index.html
index 84ea58b..00117ad 100644
--- a/content/about/contact/index.html
+++ b/content/about/contact/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-06-02T15:31:28+08:00">
+  <meta property="article:published_time" content="2017-06-06T21:20:18+08:00">
 
 
 
@@ -212,7 +212,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
     <meta itemprop="headline" content="CONTACT">
     <meta itemprop="description" content="Contact.">
-    <meta itemprop="datePublished" content="June 02, 2017">
+    <meta itemprop="datePublished" content="June 06, 2017">
     <meta itemprop="dateModified" content="December 29, 2016">
 
     <div class="page__inner-wrap">

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/94c21bba/content/about/rewards/index.html
----------------------------------------------------------------------
diff --git a/content/about/rewards/index.html b/content/about/rewards/index.html
index 6471919..3f3a08e 100644
--- a/content/about/rewards/index.html
+++ b/content/about/rewards/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-06-02T15:31:28+08:00">
+  <meta property="article:published_time" content="2017-06-06T21:20:18+08:00">
 
 
 
@@ -212,7 +212,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
     <meta itemprop="headline" content="REWARDS">
     <meta itemprop="description" content="Rewards.">
-    <meta itemprop="datePublished" content="June 02, 2017">
+    <meta itemprop="datePublished" content="June 06, 2017">
     <meta itemprop="dateModified" content="January 25, 2017">
 
     <div class="page__inner-wrap">

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/94c21bba/content/about/team/index.html
----------------------------------------------------------------------
diff --git a/content/about/team/index.html b/content/about/team/index.html
index f1a3c11..c6f545e 100644
--- a/content/about/team/index.html
+++ b/content/about/team/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-06-02T15:31:28+08:00">
+  <meta property="article:published_time" content="2017-06-06T21:20:18+08:00">
 
 
 
@@ -212,7 +212,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
     <meta itemprop="headline" content="TEAM">
     <meta itemprop="description" content="Project team.">
-    <meta itemprop="datePublished" content="June 02, 2017">
+    <meta itemprop="datePublished" content="June 06, 2017">
     <meta itemprop="dateModified" content="December 29, 2016">
 
     <div class="page__inner-wrap">

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/94c21bba/content/archive-layout-with-content/index.html
----------------------------------------------------------------------
diff --git a/content/archive-layout-with-content/index.html b/content/archive-layout-with-content/index.html
index 397751c..e85d70b 100644
--- a/content/archive-layout-with-content/index.html
+++ b/content/archive-layout-with-content/index.html
@@ -869,7 +869,7 @@
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/filter-by-sql92-example/" rel="permalink">Filter By SQL92 Example </a>
+        <a href="/docs/filter-by-sql92-example/" rel="permalink">Filter Example </a>
       
     </h2>
     

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/94c21bba/content/collection-archive/index.html
----------------------------------------------------------------------
diff --git a/content/collection-archive/index.html b/content/collection-archive/index.html
index caf2549..967294a 100644
--- a/content/collection-archive/index.html
+++ b/content/collection-archive/index.html
@@ -403,7 +403,7 @@
       
     </h2>
     
-    <p class="archive__item-excerpt" itemprop="description">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 ...</p>
+    <p class="archive__item-excerpt" itemprop="description">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 commun...</p>
   </article>
 </div>
     
@@ -553,7 +553,10 @@
       
     </h2>
     
-    <p class="archive__item-excerpt" itemprop="description">The following questions are frequently asked with regard to the RocketMQ project in general. If you have further questions, make sure to consult the document...</p>
+    <p class="archive__item-excerpt" itemprop="description">The following questions are frequently asked with regard to the RocketMQ project in general.
+
+General
+1. Why did we create rocketmq project instead of select...</p>
   </article>
 </div>
     
@@ -780,7 +783,7 @@
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/filter-by-sql92-example/" rel="permalink">Filter By SQL92 Example
+        <a href="/docs/filter-by-sql92-example/" rel="permalink">Filter Example
 </a>
       
     </h2>

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/94c21bba/content/docs/batch-example/index.html
----------------------------------------------------------------------
diff --git a/content/docs/batch-example/index.html b/content/docs/batch-example/index.html
index 38b57e0..ee5a91c 100644
--- a/content/docs/batch-example/index.html
+++ b/content/docs/batch-example/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-06-02T15:31:28+08:00">
+  <meta property="article:published_time" content="2017-06-06T21:20:18+08:00">
 
 
 
@@ -183,7 +183,7 @@
             
             
 
-            <li><a href="/docs/quick-start/" class="">Quick Start</a></li>
+            <li><a href="/docs/motivation/" class="">Why RocketMQ</a></li>
           
             
             
@@ -191,7 +191,7 @@
             
             
 
-            <li><a href="/docs/motivation/" class="">Why RocketMQ</a></li>
+            <li><a href="/docs/quick-start/" class="">Quick Start</a></li>
           
             
             
@@ -429,7 +429,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
     <meta itemprop="headline" content="Batch Example">
     <meta itemprop="description" content="How to use batch in Rocketmq">
-    <meta itemprop="datePublished" content="June 02, 2017">
+    <meta itemprop="datePublished" content="June 06, 2017">
     <meta itemprop="dateModified" content="April 25, 2017">
 
     <div class="page__inner-wrap">
@@ -446,7 +446,7 @@
 <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="#when-to-use-batch" id="markdown-toc-when-to-use-batch">When to use batch</a></li>
+  <li><a href="#why-batch" id="markdown-toc-why-batch">Why batch?</a></li>
   <li><a href="#usage-constraints" id="markdown-toc-usage-constraints">Usage constraints</a></li>
   <li><a href="#how-to-use-batch" id="markdown-toc-how-to-use-batch">How to use batch</a></li>
   <li><a href="#split-into-lists" id="markdown-toc-split-into-lists">Split into lists</a></li>
@@ -455,25 +455,16 @@
   </nav>
 </aside>
 
-<h4 id="when-to-use-batch">When to use batch</h4>
-<p>Batch is not for packaging but improving performance of small messages. So the messages of the same batch should act the same role, no more effort should be taken to split the batch.
-No split has another important advantage, messages of the same batch should be sent atomically, that is all successfully or all unsuccessfully, of which the importance is self-evident.
-So performance and atomicity are the original intentions, which will reflect on the usage constraints. 
-That is to say, if you want to improve performance for small messages or to send messages atomically, batch is a nice solution for you.</p>
-<h4 id="usage-constraints">Usage constraints</h4>
-<p>Performance and atomicity are worth  the following constraints:
-messages of the same batch should have:</p>
+<h3 id="why-batch">Why batch?</h3>
+<p>Sending messages in batch improves performance of delivering small messages.</p>
 
-<ol>
-  <li>same topic: If they belong to different topics(internally the queues), then may be sent to different brokers, which will against atomicity.</li>
-  <li>same waitStoreMsgOK: also differences will against atomicity.</li>
-  <li>no delay level: If we care about the delay level, we need to decode the internal properties of every message, which will cause much performance loss.</li>
-</ol>
+<h3 id="usage-constraints">Usage constraints</h3>
+<p>Messages of the same batch should have: same topic, same waitStoreMsgOK and no schedule support.</p>
 
-<p>And the most important, the total size, that is the sum of size of each message in one batch, should be no more than 1M.</p>
+<p>Besides, the total size of the messages in one batch should be no more than 1MiB.</p>
 
-<h4 id="how-to-use-batch">How to use batch</h4>
-<p>If you just send several small messages in a time and do not need to worry about the size limit, it is easy to use batch:</p>
+<h3 id="how-to-use-batch">How to use batch</h3>
+<p>If you just send messages of no more than 1MiB at a time, it is easy to use batch:</p>
 
 <div class="language-java highlighter-rouge"><pre class="highlight"><code><span class="n">String</span> <span class="n">topic</span> <span class="o">=</span> <span class="s">"BatchTest"</span><span class="o">;</span>
 <span class="n">List</span><span class="o">&lt;</span><span class="n">Message</span><span class="o">&gt;</span> <span class="n">messages</span> <span class="o">=</span> <span class="k">new</span> <span class="n">ArrayList</span><span class="o">&lt;&gt;();</span>
@@ -489,8 +480,8 @@ messages of the same batch should have:</p>
     
 </code></pre>
 </div>
-<h4 id="split-into-lists">Split into lists</h4>
-<p>The complexity only grow when you send large batch and you may not sure if it exceeds the size limit (1M).</p>
+<h3 id="split-into-lists">Split into lists</h3>
+<p>The complexity only grow when you send large batch and you may not sure if it exceeds the size limit (1MiB).</p>
 
 <p>At this time, you’d better split the lists:</p>
 

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/94c21bba/content/docs/best-practice-broker/index.html
----------------------------------------------------------------------
diff --git a/content/docs/best-practice-broker/index.html b/content/docs/best-practice-broker/index.html
index a07c9f8..5a8cf90 100644
--- a/content/docs/best-practice-broker/index.html
+++ b/content/docs/best-practice-broker/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-06-02T15:31:28+08:00">
+  <meta property="article:published_time" content="2017-06-06T21:20:18+08:00">
 
 
 
@@ -183,7 +183,7 @@
             
             
 
-            <li><a href="/docs/quick-start/" class="">Quick Start</a></li>
+            <li><a href="/docs/motivation/" class="">Why RocketMQ</a></li>
           
             
             
@@ -191,7 +191,7 @@
             
             
 
-            <li><a href="/docs/motivation/" class="">Why RocketMQ</a></li>
+            <li><a href="/docs/quick-start/" class="">Quick Start</a></li>
           
             
             
@@ -429,7 +429,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
     <meta itemprop="headline" content="Best Practice For Broker">
     <meta itemprop="description" content="Some useful tips for users.">
-    <meta itemprop="datePublished" content="June 02, 2017">
+    <meta itemprop="datePublished" content="June 06, 2017">
     <meta itemprop="dateModified" content="December 25, 2016">
 
     <div class="page__inner-wrap">
@@ -501,7 +501,7 @@ If you just want to make it easy, you may only need a ASYNC_MASTER without SLAVE
       
   <nav class="pagination">
     
-      <a href="/docs/filter-by-sql92-example/" class="pagination--pager" title="Filter By SQL92 Example
+      <a href="/docs/filter-by-sql92-example/" class="pagination--pager" title="Filter Example
 ">Previous</a>
     
     

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/94c21bba/content/docs/best-practice-consumer/index.html
----------------------------------------------------------------------
diff --git a/content/docs/best-practice-consumer/index.html b/content/docs/best-practice-consumer/index.html
index 5b88af1..86232c1 100644
--- a/content/docs/best-practice-consumer/index.html
+++ b/content/docs/best-practice-consumer/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-06-02T15:31:28+08:00">
+  <meta property="article:published_time" content="2017-06-06T21:20:18+08:00">
 
 
 
@@ -183,7 +183,7 @@
             
             
 
-            <li><a href="/docs/quick-start/" class="">Quick Start</a></li>
+            <li><a href="/docs/motivation/" class="">Why RocketMQ</a></li>
           
             
             
@@ -191,7 +191,7 @@
             
             
 
-            <li><a href="/docs/motivation/" class="">Why RocketMQ</a></li>
+            <li><a href="/docs/quick-start/" class="">Quick Start</a></li>
           
             
             
@@ -429,7 +429,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
     <meta itemprop="headline" content="Best Practice For Consumer">
     <meta itemprop="description" content="Some useful tips for users.">
-    <meta itemprop="datePublished" content="June 02, 2017">
+    <meta itemprop="datePublished" content="June 06, 2017">
     <meta itemprop="dateModified" content="December 25, 2016">
 
     <div class="page__inner-wrap">

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/94c21bba/content/docs/best-practice-namesvr/index.html
----------------------------------------------------------------------
diff --git a/content/docs/best-practice-namesvr/index.html b/content/docs/best-practice-namesvr/index.html
index 6221ca7..7105eab 100644
--- a/content/docs/best-practice-namesvr/index.html
+++ b/content/docs/best-practice-namesvr/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-06-02T15:31:28+08:00">
+  <meta property="article:published_time" content="2017-06-06T21:20:18+08:00">
 
 
 
@@ -183,7 +183,7 @@
             
             
 
-            <li><a href="/docs/quick-start/" class="">Quick Start</a></li>
+            <li><a href="/docs/motivation/" class="">Why RocketMQ</a></li>
           
             
             
@@ -191,7 +191,7 @@
             
             
 
-            <li><a href="/docs/motivation/" class="">Why RocketMQ</a></li>
+            <li><a href="/docs/quick-start/" class="">Quick Start</a></li>
           
             
             
@@ -429,7 +429,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
     <meta itemprop="headline" content="Best Practice For NameServer">
     <meta itemprop="description" content="In Apache RocketMQ, name servers are designed to coordinate each component of the distributed systemand fulfill much of this responsibility through managing topic route information.">
-    <meta itemprop="datePublished" content="June 02, 2017">
+    <meta itemprop="datePublished" content="June 06, 2017">
     <meta itemprop="dateModified" content="December 25, 2016">
 
     <div class="page__inner-wrap">

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/94c21bba/content/docs/best-practice-producer/index.html
----------------------------------------------------------------------
diff --git a/content/docs/best-practice-producer/index.html b/content/docs/best-practice-producer/index.html
index a936d35..ee0888a 100644
--- a/content/docs/best-practice-producer/index.html
+++ b/content/docs/best-practice-producer/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-06-02T15:31:28+08:00">
+  <meta property="article:published_time" content="2017-06-06T21:20:18+08:00">
 
 
 
@@ -183,7 +183,7 @@
             
             
 
-            <li><a href="/docs/quick-start/" class="">Quick Start</a></li>
+            <li><a href="/docs/motivation/" class="">Why RocketMQ</a></li>
           
             
             
@@ -191,7 +191,7 @@
             
             
 
-            <li><a href="/docs/motivation/" class="">Why RocketMQ</a></li>
+            <li><a href="/docs/quick-start/" class="">Quick Start</a></li>
           
             
             
@@ -429,7 +429,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
     <meta itemprop="headline" content="Best Practice For Producer">
     <meta itemprop="description" content="Some useful tips for users.">
-    <meta itemprop="datePublished" content="June 02, 2017">
+    <meta itemprop="datePublished" content="June 06, 2017">
     <meta itemprop="dateModified" content="December 25, 2016">
 
     <div class="page__inner-wrap">

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/94c21bba/content/docs/broadcast-example/index.html
----------------------------------------------------------------------
diff --git a/content/docs/broadcast-example/index.html b/content/docs/broadcast-example/index.html
index 0056f78..8343868 100644
--- a/content/docs/broadcast-example/index.html
+++ b/content/docs/broadcast-example/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-06-02T15:31:28+08:00">
+  <meta property="article:published_time" content="2017-06-06T21:20:18+08:00">
 
 
 
@@ -183,7 +183,7 @@
             
             
 
-            <li><a href="/docs/quick-start/" class="">Quick Start</a></li>
+            <li><a href="/docs/motivation/" class="">Why RocketMQ</a></li>
           
             
             
@@ -191,7 +191,7 @@
             
             
 
-            <li><a href="/docs/motivation/" class="">Why RocketMQ</a></li>
+            <li><a href="/docs/quick-start/" class="">Quick Start</a></li>
           
             
             
@@ -429,7 +429,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
     <meta itemprop="headline" content="Broadcasting">
     <meta itemprop="description" content="How to send broadcast messages in Apache RocketMQ.">
-    <meta itemprop="datePublished" content="June 02, 2017">
+    <meta itemprop="datePublished" content="June 06, 2017">
     <meta itemprop="dateModified" content="April 25, 2017">
 
     <div class="page__inner-wrap">
@@ -446,31 +446,25 @@
 <nav class="toc">
     <header><h4 class="nav__title"><i class="fa fa-file-text"></i> On This Page</h4></header>
 <ul class="toc__menu" id="markdown-toc">
-  <li><a href="#what-is-broadcasting" id="markdown-toc-what-is-broadcasting">What is Broadcasting</a></li>
-  <li><a href="#how-to-use" id="markdown-toc-how-to-use">How to use</a>    <ul>
-      <li><a href="#firstproduce-message-as-before" id="markdown-toc-firstproduce-message-as-before">First,Produce message as before</a></li>
-      <li><a href="#secondconsume-message-in-broadcast-mode" id="markdown-toc-secondconsume-message-in-broadcast-mode">Second,Consume message in Broadcast mode</a></li>
-    </ul>
-  </li>
+  <li><a href="#what-is-broadcasting" id="markdown-toc-what-is-broadcasting">What is broadcasting</a></li>
+  <li><a href="#producer-example" id="markdown-toc-producer-example">Producer example</a></li>
+  <li><a href="#consumer-example" id="markdown-toc-consumer-example">Consumer example</a></li>
 </ul>
 
   </nav>
 </aside>
 
-<h4 id="what-is-broadcasting">What is Broadcasting</h4>
-<p>Broadcasting is when sending a meeage to a topic,all subscribers of the topic will receive the message even if they are in the same consumer group.If you want all subscribers in a group receive all the messages in a topic,broadcasting is a good choice.</p>
-
-<h4 id="how-to-use">How to use</h4>
+<h3 id="what-is-broadcasting">What is broadcasting</h3>
+<p>Broadcasting is sending a message to all subscribers of a topic. If you want all subscribers receive messages about a topic, broadcasting is a good choice.</p>
 
-<h5 id="firstproduce-message-as-before">First,Produce message as before</h5>
+<h3 id="producer-example">Producer example</h3>
 
-<div class="language-java highlighter-rouge"><pre class="highlight"><code><span class="n">DefaultMQProducer</span> <span class="n">producer</span> <span class="o">=</span> <span class="k">new</span> <span class="n">DefaultMQProducer</span><span class="o">(</span><span class="s">"ProducerGroupName"</span><span class="o">);</span>
+<div class="language-java highlighter-rouge"><pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="nc">BroadcastProducer</span> <span class="o">{</span>
+    <span class="kd">public</span> <span class="kd">static</span> <span class="kt">void</span> <span class="nf">main</span><span class="o">(</span><span class="n">String</span><span class="o">[]</span> <span class="n">args</span><span class="o">)</span> <span class="kd">throws</span> <span class="n">Exception</span> <span class="o">{</span>
+        <span class="n">DefaultMQProducer</span> <span class="n">producer</span> <span class="o">=</span> <span class="k">new</span> <span class="n">DefaultMQProducer</span><span class="o">(</span><span class="s">"ProducerGroupName"</span><span class="o">);</span>
+        <span class="n">producer</span><span class="o">.</span><span class="na">start</span><span class="o">();</span>
 
-<span class="n">producer</span><span class="o">.</span><span class="na">start</span><span class="o">();</span>
-
-<span class="k">for</span> <span class="o">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="mi">10000000</span><span class="o">;</span> <span class="n">i</span><span class="o">++){</span>
-    <span class="k">try</span> <span class="o">{</span>
-        <span class="o">{</span>
+        <span class="k">for</span> <span class="o">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="mi">100</span><span class="o">;</span> <span class="n">i</span><span class="o">++){</span>
             <span class="n">Message</span> <span class="n">msg</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Message</span><span class="o">(</span><span class="s">"TopicTest"</span><span class="o">,</span>
                 <span class="s">"TagA"</span><span class="o">,</span>
                 <span class="s">"OrderID188"</span><span class="o">,</span>
@@ -478,42 +472,42 @@
             <span class="n">SendResult</span> <span class="n">sendResult</span> <span class="o">=</span> <span class="n">producer</span><span class="o">.</span><span class="na">send</span><span class="o">(</span><span class="n">msg</span><span class="o">);</span>
             <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">printf</span><span class="o">(</span><span class="s">"%s%n"</span><span class="o">,</span> <span class="n">sendResult</span><span class="o">);</span>
         <span class="o">}</span>
-
-    <span class="o">}</span> <span class="k">catch</span> <span class="o">(</span><span class="n">Exception</span> <span class="n">e</span><span class="o">)</span> <span class="o">{</span>
-        <span class="n">e</span><span class="o">.</span><span class="na">printStackTrace</span><span class="o">();</span>
+        <span class="n">producer</span><span class="o">.</span><span class="na">shutdown</span><span class="o">();</span>
     <span class="o">}</span>
 <span class="o">}</span>
-<span class="n">producer</span><span class="o">.</span><span class="na">shutdown</span><span class="o">();</span>
 </code></pre>
 </div>
 
-<h5 id="secondconsume-message-in-broadcast-mode">Second,Consume message in Broadcast mode</h5>
+<h3 id="consumer-example">Consumer example</h3>
 
-<div class="language-java highlighter-rouge"><pre class="highlight"><code><span class="n">DefaultMQPushConsumer</span> <span class="n">consumer</span> <span class="o">=</span> <span class="k">new</span> <span class="n">DefaultMQPushConsumer</span><span class="o">(</span><span class="s">"please_rename_unique_group_name_1"</span><span class="o">);</span>
+<div class="language-java highlighter-rouge"><pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="nc">BroadcastConsumer</span> <span class="o">{</span>
+    <span class="kd">public</span> <span class="kd">static</span> <span class="kt">void</span> <span class="nf">main</span><span class="o">(</span><span class="n">String</span><span class="o">[]</span> <span class="n">args</span><span class="o">)</span> <span class="kd">throws</span> <span class="n">Exception</span> <span class="o">{</span>
+        <span class="n">DefaultMQPushConsumer</span> <span class="n">consumer</span> <span class="o">=</span> <span class="k">new</span> <span class="n">DefaultMQPushConsumer</span><span class="o">(</span><span class="s">"example_group_name"</span><span class="o">);</span>
 
-<span class="n">consumer</span><span class="o">.</span><span class="na">setConsumeFromWhere</span><span class="o">(</span><span class="n">ConsumeFromWhere</span><span class="o">.</span><span class="na">CONSUME_FROM_FIRST_OFFSET</span><span class="o">);</span>
+        <span class="n">consumer</span><span class="o">.</span><span class="na">setConsumeFromWhere</span><span class="o">(</span><span class="n">ConsumeFromWhere</span><span class="o">.</span><span class="na">CONSUME_FROM_FIRST_OFFSET</span><span class="o">);</span>
 
-<span class="c1">//set to broadcast mode</span>
-<span class="n">consumer</span><span class="o">.</span><span class="na">setMessageModel</span><span class="o">(</span><span class="n">MessageModel</span><span class="o">.</span><span class="na">BROADCASTING</span><span class="o">);</span>
+        <span class="c1">//set to broadcast mode</span>
+        <span class="n">consumer</span><span class="o">.</span><span class="na">setMessageModel</span><span class="o">(</span><span class="n">MessageModel</span><span class="o">.</span><span class="na">BROADCASTING</span><span class="o">);</span>
 
-<span class="n">consumer</span><span class="o">.</span><span class="na">subscribe</span><span class="o">(</span><span class="s">"TopicTest"</span><span class="o">,</span> <span class="s">"TagA || TagC || TagD"</span><span class="o">);</span>
+        <span class="n">consumer</span><span class="o">.</span><span class="na">subscribe</span><span class="o">(</span><span class="s">"TopicTest"</span><span class="o">,</span> <span class="s">"TagA || TagC || TagD"</span><span class="o">);</span>
 
-<span class="n">consumer</span><span class="o">.</span><span class="na">registerMessageListener</span><span class="o">(</span><span class="k">new</span> <span class="n">MessageListenerConcurrently</span><span class="o">()</span> <span class="o">{</span>
+        <span class="n">consumer</span><span class="o">.</span><span class="na">registerMessageListener</span><span class="o">(</span><span class="k">new</span> <span class="n">MessageListenerConcurrently</span><span class="o">()</span> <span class="o">{</span>
 
-    <span class="nd">@Override</span>
-    <span class="kd">public</span> <span class="n">ConsumeConcurrentlyStatus</span> <span class="nf">consumeMessage</span><span class="o">(</span><span class="n">List</span><span class="o">&lt;</span><span class="n">MessageExt</span><span class="o">&gt;</span> <span class="n">msgs</span><span class="o">,</span>
-        <span class="n">ConsumeConcurrentlyContext</span> <span class="n">context</span><span class="o">)</span> <span class="o">{</span>
-        <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">printf</span><span class="o">(</span><span class="n">Thread</span><span class="o">.</span><span class="na">currentThread</span><span class="o">().</span><span class="na">getName</span><span class="o">()</span> <span class="o">+</span> <span class="s">" Receive New Messages: "</span> <span class="o">+</span> <span class="n">msgs</span> <span class="o">+</span> <span class="s">"%n"</span><span class="o">);</span>
-        <span class="k">return</span> <span class="n">ConsumeConcurrentlyStatus</span><span class="o">.</span><span class="na">CONSUME_SUCCESS</span><span class="o">;</span>
-    <span class="o">}</span>
-<span class="o">});</span>
+            <span class="nd">@Override</span>
+            <span class="kd">public</span> <span class="n">ConsumeConcurrentlyStatus</span> <span class="nf">consumeMessage</span><span class="o">(</span><span class="n">List</span><span class="o">&lt;</span><span class="n">MessageExt</span><span class="o">&gt;</span> <span class="n">msgs</span><span class="o">,</span>
+                <span class="n">ConsumeConcurrentlyContext</span> <span class="n">context</span><span class="o">)</span> <span class="o">{</span>
+                <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">printf</span><span class="o">(</span><span class="n">Thread</span><span class="o">.</span><span class="na">currentThread</span><span class="o">().</span><span class="na">getName</span><span class="o">()</span> <span class="o">+</span> <span class="s">" Receive New Messages: "</span> <span class="o">+</span> <span class="n">msgs</span> <span class="o">+</span> <span class="s">"%n"</span><span class="o">);</span>
+                <span class="k">return</span> <span class="n">ConsumeConcurrentlyStatus</span><span class="o">.</span><span class="na">CONSUME_SUCCESS</span><span class="o">;</span>
+            <span class="o">}</span>
+        <span class="o">});</span>
 
-<span class="n">consumer</span><span class="o">.</span><span class="na">start</span><span class="o">();</span>
-<span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">printf</span><span class="o">(</span><span class="s">"Broadcast Consumer Started.%n"</span><span class="o">);</span>
+        <span class="n">consumer</span><span class="o">.</span><span class="na">start</span><span class="o">();</span>
+        <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">printf</span><span class="o">(</span><span class="s">"Broadcast Consumer Started.%n"</span><span class="o">);</span>
+    <span class="o">}</span>
+<span class="o">}</span>
 </code></pre>
 </div>
 
-<p>Enjoy it.</p>
 
         
       </section>

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/94c21bba/content/docs/cli-admin-tool/index.html
----------------------------------------------------------------------
diff --git a/content/docs/cli-admin-tool/index.html b/content/docs/cli-admin-tool/index.html
index e7492d7..a04390f 100644
--- a/content/docs/cli-admin-tool/index.html
+++ b/content/docs/cli-admin-tool/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-06-02T15:31:28+08:00">
+  <meta property="article:published_time" content="2017-06-06T21:20:18+08:00">
 
 
 
@@ -183,7 +183,7 @@
             
             
 
-            <li><a href="/docs/quick-start/" class="">Quick Start</a></li>
+            <li><a href="/docs/motivation/" class="">Why RocketMQ</a></li>
           
             
             
@@ -191,7 +191,7 @@
             
             
 
-            <li><a href="/docs/motivation/" class="">Why RocketMQ</a></li>
+            <li><a href="/docs/quick-start/" class="">Quick Start</a></li>
           
             
             
@@ -429,7 +429,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
     <meta itemprop="headline" content="CLI Admin Tool">
     <meta itemprop="description" content="RocketMQ provides a CLI admin tool belt to query, manage and diagnose various issues.">
-    <meta itemprop="datePublished" content="June 02, 2017">
+    <meta itemprop="datePublished" content="June 06, 2017">
     <meta itemprop="dateModified" content="December 17, 2016">
 
     <div class="page__inner-wrap">
@@ -465,7 +465,7 @@
 
 <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 <a href="https://github.com/apache/incubator-rocketmq/tree/master/tools">rocketmq-tools module</a> contains its source code.</p>
+<p>In case you don’t have source code, the <a href="https://github.com/apache/incubator-rocketmq/tree/master/tools">rocketmq-tools module</a> contains its source code.</p>
 
 <h1 id="how-to-use">How to use</h1>
 

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/94c21bba/content/docs/cluster-deployment/index.html
----------------------------------------------------------------------
diff --git a/content/docs/cluster-deployment/index.html b/content/docs/cluster-deployment/index.html
index e8b6053..8ec4cdd 100644
--- a/content/docs/cluster-deployment/index.html
+++ b/content/docs/cluster-deployment/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-06-02T15:31:28+08:00">
+  <meta property="article:published_time" content="2017-06-06T21:20:18+08:00">
 
 
 
@@ -183,7 +183,7 @@
             
             
 
-            <li><a href="/docs/quick-start/" class="">Quick Start</a></li>
+            <li><a href="/docs/motivation/" class="">Why RocketMQ</a></li>
           
             
             
@@ -191,7 +191,7 @@
             
             
 
-            <li><a href="/docs/motivation/" class="">Why RocketMQ</a></li>
+            <li><a href="/docs/quick-start/" class="">Quick Start</a></li>
           
             
             
@@ -429,7 +429,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
     <meta itemprop="headline" content="Cluster Configuration and Deployment">
     <meta itemprop="description" content="Prerequisite">
-    <meta itemprop="datePublished" content="June 02, 2017">
+    <meta itemprop="datePublished" content="June 06, 2017">
     <meta itemprop="dateModified" content="December 17, 2016">
 
     <div class="page__inner-wrap">

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/94c21bba/content/docs/code-guidelines/index.html
----------------------------------------------------------------------
diff --git a/content/docs/code-guidelines/index.html b/content/docs/code-guidelines/index.html
index 423459a..42558bc 100644
--- a/content/docs/code-guidelines/index.html
+++ b/content/docs/code-guidelines/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-06-02T15:31:28+08:00">
+  <meta property="article:published_time" content="2017-06-06T21:20:18+08:00">
 
 
 
@@ -183,7 +183,7 @@
             
             
 
-            <li><a href="/docs/quick-start/" class="">Quick Start</a></li>
+            <li><a href="/docs/motivation/" class="">Why RocketMQ</a></li>
           
             
             
@@ -191,7 +191,7 @@
             
             
 
-            <li><a href="/docs/motivation/" class="">Why RocketMQ</a></li>
+            <li><a href="/docs/quick-start/" class="">Quick Start</a></li>
           
             
             
@@ -429,7 +429,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
     <meta itemprop="headline" content="Coding Guidelines">
     <meta itemprop="description" content="Apache RocketMQ Coding Guidelines">
-    <meta itemprop="datePublished" content="June 02, 2017">
+    <meta itemprop="datePublished" content="June 06, 2017">
     <meta itemprop="dateModified" content="December 30, 2016">
 
     <div class="page__inner-wrap">

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/94c21bba/content/docs/core-concept/index.html
----------------------------------------------------------------------
diff --git a/content/docs/core-concept/index.html b/content/docs/core-concept/index.html
index ce24804..0ec46d7 100644
--- a/content/docs/core-concept/index.html
+++ b/content/docs/core-concept/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-06-02T15:31:28+08:00">
+  <meta property="article:published_time" content="2017-06-06T21:20:18+08:00">
 
 
 
@@ -183,7 +183,7 @@
             
             
 
-            <li><a href="/docs/quick-start/" class="">Quick Start</a></li>
+            <li><a href="/docs/motivation/" class="">Why RocketMQ</a></li>
           
             
             
@@ -191,7 +191,7 @@
             
             
 
-            <li><a href="/docs/motivation/" class="">Why RocketMQ</a></li>
+            <li><a href="/docs/quick-start/" class="">Quick Start</a></li>
           
             
             
@@ -429,7 +429,7 @@
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
     <meta itemprop="headline" content="Core Concept">
     <meta itemprop="description" content="">
-    <meta itemprop="datePublished" content="June 02, 2017">
+    <meta itemprop="datePublished" content="June 06, 2017">
     <meta itemprop="dateModified" content="December 17, 2016">
 
     <div class="page__inner-wrap">

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/94c21bba/content/docs/documentation/index.html
----------------------------------------------------------------------
diff --git a/content/docs/documentation/index.html b/content/docs/documentation/index.html
index b83b207..13cc0d6 100644
--- a/content/docs/documentation/index.html
+++ b/content/docs/documentation/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-06-02T15:31:28+08:00">
+  <meta property="article:published_time" content="2017-06-06T21:20:18+08:00">
 
 
 
@@ -183,7 +183,7 @@
             
             
 
-            <li><a href="/docs/quick-start/" class="">Quick Start</a></li>
+            <li><a href="/docs/motivation/" class="">Why RocketMQ</a></li>
           
             
             
@@ -191,7 +191,7 @@
             
             
 
-            <li><a href="/docs/motivation/" class="">Why RocketMQ</a></li>
+            <li><a href="/docs/quick-start/" class="">Quick Start</a></li>
           
             
             
@@ -429,7 +429,7 @@
   <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="June 02, 2017">
+    <meta itemprop="datePublished" content="June 06, 2017">
     <meta itemprop="dateModified" content="March 02, 2017">
 
     <div class="page__inner-wrap">

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/94c21bba/content/docs/faq/index.html
----------------------------------------------------------------------
diff --git a/content/docs/faq/index.html b/content/docs/faq/index.html
index d759e83..2db6b4a 100644
--- a/content/docs/faq/index.html
+++ b/content/docs/faq/index.html
@@ -18,7 +18,7 @@
 
 
 
-<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 name="description" content="The following questions are frequently asked with regard to the RocketMQ project in general.General1. Why did we create rocketmq project instead of selecting other products?Please refer to Why RocketMQ">
 
 
 
@@ -30,13 +30,13 @@
 
 
 
-  <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 property="og:description" content="The following questions are frequently asked with regard to the RocketMQ project in general.General1. Why did we create rocketmq project instead of selecting other products?Please refer to Why RocketMQ">
 
 
 
   <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:description" content="The following questions are frequently asked with regard to the RocketMQ project in general.General1. Why did we create rocketmq project instead of selecting other products?Please refer to Why RocketMQ">
   <meta name="twitter:url" content="">
 
   
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-06-02T15:31:28+08:00">
+  <meta property="article:published_time" content="2017-06-06T21:20:18+08:00">
 
 
 
@@ -183,7 +183,7 @@
             
             
 
-            <li><a href="/docs/quick-start/" class="">Quick Start</a></li>
+            <li><a href="/docs/motivation/" class="">Why RocketMQ</a></li>
           
             
             
@@ -191,7 +191,7 @@
             
             
 
-            <li><a href="/docs/motivation/" class="">Why RocketMQ</a></li>
+            <li><a href="/docs/quick-start/" class="">Quick Start</a></li>
           
             
             
@@ -428,8 +428,8 @@
 
   <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="June 02, 2017">
+    <meta itemprop="description" content="The following questions are frequently asked with regard to the RocketMQ project in general.General1. Why did we create rocketmq project instead of selecting other products?Please refer to Why RocketMQ">
+    <meta itemprop="datePublished" content="June 06, 2017">
     <meta itemprop="dateModified" content="December 28, 2016">
 
     <div class="page__inner-wrap">
@@ -442,21 +442,21 @@
       
 
       <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>
+        <p>The following questions are frequently asked with regard to the RocketMQ project in general.</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="1-why-did-we-create-rocketmq-project-instead-of-selecting-other-products">1. Why did we create rocketmq project instead of selecting other products?</h3>
+<p>Please refer to <a href="/docs/motivation/">Why RocketMQ</a></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>
+<p>No. RocketMQ can run independently.</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 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>
 </ol>
 

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/94c21bba/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 e0c7c4b..7e98fdb 100644
--- a/content/docs/filter-by-sql92-example/index.html
+++ b/content/docs/filter-by-sql92-example/index.html
@@ -13,7 +13,7 @@
 
 
 
-<title>Filter By SQL92 Example  - Apache RocketMQ</title>
+<title>Filter Example  - 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="Filter By SQL92 Example">
+<meta property="og:title" content="Filter Example">
 
 
 
@@ -35,7 +35,7 @@
 
 
   <meta name="twitter:site" content="@ApacheRocketMQ">
-  <meta name="twitter:title" content="Filter By SQL92 Example">
+  <meta name="twitter:title" content="Filter Example">
   <meta name="twitter:description" content="How to filter messages by SQL92 in Apache RocketMQ.">
   <meta name="twitter:url" content="">
 
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-06-02T15:31:28+08:00">
+  <meta property="article:published_time" content="2017-06-06T21:20:18+08:00">
 
 
 
@@ -183,7 +183,7 @@
             
             
 
-            <li><a href="/docs/quick-start/" class="">Quick Start</a></li>
+            <li><a href="/docs/motivation/" class="">Why RocketMQ</a></li>
           
             
             
@@ -191,7 +191,7 @@
             
             
 
-            <li><a href="/docs/motivation/" class="">Why RocketMQ</a></li>
+            <li><a href="/docs/quick-start/" class="">Quick Start</a></li>
           
             
             
@@ -427,22 +427,22 @@
 
 
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
-    <meta itemprop="headline" content="Filter By SQL92 Example">
+    <meta itemprop="headline" content="Filter Example">
     <meta itemprop="description" content="How to filter messages by SQL92 in Apache RocketMQ.">
-    <meta itemprop="datePublished" content="June 02, 2017">
+    <meta itemprop="datePublished" content="June 06, 2017">
     <meta itemprop="dateModified" content="April 27, 2017">
 
     <div class="page__inner-wrap">
       
         <header>
-          <h1 class="page__title" itemprop="headline">Filter By SQL92 Example
+          <h1 class="page__title" itemprop="headline">Filter Example
 </h1>
           
         </header>
       
 
       <section class="page__content" itemprop="text">
-        <p>In most cases, tag is simple and useful to select message as you want. For example:</p>
+        <p>In most cases, tag is a simple and useful design to select message you want. For example:</p>
 
 <div class="language-java highlighter-rouge"><pre class="highlight"><code><span class="n">DefaultMQPushConsumer</span> <span class="n">consumer</span> <span class="o">=</span> <span class="k">new</span> <span class="n">DefaultMQPushConsumer</span><span class="o">(</span><span class="s">"CID_EXAMPLE"</span><span class="o">);</span>
 <span class="n">consumer</span><span class="o">.</span><span class="na">subscribe</span><span class="o">(</span><span class="s">"TOPIC"</span><span class="o">,</span> <span class="s">"TAGA || TAGB || TAGC"</span><span class="o">);</span>
@@ -455,18 +455,19 @@
 <ul class="toc__menu" id="markdown-toc">
   <li><a href="#principle" id="markdown-toc-principle">Principle</a></li>
   <li><a href="#grammars" id="markdown-toc-grammars">Grammars</a></li>
-  <li><a href="#interface" id="markdown-toc-interface">Interface</a></li>
-  <li><a href="#examples" id="markdown-toc-examples">Examples</a></li>
+  <li><a href="#usage-constraints" id="markdown-toc-usage-constraints">Usage constraints</a></li>
+  <li><a href="#producer-example" id="markdown-toc-producer-example">Producer example</a></li>
+  <li><a href="#consumer-example" id="markdown-toc-consumer-example">Consumer example</a></li>
 </ul>
 
   </nav>
 </aside>
 
-<p>Consumer will recieve messages that contains TAGA or TAGB or TAGC. But the limitation is that one message only could has one tag, this may be not suitable for more sophisticated scenarios.At this time, you could use sql expression to select messages.</p>
+<p>The consumer will recieve messages that contains TAGA or TAGB or TAGC. But the limitation is that one message only can have one tag, and this may not work for sophisticated scenarios. In this case, you can use SQL expression to filter out messages.</p>
 
 <h3 id="principle">Principle</h3>
 
-<p>SQL feature could do some calculation through the properties you put in messages when sending. Under the grammars defined by RocketMQ, you can implement some interesting logic as you want. Here is an example:</p>
+<p>SQL feature could do some calculation through the properties you put in when sending messages. Under the grammars defined by RocketMQ, you can implement some interesting logic. Here is an example:</p>
 
 <pre>
 ------------
@@ -487,41 +488,36 @@
 
 <h3 id="grammars">Grammars</h3>
 
-<p>RocketMQ only defines some basic grammars to support this feature. Not enough ? You could also extend it easily.</p>
+<p>RocketMQ only defines some basic grammars to support this feature. You could also extend it easily.</p>
 
 <ol>
   <li>Numeric comparison, like <code class="highlighter-rouge">&gt;</code>, <code class="highlighter-rouge">&gt;=</code>, <code class="highlighter-rouge">&lt;</code>, <code class="highlighter-rouge">&lt;=</code>, <code class="highlighter-rouge">BETWEEN</code>, <code class="highlighter-rouge">=</code>;</li>
   <li>Character comparison, like <code class="highlighter-rouge">=</code>, <code class="highlighter-rouge">&lt;&gt;</code>, <code class="highlighter-rouge">IN</code>;</li>
   <li><code class="highlighter-rouge">IS NULL</code> or <code class="highlighter-rouge">IS NOT NULL</code>;</li>
-  <li>Logical <code class="highlighter-rouge">AND</code>, logical <code class="highlighter-rouge">OR</code>, logical <code class="highlighter-rouge">NOT</code>;</li>
+  <li>Logical <code class="highlighter-rouge">AND</code>, <code class="highlighter-rouge">OR</code>, <code class="highlighter-rouge">NOT</code>;</li>
 </ol>
 
-<p>Constant type are:</p>
+<p>Constant types are:</p>
 
 <ol>
   <li>Numeric, like 123, 3.1415;</li>
-  <li>Character, like ‘abc’, must be maked with single quotes;</li>
+  <li>Character, like ‘abc’, must be made with single quotes;</li>
   <li><code class="highlighter-rouge">NULL</code>, special constant;</li>
   <li>Boolean, <code class="highlighter-rouge">TRUE</code> or <code class="highlighter-rouge">FALSE</code>;</li>
 </ol>
 
-<h3 id="interface">Interface</h3>
+<h3 id="usage-constraints">Usage constraints</h3>
 
-<p>Only push consumer could select messages by SQL92.The interface is:</p>
+<p>Only push consumer could select messages by SQL92. The interface is:</p>
 
 <p><code class="highlighter-rouge">public void subscribe(final String topic, final MessageSelector messageSelector)</code></p>
 
-<h3 id="examples">Examples</h3>
+<h3 id="producer-example">Producer example</h3>
 
 <p>You can put properties in message through method <code class="highlighter-rouge">putUserProperty</code> when sending.</p>
 
 <div class="language-java highlighter-rouge"><pre class="highlight"><code><span class="n">DefaultMQProducer</span> <span class="n">producer</span> <span class="o">=</span> <span class="k">new</span> <span class="n">DefaultMQProducer</span><span class="o">(</span><span class="s">"please_rename_unique_group_name"</span><span class="o">);</span>
-<span class="k">try</span> <span class="o">{</span>
-    <span class="n">producer</span><span class="o">.</span><span class="na">start</span><span class="o">();</span>
-<span class="o">}</span> <span class="k">catch</span> <span class="o">(</span><span class="n">MQClientException</span> <span class="n">e</span><span class="o">)</span> <span class="o">{</span>
-    <span class="n">e</span><span class="o">.</span><span class="na">printStackTrace</span><span class="o">();</span>
-    <span class="k">return</span><span class="o">;</span>
-<span class="o">}</span>
+<span class="n">producer</span><span class="o">.</span><span class="na">start</span><span class="o">();</span>
 
 <span class="n">Message</span> <span class="n">msg</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Message</span><span class="o">(</span><span class="s">"TopicTest"</span><span class="o">,</span>
     <span class="n">tag</span><span class="o">,</span>
@@ -536,17 +532,14 @@
 </code></pre>
 </div>
 
+<h3 id="consumer-example">Consumer example</h3>
+
 <p>Use <code class="highlighter-rouge">MessageSelector.bySql</code> to select messages through SQL92 when consuming.</p>
 
 <div class="language-java highlighter-rouge"><pre class="highlight"><code><span class="n">DefaultMQPushConsumer</span> <span class="n">consumer</span> <span class="o">=</span> <span class="k">new</span> <span class="n">DefaultMQPushConsumer</span><span class="o">(</span><span class="s">"please_rename_unique_group_name_4"</span><span class="o">);</span>
 
-<span class="k">try</span> <span class="o">{</span>
-	<span class="c1">// only subsribe messages have property a, also a &gt;=0 and a &lt;= 3</span>
-    <span class="n">consumer</span><span class="o">.</span><span class="na">subscribe</span><span class="o">(</span><span class="s">"TopicTest"</span><span class="o">,</span> <span class="n">MessageSelector</span><span class="o">.</span><span class="na">bySql</span><span class="o">(</span><span class="s">"a between 0 and 3"</span><span class="o">);</span>
-<span class="o">}</span> <span class="k">catch</span> <span class="o">(</span><span class="n">MQClientException</span> <span class="n">e</span><span class="o">)</span> <span class="o">{</span>
-    <span class="n">e</span><span class="o">.</span><span class="na">printStackTrace</span><span class="o">();</span>
-    <span class="k">return</span><span class="o">;</span>
-<span class="o">}</span>
+<span class="c1">// only subsribe messages have property a, also a &gt;=0 and a &lt;= 3</span>
+<span class="n">consumer</span><span class="o">.</span><span class="na">subscribe</span><span class="o">(</span><span class="s">"TopicTest"</span><span class="o">,</span> <span class="n">MessageSelector</span><span class="o">.</span><span class="na">bySql</span><span class="o">(</span><span class="s">"a between 0 and 3"</span><span class="o">);</span>
 
 <span class="n">consumer</span><span class="o">.</span><span class="na">registerMessageListener</span><span class="o">(</span><span class="k">new</span> <span class="n">MessageListenerConcurrently</span><span class="o">()</span> <span class="o">{</span>
     <span class="nd">@Override</span>
@@ -577,7 +570,7 @@
     <h4 class="page__share-title">Share on</h4>
   
 
-  <a href="https://twitter.com/intent/tweet?via=ApacheRocketMQ&text=Filter By SQL92 Example  /docs/filter-by-sql92-example/" class="btn btn--twitter" title="Share on Twitter"><i class="fa fa-fw fa-twitter" aria-hidden="true"></i><span> Twitter</span></a>
+  <a href="https://twitter.com/intent/tweet?via=ApacheRocketMQ&text=Filter Example  /docs/filter-by-sql92-example/" class="btn btn--twitter" title="Share on Twitter"><i class="fa fa-fw fa-twitter" aria-hidden="true"></i><span> Twitter</span></a>
 
   <a href="https://www.facebook.com/sharer/sharer.php?u=/docs/filter-by-sql92-example/" 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/94c21bba/content/docs/motivation/index.html
----------------------------------------------------------------------
diff --git a/content/docs/motivation/index.html b/content/docs/motivation/index.html
index f916c6c..3f020b9 100644
--- a/content/docs/motivation/index.html
+++ b/content/docs/motivation/index.html
@@ -18,7 +18,7 @@
 
 
 
-<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 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.">
 
 
 
@@ -30,13 +30,13 @@
 
 
 
-  <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 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 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: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:url" content="">
 
   
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-06-02T15:31:28+08:00">
+  <meta property="article:published_time" content="2017-06-06T21:20:18+08:00">
 
 
 
@@ -183,7 +183,7 @@
             
             
 
-            <li><a href="/docs/quick-start/" class="">Quick Start</a></li>
+            <li><a href="/docs/motivation/" class="active">Why RocketMQ</a></li>
           
             
             
@@ -191,7 +191,7 @@
             
             
 
-            <li><a href="/docs/motivation/" class="active">Why RocketMQ</a></li>
+            <li><a href="/docs/quick-start/" class="">Quick Start</a></li>
           
             
             
@@ -428,8 +428,8 @@
 
   <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="June 02, 2017">
+    <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="datePublished" content="June 06, 2017">
     <meta itemprop="dateModified" content="December 17, 2016">
 
     <div class="page__inner-wrap">
@@ -442,7 +442,7 @@
       
 
       <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>
+        <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>
 
 <aside class="sidebar__right">
 <nav class="toc">
@@ -457,12 +457,12 @@
 
 <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>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>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>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>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>
+<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>
 
 <h1 id="rocketmq-vs-activemq-vs-kafka">RocketMQ vs. ActiveMQ vs. Kafka</h1>