You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rocketmq.apache.org by yu...@apache.org on 2016/12/30 11:08:27 UTC

[09/10] incubator-rocketmq-site git commit: Perfect best-practise-for-producer closes apache/incubator-rocketmq-site#2

Perfect best-practise-for-producer closes apache/incubator-rocketmq-site#2


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/414fa48a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/tree/414fa48a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/diff/414fa48a

Branch: refs/heads/asf-site
Commit: 414fa48a0b6f6914d98f0f272e595d8088e63e4e
Parents: c7babbf
Author: dongeforever <zh...@yeah.net>
Authored: Fri Dec 30 19:05:39 2016 +0800
Committer: yukon <yu...@apache.org>
Committed: Fri Dec 30 19:05:39 2016 +0800

----------------------------------------------------------------------
 _docs/best-practice-producer.md                | 5 +++--
 content/about/contact/index.html               | 2 +-
 content/about/team/index.html                  | 2 +-
 content/docs/best-practice-broker/index.html   | 2 +-
 content/docs/best-practice-consumer/index.html | 2 +-
 content/docs/best-practice-namesvr/index.html  | 2 +-
 content/docs/best-practice-producer/index.html | 9 +++++----
 content/docs/cli-admin-tool/index.html         | 2 +-
 content/docs/cluster-deployment/index.html     | 2 +-
 content/docs/code-guidelines/index.html        | 2 +-
 content/docs/core-concept/index.html           | 2 +-
 content/docs/faq/index.html                    | 2 +-
 content/docs/motivation/index.html             | 2 +-
 content/docs/pull-request/index.html           | 2 +-
 content/docs/quick-start/index.html            | 2 +-
 content/feed.xml                               | 2 +-
 16 files changed, 22 insertions(+), 20 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/414fa48a/_docs/best-practice-producer.md
----------------------------------------------------------------------
diff --git a/_docs/best-practice-producer.md b/_docs/best-practice-producer.md
index 56f8794..7307a74 100644
--- a/_docs/best-practice-producer.md
+++ b/_docs/best-practice-producer.md
@@ -20,9 +20,10 @@ If the Broker's role is SYNC_MASTER(default is ASYNC_MASTER), but no slave Broke
 ### SEND_OK
 You should be aware that SEND_OK does not mean it is reliable. If you cannot tolerate message missing, you should also enable SYNC_MASTER or SYNC_FLUSH.
 ### Duplication or Missing
-If you get FLUSH_DISK_TIMEOUT, FLUSH_SLAVE_TIMEOUT or SLAVE_NOT_AVAILABLE, and the Broker happens to shutdown right the moment, you may get your message missing.
+If you get FLUSH_DISK_TIMEOUT, FLUSH_SLAVE_TIMEOUT and the Broker happens to shutdown right the moment, you may get your message missing.
 At this time, you have two choices, one is letting it go, which may get message missing; another is resending, which may get message duplication.
 Often we suggest resend and make a way to handle the duplication removal when consuming. Unless you feel it does not matter when some messages are missed.
+But be ware that resending has no use when you get SLAVE_NOT_AVAILABLE, you'd better keep the scene and send some alerts to the Cluster Manager. 
 ## Timeout 
 The Client send requests to Broker, and wait the responses, but if the max wait time is elapsed and no response is return, the Client will throw a RemotingTimeoutException.
 The default wait time is 3 seconds.You can also pass timeout argument using send(msg, timeout) instead of send(msg).
@@ -32,7 +33,7 @@ We suggest the message should be no more than 512K.
 ## Async Sending
 Default send(msg) will block until the response is return. So if you care about performance, we suggest you use send(msg, callback) which will act in a async way. 
 ## Producer Group
-Normally, the producer group has no effects. But if you use transaction, you should take care of it. 
+Normally, the producer group has no effects. But if you are involved in  transaction, you should pay attention to it. 
 In default, you can only create only one producer with the same producer group in the same JVM. Usually, this is enough.
 ## Thread Safety 
 The producer is thread-safe, you can just use it in your business logic.

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/414fa48a/content/about/contact/index.html
----------------------------------------------------------------------
diff --git a/content/about/contact/index.html b/content/about/contact/index.html
index ba3cd24..3fd5c28 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="2016-12-30T19:02:19+08:00">
+  <meta property="article:published_time" content="2016-12-30T19:04:24+08:00">
 
 
 

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/414fa48a/content/about/team/index.html
----------------------------------------------------------------------
diff --git a/content/about/team/index.html b/content/about/team/index.html
index 01b832c..d8c80f3 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="2016-12-30T19:02:19+08:00">
+  <meta property="article:published_time" content="2016-12-30T19:04:24+08:00">
 
 
 

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/414fa48a/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 c14cda3..a3a2491 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="2016-12-30T19:02:19+08:00">
+  <meta property="article:published_time" content="2016-12-30T19:04:24+08:00">
 
 
 

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/414fa48a/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 0a1b52a..1bd3d1d 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="2016-12-30T19:02:19+08:00">
+  <meta property="article:published_time" content="2016-12-30T19:04:24+08:00">
 
 
 

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/414fa48a/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 402a326..2d4a357 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="2016-12-30T19:02:19+08:00">
+  <meta property="article:published_time" content="2016-12-30T19:04:24+08:00">
 
 
 

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/414fa48a/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 705a833..fffbdb1 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="2016-12-30T19:02:19+08:00">
+  <meta property="article:published_time" content="2016-12-30T19:04:24+08:00">
 
 
 
@@ -358,9 +358,10 @@ Follow are the descriptions about each status.</p>
 <h3 id="send_ok">SEND_OK</h3>
 <p>You should be aware that SEND_OK does not mean it is reliable. If you cannot tolerate message missing, you should also enable SYNC_MASTER or SYNC_FLUSH.</p>
 <h3 id="duplication-or-missing">Duplication or Missing</h3>
-<p>If you get FLUSH_DISK_TIMEOUT, FLUSH_SLAVE_TIMEOUT or SLAVE_NOT_AVAILABLE, and the Broker happens to shutdown right the moment, you may get your message missing.
+<p>If you get FLUSH_DISK_TIMEOUT, FLUSH_SLAVE_TIMEOUT and the Broker happens to shutdown right the moment, you may get your message missing.
 At this time, you have two choices, one is letting it go, which may get message missing; another is resending, which may get message duplication.
-Often we suggest resend and make a way to handle the duplication removal when consuming. Unless you feel it does not matter when some messages are missed.</p>
+Often we suggest resend and make a way to handle the duplication removal when consuming. Unless you feel it does not matter when some messages are missed.
+But be ware that resending has no use when you get SLAVE_NOT_AVAILABLE, you\u2019d better keep the scene and send some alerts to the Cluster Manager.</p>
 <h2 id="timeout">Timeout</h2>
 <p>The Client send requests to Broker, and wait the responses, but if the max wait time is elapsed and no response is return, the Client will throw a RemotingTimeoutException.
 The default wait time is 3 seconds.You can also pass timeout argument using send(msg, timeout) instead of send(msg).
@@ -370,7 +371,7 @@ Note that we do not suggest the value to be too small, for the Broker need some
 <h2 id="async-sending">Async Sending</h2>
 <p>Default send(msg) will block until the response is return. So if you care about performance, we suggest you use send(msg, callback) which will act in a async way.</p>
 <h2 id="producer-group">Producer Group</h2>
-<p>Normally, the producer group has no effects. But if you use transaction, you should take care of it. 
+<p>Normally, the producer group has no effects. But if you are involved in  transaction, you should pay attention to it. 
 In default, you can only create only one producer with the same producer group in the same JVM. Usually, this is enough.</p>
 <h2 id="thread-safety">Thread Safety</h2>
 <p>The producer is thread-safe, you can just use it in your business logic.</p>

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/414fa48a/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 b1a07af..1700631 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="2016-12-30T19:02:19+08:00">
+  <meta property="article:published_time" content="2016-12-30T19:04:24+08:00">
 
 
 

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/414fa48a/content/docs/cluster-deployment/index.html
----------------------------------------------------------------------
diff --git a/content/docs/cluster-deployment/index.html b/content/docs/cluster-deployment/index.html
index a096f53..b07acf0 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="2016-12-30T19:02:19+08:00">
+  <meta property="article:published_time" content="2016-12-30T19:04:24+08:00">
 
 
 

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/414fa48a/content/docs/code-guidelines/index.html
----------------------------------------------------------------------
diff --git a/content/docs/code-guidelines/index.html b/content/docs/code-guidelines/index.html
index c2f828d..8db79cd 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="2016-12-30T19:02:19+08:00">
+  <meta property="article:published_time" content="2016-12-30T19:04:24+08:00">
 
 
 

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/414fa48a/content/docs/core-concept/index.html
----------------------------------------------------------------------
diff --git a/content/docs/core-concept/index.html b/content/docs/core-concept/index.html
index f113822..7bcc745 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="2016-12-30T19:02:19+08:00">
+  <meta property="article:published_time" content="2016-12-30T19:04:24+08:00">
 
 
 

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/414fa48a/content/docs/faq/index.html
----------------------------------------------------------------------
diff --git a/content/docs/faq/index.html b/content/docs/faq/index.html
index 0f26981..d896580 100644
--- a/content/docs/faq/index.html
+++ b/content/docs/faq/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2016-12-30T19:02:19+08:00">
+  <meta property="article:published_time" content="2016-12-30T19:04:24+08:00">
 
 
 

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/414fa48a/content/docs/motivation/index.html
----------------------------------------------------------------------
diff --git a/content/docs/motivation/index.html b/content/docs/motivation/index.html
index 6cf8709..a37059f 100644
--- a/content/docs/motivation/index.html
+++ b/content/docs/motivation/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2016-12-30T19:02:19+08:00">
+  <meta property="article:published_time" content="2016-12-30T19:04:24+08:00">
 
 
 

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/414fa48a/content/docs/pull-request/index.html
----------------------------------------------------------------------
diff --git a/content/docs/pull-request/index.html b/content/docs/pull-request/index.html
index e8df10f..bb50860 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="2016-12-30T19:02:19+08:00">
+  <meta property="article:published_time" content="2016-12-30T19:04:24+08:00">
 
 
 

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/414fa48a/content/docs/quick-start/index.html
----------------------------------------------------------------------
diff --git a/content/docs/quick-start/index.html b/content/docs/quick-start/index.html
index 80391cf..fe8bfee 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="2016-12-30T19:02:19+08:00">
+  <meta property="article:published_time" content="2016-12-30T19:04:24+08:00">
 
 
 

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/414fa48a/content/feed.xml
----------------------------------------------------------------------
diff --git a/content/feed.xml b/content/feed.xml
index 42aaa45..4b9886d 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>2016-12-30T19:02:19+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">Mastering Component Compatible Dependency</title><link href="/maven/mastering-component-compatible-dependency/" rel="alternate" type="text/html" title="Mastering Component
  Compatible Dependency" /><published>2016-12-23T00:00:00+08:00</published><updated>2016-12-23T00:00:00+08:00</updated><id>/maven/mastering-component-compatible-dependency</id><content type="html" xml:base="/maven/mastering-component-compatible-dependency/">&lt;p&gt;This article mainly includes three parts.at first,I will introduce compatibility principle(more details see &lt;a href=&quot;http://blog.csdn.net/fengjia10/article/details/7799227&quot;&gt;here&lt;/a&gt;) briefly.followed by a detailed elaborating about Java component compatible dependency,including the interface-oriented programming,single component signature protection,single component compatibility protection and multi-component compatibility compile time checking.Finally is the review and prospect,especially about &lt;strong&gt;Dependency Mediator&lt;/strong&gt; project.&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>2016-12-30T19:04:24+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">Mastering Component Compatible Dependency</title><link href="/maven/mastering-component-compatible-dependency/" rel="alternate" type="text/html" title="Mastering Component
  Compatible Dependency" /><published>2016-12-23T00:00:00+08:00</published><updated>2016-12-23T00:00:00+08:00</updated><id>/maven/mastering-component-compatible-dependency</id><content type="html" xml:base="/maven/mastering-component-compatible-dependency/">&lt;p&gt;This article mainly includes three parts.at first,I will introduce compatibility principle(more details see &lt;a href=&quot;http://blog.csdn.net/fengjia10/article/details/7799227&quot;&gt;here&lt;/a&gt;) briefly.followed by a detailed elaborating about Java component compatible dependency,including the interface-oriented programming,single component signature protection,single component compatibility protection and multi-component compatibility compile time checking.Finally is the review and prospect,especially about &lt;strong&gt;Dependency Mediator&lt;/strong&gt; project.&lt;/p&gt;
 
 &lt;aside class=&quot;sidebar__right&quot;&gt;
 &lt;nav class=&quot;toc&quot;&gt;