You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rocketmq.apache.org by lo...@apache.org on 2016/12/20 06:05:39 UTC

[1/6] incubator-rocketmq git commit: Remove independent mysql jdbc driver statement. reviewed by @yukon [Forced Update!]

Repository: incubator-rocketmq
Updated Branches:
  refs/heads/master 836c40d55 -> 9875a7d9e (forced update)


Remove independent mysql jdbc driver statement. reviewed by @yukon


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

Branch: refs/heads/master
Commit: eb90447934238d3cbbdf0bb48096811883998830
Parents: c01a7fd
Author: vongosling <vo...@apache.org>
Authored: Mon Dec 19 20:18:19 2016 +0800
Committer: vongosling <vo...@apache.org>
Committed: Mon Dec 19 20:18:19 2016 +0800

----------------------------------------------------------------------
 NOTICE | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/eb904479/NOTICE
----------------------------------------------------------------------
diff --git a/NOTICE b/NOTICE
index 913ef38..fea5b4c 100644
--- a/NOTICE
+++ b/NOTICE
@@ -2,7 +2,4 @@ RocketMQ
 Copyright 2016 Alibaba Group.
 
 This product includes software developed at
-The Apache Software Foundation (http://www.apache.org/).
-
-This distribution has producerGroup binary dependency on mysql-connector-java, which is available under gpl 2.0.
-The source code of mysql-connector-java can be found at http://dev.mysql.com/downloads/connector/reconsumeTimes/.
\ No newline at end of file
+The Apache Software Foundation (http://www.apache.org/).
\ No newline at end of file


[2/6] incubator-rocketmq git commit: Update the description for command 'updateTopicPerm' , incidentally, commit minor update for pom. Review by @vongosling

Posted by lo...@apache.org.
Update the description for command 'updateTopicPerm' , incidentally, commit minor update for pom. Review by @vongosling


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

Branch: refs/heads/master
Commit: 76a05dd7406ec9fe469d5d2ffab198d3487a1c47
Parents: eb90447
Author: lollipop <lo...@apache.org>
Authored: Tue Dec 20 11:00:06 2016 +0800
Committer: lollipop <lo...@apache.org>
Committed: Tue Dec 20 12:01:01 2016 +0800

----------------------------------------------------------------------
 pom.xml                                                          | 4 ++--
 .../rocketmq/tools/command/topic/UpdateTopicPermSubCommand.java  | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/76a05dd7/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 93748a5..381cdb1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -103,7 +103,7 @@
             <id>stevenschew</id>
             <name>Wei Zhou</name>
             <email>stevenschew@@apache.org</email>
-            <url>https://github.com/zhouwei198732</url>
+            <url>https://github.com/stevenschew</url>
             <roles>
                 <role>committer</role>
             </roles>
@@ -113,7 +113,7 @@
             <id>lollipop</id>
             <name>Jixiang Jin</name>
             <email>lollipop@apache.org</email>
-            <url>https://github.com/jinjixiang</url>
+            <url>https://github.com/lollipopjin</url>
             <roles>
                 <role>committer</role>
             </roles>

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/76a05dd7/rocketmq-tools/src/main/java/com/alibaba/rocketmq/tools/command/topic/UpdateTopicPermSubCommand.java
----------------------------------------------------------------------
diff --git a/rocketmq-tools/src/main/java/com/alibaba/rocketmq/tools/command/topic/UpdateTopicPermSubCommand.java b/rocketmq-tools/src/main/java/com/alibaba/rocketmq/tools/command/topic/UpdateTopicPermSubCommand.java
index 1938934..abff611 100644
--- a/rocketmq-tools/src/main/java/com/alibaba/rocketmq/tools/command/topic/UpdateTopicPermSubCommand.java
+++ b/rocketmq-tools/src/main/java/com/alibaba/rocketmq/tools/command/topic/UpdateTopicPermSubCommand.java
@@ -60,7 +60,7 @@ public class UpdateTopicPermSubCommand implements SubCommand {
         opt.setRequired(true);
         options.addOption(opt);
 
-        opt = new Option("p", "perm", true, "set topic's permission(2|4|6), intro[2:R; 4:W; 6:RW]");
+        opt = new Option("p", "perm", true, "set topic's permission(2|4|6), intro[2:W; 4:R; 6:RW]");
         opt.setRequired(true);
         options.addOption(opt);
 


[3/6] incubator-rocketmq git commit: Remove native characters in README. reviewed by @vongosling

Posted by lo...@apache.org.
Remove native characters in README. reviewed by @vongosling


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

Branch: refs/heads/master
Commit: 05c9427351e18a96bf00df8f5227b773de4060d7
Parents: eb90447
Author: stevenschew <st...@apache.org>
Authored: Tue Dec 20 10:16:13 2016 +0800
Committer: lollipop <lo...@apache.org>
Committed: Tue Dec 20 12:09:41 2016 +0800

----------------------------------------------------------------------
 bin/README.md | 45 ++++++++++++++++++++++++---------------------
 1 file changed, 24 insertions(+), 21 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/05c94273/bin/README.md
----------------------------------------------------------------------
diff --git a/bin/README.md b/bin/README.md
index 58903a1..d028475 100644
--- a/bin/README.md
+++ b/bin/README.md
@@ -1,34 +1,37 @@
-### \u64cd\u4f5c\u7cfb\u7edf\u8c03\u4f18
-\u5728\u751f\u4ea7\u73af\u5883\u90e8\u7f72Broker\u524d\uff0c\u5fc5\u987b\u8981\u6267\u884cos.sh\uff0c\u5bf9\u64cd\u4f5c\u7cfb\u7edf\u8fdb\u884c\u8c03\u4f18
+### Operating system tuning
+Before the broker deployment, you must run **os.sh**, which is optimized for your operating system.
 
-**P.S: os.sh\u53ea\u80fd\u6267\u884c\u4e00\u6b21\uff0c\u9700\u8981sudo root\u6743\u9650**
+## Notice
+### os.sh should be executed only once with the root permission.
+### os.sh parameter settings is just for reference. You can tune it in your target host systems.
 
-### \u542f\u52a8broker
-* Unix\u5e73\u53f0
 
-	`nohup sh mqbroker &`
+### Start broker
+* Unix platform
 
-* Windows\u5e73\u53f0\uff08\u4ec5\u652f\u630164\u4f4d\uff09
+  `nohup sh mqbroker &`
 
-	`mqbroker.exe`
+* Windows platform\uff08Only support 64 bit\uff09
 
-### \u5173\u95edbroker
-	sh mqshutdown broker
+  `mqbroker.exe`
 
-### \u542f\u52a8Name Server
-* Unix\u5e73\u53f0
+### Shutodwn broker
+  sh mqshutdown broker
 
-	`nohup sh mqnamesrv &`
+### Start Nameserver
+* Unix platform
 
-* Windows\u5e73\u53f0\uff08\u4ec5\u652f\u630164\u4f4d\uff09
+  `nohup sh mqnamesrv &`
 
-	`mqnamesrv.exe`
+* Windows platform\uff08Only support 64 bit\uff09
 
-### \u5173\u95edName Server
-	sh mqshutdown namesrv
+  `mqnamesrv.exe`
 
-### \u66f4\u65b0\u6216\u521b\u5efaTopic
-	sh mqadmin updateTopic -b 127.0.0.1:10911 -t TopicA
+### Shutdown Nameserver
+    sh mqshutdown namesrv
 
-### \u66f4\u65b0\u6216\u521b\u5efa\u8ba2\u9605\u7ec4
-	sh mqadmin updateSubGroup -b 127.0.0.1:10911 -g SubGroupA
\ No newline at end of file
+### Update or create Topic
+    sh mqadmin updateTopic -b 127.0.0.1:10911 -t TopicA
+
+### Update or create subscription group
+    sh mqadmin updateSubGroup -b 127.0.0.1:10911 -g SubGroupA
\ No newline at end of file


[4/6] incubator-rocketmq git commit: Revert SendMessageRequestHeaderV2. Reviewed by @vintagewang @vongosling

Posted by lo...@apache.org.
Revert SendMessageRequestHeaderV2. Reviewed by @vintagewang @vongosling


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

Branch: refs/heads/master
Commit: 9875a7d9e062052a52fcfe1c4ef639361a4904f2
Parents: d8d9bf5
Author: yukon <yu...@apache.org>
Authored: Tue Dec 20 12:56:56 2016 +0800
Committer: yukon <yu...@apache.org>
Committed: Tue Dec 20 12:59:25 2016 +0800

----------------------------------------------------------------------
 .../header/SendMessageRequestHeaderV2.java      | 171 ++++++++++---------
 1 file changed, 86 insertions(+), 85 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/9875a7d9/rocketmq-common/src/main/java/com/alibaba/rocketmq/common/protocol/header/SendMessageRequestHeaderV2.java
----------------------------------------------------------------------
diff --git a/rocketmq-common/src/main/java/com/alibaba/rocketmq/common/protocol/header/SendMessageRequestHeaderV2.java b/rocketmq-common/src/main/java/com/alibaba/rocketmq/common/protocol/header/SendMessageRequestHeaderV2.java
index dadf4bf..6ce4cd5 100644
--- a/rocketmq-common/src/main/java/com/alibaba/rocketmq/common/protocol/header/SendMessageRequestHeaderV2.java
+++ b/rocketmq-common/src/main/java/com/alibaba/rocketmq/common/protocol/header/SendMessageRequestHeaderV2.java
@@ -24,65 +24,66 @@ import com.alibaba.rocketmq.remoting.exception.RemotingCommandException;
 
 
 /**
+ * Use short variable name to speed up FastJson deserialization process.
  * @author shijia.wxr
  */
 public class SendMessageRequestHeaderV2 implements CommandCustomHeader {
     @CFNotNull
-    private String producerGroup;
+    private String a; // producerGroup;
     @CFNotNull
-    private String topic;
+    private String b; // topic;
     @CFNotNull
-    private String defaultTopic;
+    private String c; // defaultTopic;
     @CFNotNull
-    private Integer defaultTopicQueueNums;
+    private Integer d; // defaultTopicQueueNums;
     @CFNotNull
-    private Integer queueId;
+    private Integer e; // queueId;
     @CFNotNull
-    private Integer sysFlag;
+    private Integer f; // sysFlag;
     @CFNotNull
-    private Long bornTimestamp;
+    private Long g; // bornTimestamp;
     @CFNotNull
-    private Integer flag;
+    private Integer h; // flag;
     @CFNullable
-    private String properties;
+    private String i; // properties;
     @CFNullable
-    private Integer reconsumeTimes;
+    private Integer j; // reconsumeTimes;
     @CFNullable
-    private boolean unitMode;
+    private boolean k; // unitMode = false;
 
-    private Integer consumeRetryTimes;
+    private Integer l; // consumeRetryTimes
 
     public static SendMessageRequestHeader createSendMessageRequestHeaderV1(final SendMessageRequestHeaderV2 v2) {
         SendMessageRequestHeader v1 = new SendMessageRequestHeader();
-        v1.setProducerGroup(v2.producerGroup);
-        v1.setTopic(v2.topic);
-        v1.setDefaultTopic(v2.defaultTopic);
-        v1.setDefaultTopicQueueNums(v2.defaultTopicQueueNums);
-        v1.setQueueId(v2.queueId);
-        v1.setSysFlag(v2.sysFlag);
-        v1.setBornTimestamp(v2.bornTimestamp);
-        v1.setFlag(v2.flag);
-        v1.setProperties(v2.properties);
-        v1.setReconsumeTimes(v2.reconsumeTimes);
-        v1.setUnitMode(v2.unitMode);
-        v1.setMaxReconsumeTimes(v2.consumeRetryTimes);
+        v1.setProducerGroup(v2.a);
+        v1.setTopic(v2.b);
+        v1.setDefaultTopic(v2.c);
+        v1.setDefaultTopicQueueNums(v2.d);
+        v1.setQueueId(v2.e);
+        v1.setSysFlag(v2.f);
+        v1.setBornTimestamp(v2.g);
+        v1.setFlag(v2.h);
+        v1.setProperties(v2.i);
+        v1.setReconsumeTimes(v2.j);
+        v1.setUnitMode(v2.k);
+        v1.setMaxReconsumeTimes(v2.l);
         return v1;
     }
 
     public static SendMessageRequestHeaderV2 createSendMessageRequestHeaderV2(final SendMessageRequestHeader v1) {
         SendMessageRequestHeaderV2 v2 = new SendMessageRequestHeaderV2();
-        v2.producerGroup = v1.getProducerGroup();
-        v2.topic = v1.getTopic();
-        v2.defaultTopic = v1.getDefaultTopic();
-        v2.defaultTopicQueueNums = v1.getDefaultTopicQueueNums();
-        v2.queueId = v1.getQueueId();
-        v2.sysFlag = v1.getSysFlag();
-        v2.bornTimestamp = v1.getBornTimestamp();
-        v2.flag = v1.getFlag();
-        v2.properties = v1.getProperties();
-        v2.reconsumeTimes = v1.getReconsumeTimes();
-        v2.unitMode = v1.isUnitMode();
-        v2.consumeRetryTimes = v1.getMaxReconsumeTimes();
+        v2.a = v1.getProducerGroup();
+        v2.b = v1.getTopic();
+        v2.c = v1.getDefaultTopic();
+        v2.d = v1.getDefaultTopicQueueNums();
+        v2.e = v1.getQueueId();
+        v2.f = v1.getSysFlag();
+        v2.g = v1.getBornTimestamp();
+        v2.h = v1.getFlag();
+        v2.i = v1.getProperties();
+        v2.j = v1.getReconsumeTimes();
+        v2.k = v1.isUnitMode();
+        v2.l = v1.getMaxReconsumeTimes();
         return v2;
     }
 
@@ -90,122 +91,122 @@ public class SendMessageRequestHeaderV2 implements CommandCustomHeader {
     public void checkFields() throws RemotingCommandException {
     }
 
-    public String getProducerGroup() {
-        return producerGroup;
+    public String getA() {
+        return a;
     }
 
 
-    public void setProducerGroup(String producerGroup) {
-        this.producerGroup = producerGroup;
+    public void setA(String a) {
+        this.a = a;
     }
 
 
-    public String getTopic() {
-        return topic;
+    public String getB() {
+        return b;
     }
 
 
-    public void setTopic(String topic) {
-        this.topic = topic;
+    public void setB(String b) {
+        this.b = b;
     }
 
 
-    public String getDefaultTopic() {
-        return defaultTopic;
+    public String getC() {
+        return c;
     }
 
 
-    public void setDefaultTopic(String defaultTopic) {
-        this.defaultTopic = defaultTopic;
+    public void setC(String c) {
+        this.c = c;
     }
 
 
-    public Integer getDefaultTopicQueueNums() {
-        return defaultTopicQueueNums;
+    public Integer getD() {
+        return d;
     }
 
 
-    public void setDefaultTopicQueueNums(Integer defaultTopicQueueNums) {
-        this.defaultTopicQueueNums = defaultTopicQueueNums;
+    public void setD(Integer d) {
+        this.d = d;
     }
 
 
-    public Integer getQueueId() {
-        return queueId;
+    public Integer getE() {
+        return e;
     }
 
 
-    public void setQueueId(Integer queueId) {
-        this.queueId = queueId;
+    public void setE(Integer e) {
+        this.e = e;
     }
 
 
-    public Integer getSysFlag() {
-        return sysFlag;
+    public Integer getF() {
+        return f;
     }
 
 
-    public void setSysFlag(Integer sysFlag) {
-        this.sysFlag = sysFlag;
+    public void setF(Integer f) {
+        this.f = f;
     }
 
 
-    public Long getBornTimestamp() {
-        return bornTimestamp;
+    public Long getG() {
+        return g;
     }
 
 
-    public void setBornTimestamp(Long bornTimestamp) {
-        this.bornTimestamp = bornTimestamp;
+    public void setG(Long g) {
+        this.g = g;
     }
 
 
-    public Integer getFlag() {
-        return flag;
+    public Integer getH() {
+        return h;
     }
 
 
-    public void setFlag(Integer flag) {
-        this.flag = flag;
+    public void setH(Integer h) {
+        this.h = h;
     }
 
 
-    public String getProperties() {
-        return properties;
+    public String getI() {
+        return i;
     }
 
 
-    public void setProperties(String properties) {
-        this.properties = properties;
+    public void setI(String i) {
+        this.i = i;
     }
 
 
-    public Integer getReconsumeTimes() {
-        return reconsumeTimes;
+    public Integer getJ() {
+        return j;
     }
 
 
-    public void setReconsumeTimes(Integer reconsumeTimes) {
-        this.reconsumeTimes = reconsumeTimes;
+    public void setJ(Integer j) {
+        this.j = j;
     }
 
 
-    public boolean isUnitMode() {
-        return unitMode;
+    public boolean isK() {
+        return k;
     }
 
 
-    public void setUnitMode(boolean unitMode) {
-        this.unitMode = unitMode;
+    public void setK(boolean k) {
+        this.k = k;
     }
 
 
-    public Integer getConsumeRetryTimes() {
-        return consumeRetryTimes;
+    public Integer getL() {
+        return l;
     }
 
 
-    public void setConsumeRetryTimes(final Integer consumeRetryTimes) {
-        this.consumeRetryTimes = consumeRetryTimes;
+    public void setL(final Integer l) {
+        this.l = l;
     }
-}
+}
\ No newline at end of file


Re: [6/6] incubator-rocketmq git commit: Export bin directory. reviewed by @zhouxinyu @vongosling

Posted by Justin Mclean <ju...@classsoftware.com>.
Hi,

> I removed *.exe files from the source repo and we will add bat scripts for
> Windows user soon and later.

Thanks for that - that seems a better approach.

Justin

Re: [6/6] incubator-rocketmq git commit: Export bin directory. reviewed by @zhouxinyu @vongosling

Posted by yukon <yu...@apache.org>.
Hi Justin,

I removed *.exe files from the source repo and we will add bat scripts for
Windows user soon and later.

Regards,
yukon

On Tue, Dec 20, 2016 at 2:15 PM, Justin Mclean <ju...@classsoftware.com>
wrote:

> Hi,
>
> It’s a little unusual to check in binary files to the source repo. I’m not
> sure what the purpose is here but you might possibly want to consider
> removing them and building them as part of building the software.
>
> Thanks,
> Justin

Re: [6/6] incubator-rocketmq git commit: Export bin directory. reviewed by @zhouxinyu @vongosling

Posted by Justin Mclean <ju...@classsoftware.com>.
Hi,

It’s a little unusual to check in binary files to the source repo. I’m not sure what the purpose is here but you might possibly want to consider removing them and building them as part of building the software.

Thanks,
Justin

[6/6] incubator-rocketmq git commit: Export bin directory. reviewed by @zhouxinyu @vongosling

Posted by lo...@apache.org.
Export bin directory. reviewed by @zhouxinyu @vongosling


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

Branch: refs/heads/master
Commit: c01a7fd496dd59664b1b39e6d216f881e2d5a7e9
Parents: 78ec471
Author: vintagewang <vi...@apache.org>
Authored: Mon Dec 19 19:59:58 2016 +0800
Committer: lollipop <lo...@apache.org>
Committed: Tue Dec 20 14:04:02 2016 +0800

----------------------------------------------------------------------
 bin/README.md          |  34 ++++++++++++++++++++++
 bin/cachedog.sh        |  42 +++++++++++++++++++++++++++
 bin/cleancache.sh      |  20 +++++++++++++
 bin/cleancache.v1.sh   |  40 ++++++++++++++++++++++++++
 bin/mqadmin            |  45 +++++++++++++++++++++++++++++
 bin/mqadmin.exe        | Bin 0 -> 456704 bytes
 bin/mqadmin.xml        |  43 ++++++++++++++++++++++++++++
 bin/mqbroker           |  47 ++++++++++++++++++++++++++++++
 bin/mqbroker.exe       | Bin 0 -> 456704 bytes
 bin/mqbroker.numanode0 |  47 ++++++++++++++++++++++++++++++
 bin/mqbroker.numanode1 |  47 ++++++++++++++++++++++++++++++
 bin/mqbroker.numanode2 |  47 ++++++++++++++++++++++++++++++
 bin/mqbroker.numanode3 |  47 ++++++++++++++++++++++++++++++
 bin/mqbroker.xml       |  43 ++++++++++++++++++++++++++++
 bin/mqfiltersrv        |  45 +++++++++++++++++++++++++++++
 bin/mqfiltersrv.exe    | Bin 0 -> 456704 bytes
 bin/mqfiltersrv.xml    |  43 ++++++++++++++++++++++++++++
 bin/mqnamesrv          |  45 +++++++++++++++++++++++++++++
 bin/mqnamesrv.exe      | Bin 0 -> 456704 bytes
 bin/mqnamesrv.xml      |  43 ++++++++++++++++++++++++++++
 bin/mqshutdown         |  49 +++++++++++++++++++++++++++++++
 bin/os.sh              |  68 ++++++++++++++++++++++++++++++++++++++++++++
 bin/play.sh            |  33 +++++++++++++++++++++
 bin/runbroker.sh       |  61 +++++++++++++++++++++++++++++++++++++++
 bin/runserver.sh       |  48 +++++++++++++++++++++++++++++++
 bin/setcache.sh        |  40 ++++++++++++++++++++++++++
 bin/startfsrv.sh       |  45 +++++++++++++++++++++++++++++
 bin/tools.sh           |  43 ++++++++++++++++++++++++++++
 28 files changed, 1065 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/c01a7fd4/bin/README.md
----------------------------------------------------------------------
diff --git a/bin/README.md b/bin/README.md
new file mode 100644
index 0000000..58903a1
--- /dev/null
+++ b/bin/README.md
@@ -0,0 +1,34 @@
+### \u64cd\u4f5c\u7cfb\u7edf\u8c03\u4f18
+\u5728\u751f\u4ea7\u73af\u5883\u90e8\u7f72Broker\u524d\uff0c\u5fc5\u987b\u8981\u6267\u884cos.sh\uff0c\u5bf9\u64cd\u4f5c\u7cfb\u7edf\u8fdb\u884c\u8c03\u4f18
+
+**P.S: os.sh\u53ea\u80fd\u6267\u884c\u4e00\u6b21\uff0c\u9700\u8981sudo root\u6743\u9650**
+
+### \u542f\u52a8broker
+* Unix\u5e73\u53f0
+
+	`nohup sh mqbroker &`
+
+* Windows\u5e73\u53f0\uff08\u4ec5\u652f\u630164\u4f4d\uff09
+
+	`mqbroker.exe`
+
+### \u5173\u95edbroker
+	sh mqshutdown broker
+
+### \u542f\u52a8Name Server
+* Unix\u5e73\u53f0
+
+	`nohup sh mqnamesrv &`
+
+* Windows\u5e73\u53f0\uff08\u4ec5\u652f\u630164\u4f4d\uff09
+
+	`mqnamesrv.exe`
+
+### \u5173\u95edName Server
+	sh mqshutdown namesrv
+
+### \u66f4\u65b0\u6216\u521b\u5efaTopic
+	sh mqadmin updateTopic -b 127.0.0.1:10911 -t TopicA
+
+### \u66f4\u65b0\u6216\u521b\u5efa\u8ba2\u9605\u7ec4
+	sh mqadmin updateSubGroup -b 127.0.0.1:10911 -g SubGroupA
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/c01a7fd4/bin/cachedog.sh
----------------------------------------------------------------------
diff --git a/bin/cachedog.sh b/bin/cachedog.sh
new file mode 100644
index 0000000..049a663
--- /dev/null
+++ b/bin/cachedog.sh
@@ -0,0 +1,42 @@
+#!/bin/sh
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+
+export PATH=$PATH:/sbin
+
+while true; do
+    nr_free_pages=`fgrep -A 10 Normal /proc/zoneinfo  |grep nr_free_pages  |awk -F ' ' '{print $2}'`
+    high=`fgrep -A 10 Normal /proc/zoneinfo  |grep high  |awk -F ' ' '{print $2}'`
+
+    NOW_DATE=`date +%D`
+    NOW_TIME=`date +%T`
+
+    if [ ${nr_free_pages} -le ${high} ]; then
+        sysctl -w vm.drop_caches=3
+        nr_free_pages_new=`fgrep -A 10 Normal /proc/zoneinfo  |grep nr_free_pages  |awk -F ' ' '{print $2}'`
+
+        printf "%s %s [CLEAN] nr_free_pages < high, clean cache. nr_free_pages=%s ====> nr_free_pages=%s\n" "${NOW_DATE}" "${NOW_TIME}" ${nr_free_pages} ${nr_free_pages_new}
+
+        sysctl -w vm.drop_caches=1
+        echo
+        echo
+        echo
+    else
+        printf "%s %s [NOTHING] nr_free_pages=%s high=%s\n" "${NOW_DATE}" "${NOW_TIME}" ${nr_free_pages} ${high}
+    fi
+
+    sleep 1
+done

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/c01a7fd4/bin/cleancache.sh
----------------------------------------------------------------------
diff --git a/bin/cleancache.sh b/bin/cleancache.sh
new file mode 100644
index 0000000..250a46b
--- /dev/null
+++ b/bin/cleancache.sh
@@ -0,0 +1,20 @@
+#!/bin/sh
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+
+export PATH=$PATH:/sbin
+
+sysctl -w vm.drop_caches=3

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/c01a7fd4/bin/cleancache.v1.sh
----------------------------------------------------------------------
diff --git a/bin/cleancache.v1.sh b/bin/cleancache.v1.sh
new file mode 100644
index 0000000..2e21582
--- /dev/null
+++ b/bin/cleancache.v1.sh
@@ -0,0 +1,40 @@
+#!/bin/sh
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+
+export PATH=$PATH:/sbin
+
+#
+# GB
+#
+function changeFreeCache()
+{
+    EXTRA=$1
+    MIN=$2
+    sysctl -w vm.extra_free_kbytes=${EXTRA}000000
+    sysctl -w vm.min_free_kbytes=${MIN}000000
+}
+
+
+if [ $# -ne 1 ]
+then
+    echo "Usage: $0 freecache(GB)"
+    echo "Example: $0 15"
+    exit
+fi
+
+changeFreeCache 3 $1
+changeFreeCache 3 1

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/c01a7fd4/bin/mqadmin
----------------------------------------------------------------------
diff --git a/bin/mqadmin b/bin/mqadmin
new file mode 100644
index 0000000..616dc6d
--- /dev/null
+++ b/bin/mqadmin
@@ -0,0 +1,45 @@
+#!/bin/sh
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+
+if [ -z "$ROCKETMQ_HOME" ] ; then
+  ## resolve links - $0 may be a link to maven's home
+  PRG="$0"
+
+  # need this for relative symlinks
+  while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+      PRG="$link"
+    else
+      PRG="`dirname "$PRG"`/$link"
+    fi
+  done
+
+  saveddir=`pwd`
+
+  ROCKETMQ_HOME=`dirname "$PRG"`/..
+
+  # make it fully qualified
+  ROCKETMQ_HOME=`cd "$ROCKETMQ_HOME" && pwd`
+
+  cd "$saveddir"
+fi
+
+export ROCKETMQ_HOME
+
+sh ${ROCKETMQ_HOME}/bin/tools.sh com.alibaba.rocketmq.tools.command.MQAdminStartup $@

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/c01a7fd4/bin/mqadmin.exe
----------------------------------------------------------------------
diff --git a/bin/mqadmin.exe b/bin/mqadmin.exe
new file mode 100644
index 0000000..e8d8fac
Binary files /dev/null and b/bin/mqadmin.exe differ

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/c01a7fd4/bin/mqadmin.xml
----------------------------------------------------------------------
diff --git a/bin/mqadmin.xml b/bin/mqadmin.xml
new file mode 100644
index 0000000..3f01808
--- /dev/null
+++ b/bin/mqadmin.xml
@@ -0,0 +1,43 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+  -->
+
+<java>
+	<debug>false</debug>
+
+	<javahome>${JAVA_HOME}</javahome>
+
+	<jvmtype>server</jvmtype>
+
+	<mainclass>com.alibaba.rocketmq.tools.command.MQAdminStartup</mainclass>
+
+	<properties>
+		<java.ext.dirs>${cpd}/../lib</java.ext.dirs>
+		<rocketmq.home.dir>${cpd}/..</rocketmq.home.dir>
+	</properties>
+
+	<classpaths>
+	</classpaths>
+
+	<options>
+		<-Xms512m></-Xms512m>
+		<-Xmx1g></-Xmx1g>
+		<-XX:NewSize>256M</-XX:NewSize>
+		<-XX:MaxNewSize>512M</-XX:MaxNewSize>
+		<-XX:PermSize>128M</-XX:PermSize>
+		<-XX:MaxPermSize>128M</-XX:MaxPermSize>
+	</options>
+</java>

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/c01a7fd4/bin/mqbroker
----------------------------------------------------------------------
diff --git a/bin/mqbroker b/bin/mqbroker
new file mode 100644
index 0000000..d474254
--- /dev/null
+++ b/bin/mqbroker
@@ -0,0 +1,47 @@
+#!/bin/sh
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+
+if [ -z "$ROCKETMQ_HOME" ] ; then
+  ## resolve links - $0 may be a link to maven's home
+  PRG="$0"
+
+  # need this for relative symlinks
+  while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+      PRG="$link"
+    else
+      PRG="`dirname "$PRG"`/$link"
+    fi
+  done
+
+  saveddir=`pwd`
+
+  ROCKETMQ_HOME=`dirname "$PRG"`/..
+
+  # make it fully qualified
+  ROCKETMQ_HOME=`cd "$ROCKETMQ_HOME" && pwd`
+
+  cd "$saveddir"
+fi
+
+export ROCKETMQ_HOME
+
+rm -f $HOME/rmq_bk_gc.log.bac
+cp $HOME/rmq_bk_gc.log $HOME/rmq_bk_gc.log.bac
+sh ${ROCKETMQ_HOME}/bin/runbroker.sh com.alibaba.rocketmq.broker.BrokerStartup $@

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/c01a7fd4/bin/mqbroker.exe
----------------------------------------------------------------------
diff --git a/bin/mqbroker.exe b/bin/mqbroker.exe
new file mode 100644
index 0000000..e8d8fac
Binary files /dev/null and b/bin/mqbroker.exe differ

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/c01a7fd4/bin/mqbroker.numanode0
----------------------------------------------------------------------
diff --git a/bin/mqbroker.numanode0 b/bin/mqbroker.numanode0
new file mode 100644
index 0000000..d0688a0
--- /dev/null
+++ b/bin/mqbroker.numanode0
@@ -0,0 +1,47 @@
+#!/bin/sh
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+
+if [ -z "$ROCKETMQ_HOME" ] ; then
+  ## resolve links - $0 may be a link to maven's home
+  PRG="$0"
+
+  # need this for relative symlinks
+  while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+      PRG="$link"
+    else
+      PRG="`dirname "$PRG"`/$link"
+    fi
+  done
+
+  saveddir=`pwd`
+
+  ROCKETMQ_HOME=`dirname "$PRG"`/..
+
+  # make it fully qualified
+  ROCKETMQ_HOME=`cd "$ROCKETMQ_HOME" && pwd`
+
+  cd "$saveddir"
+fi
+
+export ROCKETMQ_HOME
+
+export RMQ_NUMA_NODE=0
+
+sh ${ROCKETMQ_HOME}/bin/mqbroker $@

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/c01a7fd4/bin/mqbroker.numanode1
----------------------------------------------------------------------
diff --git a/bin/mqbroker.numanode1 b/bin/mqbroker.numanode1
new file mode 100644
index 0000000..ee350d4
--- /dev/null
+++ b/bin/mqbroker.numanode1
@@ -0,0 +1,47 @@
+#!/bin/sh
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+
+if [ -z "$ROCKETMQ_HOME" ] ; then
+  ## resolve links - $0 may be a link to maven's home
+  PRG="$0"
+
+  # need this for relative symlinks
+  while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+      PRG="$link"
+    else
+      PRG="`dirname "$PRG"`/$link"
+    fi
+  done
+
+  saveddir=`pwd`
+
+  ROCKETMQ_HOME=`dirname "$PRG"`/..
+
+  # make it fully qualified
+  ROCKETMQ_HOME=`cd "$ROCKETMQ_HOME" && pwd`
+
+  cd "$saveddir"
+fi
+
+export ROCKETMQ_HOME
+
+export RMQ_NUMA_NODE=1
+
+sh ${ROCKETMQ_HOME}/bin/mqbroker $@

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/c01a7fd4/bin/mqbroker.numanode2
----------------------------------------------------------------------
diff --git a/bin/mqbroker.numanode2 b/bin/mqbroker.numanode2
new file mode 100644
index 0000000..4ff2274
--- /dev/null
+++ b/bin/mqbroker.numanode2
@@ -0,0 +1,47 @@
+#!/bin/sh
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+
+if [ -z "$ROCKETMQ_HOME" ] ; then
+  ## resolve links - $0 may be a link to maven's home
+  PRG="$0"
+
+  # need this for relative symlinks
+  while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+      PRG="$link"
+    else
+      PRG="`dirname "$PRG"`/$link"
+    fi
+  done
+
+  saveddir=`pwd`
+
+  ROCKETMQ_HOME=`dirname "$PRG"`/..
+
+  # make it fully qualified
+  ROCKETMQ_HOME=`cd "$ROCKETMQ_HOME" && pwd`
+
+  cd "$saveddir"
+fi
+
+export ROCKETMQ_HOME
+
+export RMQ_NUMA_NODE=2
+
+sh ${ROCKETMQ_HOME}/bin/mqbroker $@

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/c01a7fd4/bin/mqbroker.numanode3
----------------------------------------------------------------------
diff --git a/bin/mqbroker.numanode3 b/bin/mqbroker.numanode3
new file mode 100644
index 0000000..6c91d53
--- /dev/null
+++ b/bin/mqbroker.numanode3
@@ -0,0 +1,47 @@
+#!/bin/sh
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+
+if [ -z "$ROCKETMQ_HOME" ] ; then
+  ## resolve links - $0 may be a link to maven's home
+  PRG="$0"
+
+  # need this for relative symlinks
+  while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+      PRG="$link"
+    else
+      PRG="`dirname "$PRG"`/$link"
+    fi
+  done
+
+  saveddir=`pwd`
+
+  ROCKETMQ_HOME=`dirname "$PRG"`/..
+
+  # make it fully qualified
+  ROCKETMQ_HOME=`cd "$ROCKETMQ_HOME" && pwd`
+
+  cd "$saveddir"
+fi
+
+export ROCKETMQ_HOME
+
+export RMQ_NUMA_NODE=3
+
+sh ${ROCKETMQ_HOME}/bin/mqbroker $@

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/c01a7fd4/bin/mqbroker.xml
----------------------------------------------------------------------
diff --git a/bin/mqbroker.xml b/bin/mqbroker.xml
new file mode 100644
index 0000000..f0254d3
--- /dev/null
+++ b/bin/mqbroker.xml
@@ -0,0 +1,43 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+  -->
+
+<java>
+	<debug>false</debug>
+
+	<javahome>${JAVA_HOME}</javahome>
+
+	<jvmtype>server</jvmtype>
+
+	<mainclass>com.alibaba.rocketmq.broker.BrokerStartup</mainclass>
+
+	<properties>
+		<java.ext.dirs>${cpd}/../lib</java.ext.dirs>
+		<rocketmq.home.dir>${cpd}/..</rocketmq.home.dir>
+	</properties>
+
+	<classpaths>
+	</classpaths>
+
+	<options>
+		<-Xms512m></-Xms512m>
+		<-Xmx1g></-Xmx1g>
+		<-XX:NewSize>256M</-XX:NewSize>
+		<-XX:MaxNewSize>512M</-XX:MaxNewSize>
+		<-XX:PermSize>128M</-XX:PermSize>
+		<-XX:MaxPermSize>128M</-XX:MaxPermSize>
+	</options>
+</java>

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/c01a7fd4/bin/mqfiltersrv
----------------------------------------------------------------------
diff --git a/bin/mqfiltersrv b/bin/mqfiltersrv
new file mode 100644
index 0000000..69fc635
--- /dev/null
+++ b/bin/mqfiltersrv
@@ -0,0 +1,45 @@
+#!/bin/sh
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+
+if [ -z "$ROCKETMQ_HOME" ] ; then
+  ## resolve links - $0 may be a link to maven's home
+  PRG="$0"
+
+  # need this for relative symlinks
+  while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+      PRG="$link"
+    else
+      PRG="`dirname "$PRG"`/$link"
+    fi
+  done
+
+  saveddir=`pwd`
+
+  ROCKETMQ_HOME=`dirname "$PRG"`/..
+
+  # make it fully qualified
+  ROCKETMQ_HOME=`cd "$ROCKETMQ_HOME" && pwd`
+
+  cd "$saveddir"
+fi
+
+export ROCKETMQ_HOME
+
+sh ${ROCKETMQ_HOME}/bin/runserver.sh com.alibaba.rocketmq.filtersrv.FiltersrvStartup $@

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/c01a7fd4/bin/mqfiltersrv.exe
----------------------------------------------------------------------
diff --git a/bin/mqfiltersrv.exe b/bin/mqfiltersrv.exe
new file mode 100644
index 0000000..e8d8fac
Binary files /dev/null and b/bin/mqfiltersrv.exe differ

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/c01a7fd4/bin/mqfiltersrv.xml
----------------------------------------------------------------------
diff --git a/bin/mqfiltersrv.xml b/bin/mqfiltersrv.xml
new file mode 100644
index 0000000..0e391d2
--- /dev/null
+++ b/bin/mqfiltersrv.xml
@@ -0,0 +1,43 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+  -->
+
+<java>
+	<debug>false</debug>
+
+	<javahome>${JAVA_HOME}</javahome>
+
+	<jvmtype>server</jvmtype>
+
+	<mainclass>com.alibaba.rocketmq.filtersrv.FiltersrvStartup</mainclass>
+
+	<properties>
+		<java.ext.dirs>${cpd}/../lib</java.ext.dirs>
+		<rocketmq.home.dir>${cpd}/..</rocketmq.home.dir>
+	</properties>
+
+	<classpaths>
+	</classpaths>
+
+	<options>
+		<-Xms512m></-Xms512m>
+		<-Xmx1g></-Xmx1g>
+		<-XX:NewSize>256M</-XX:NewSize>
+		<-XX:MaxNewSize>512M</-XX:MaxNewSize>
+		<-XX:PermSize>128M</-XX:PermSize>
+		<-XX:MaxPermSize>128M</-XX:MaxPermSize>
+	</options>
+</java>

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/c01a7fd4/bin/mqnamesrv
----------------------------------------------------------------------
diff --git a/bin/mqnamesrv b/bin/mqnamesrv
new file mode 100644
index 0000000..ed7cd1e
--- /dev/null
+++ b/bin/mqnamesrv
@@ -0,0 +1,45 @@
+#!/bin/sh
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+
+if [ -z "$ROCKETMQ_HOME" ] ; then
+  ## resolve links - $0 may be a link to maven's home
+  PRG="$0"
+
+  # need this for relative symlinks
+  while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+      PRG="$link"
+    else
+      PRG="`dirname "$PRG"`/$link"
+    fi
+  done
+
+  saveddir=`pwd`
+
+  ROCKETMQ_HOME=`dirname "$PRG"`/..
+
+  # make it fully qualified
+  ROCKETMQ_HOME=`cd "$ROCKETMQ_HOME" && pwd`
+
+  cd "$saveddir"
+fi
+
+export ROCKETMQ_HOME
+
+sh ${ROCKETMQ_HOME}/bin/runserver.sh com.alibaba.rocketmq.namesrv.NamesrvStartup $@

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/c01a7fd4/bin/mqnamesrv.exe
----------------------------------------------------------------------
diff --git a/bin/mqnamesrv.exe b/bin/mqnamesrv.exe
new file mode 100644
index 0000000..e8d8fac
Binary files /dev/null and b/bin/mqnamesrv.exe differ

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/c01a7fd4/bin/mqnamesrv.xml
----------------------------------------------------------------------
diff --git a/bin/mqnamesrv.xml b/bin/mqnamesrv.xml
new file mode 100644
index 0000000..9194cbb
--- /dev/null
+++ b/bin/mqnamesrv.xml
@@ -0,0 +1,43 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+  -->
+
+<java>
+	<debug>false</debug>
+
+	<javahome>${JAVA_HOME}</javahome>
+
+	<jvmtype>server</jvmtype>
+
+	<mainclass>com.alibaba.rocketmq.namesrv.NamesrvStartup</mainclass>
+
+	<properties>
+		<java.ext.dirs>${cpd}/../lib</java.ext.dirs>
+		<rocketmq.home.dir>${cpd}/..</rocketmq.home.dir>
+	</properties>
+
+	<classpaths>
+	</classpaths>
+
+	<options>
+		<-Xms512m></-Xms512m>
+		<-Xmx1g></-Xmx1g>
+		<-XX:NewSize>256M</-XX:NewSize>
+		<-XX:MaxNewSize>512M</-XX:MaxNewSize>
+		<-XX:PermSize>128M</-XX:PermSize>
+		<-XX:MaxPermSize>128M</-XX:MaxPermSize>
+	</options>
+</java>

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/c01a7fd4/bin/mqshutdown
----------------------------------------------------------------------
diff --git a/bin/mqshutdown b/bin/mqshutdown
new file mode 100644
index 0000000..19561ac
--- /dev/null
+++ b/bin/mqshutdown
@@ -0,0 +1,49 @@
+#!/bin/sh
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+
+case $1 in
+    broker)
+
+    pid=`ps ax | grep -i 'com.alibaba.rocketmq.broker.BrokerStartup' |grep java | grep -v grep | awk '{print $1}'`
+    if [ -z "$pid" ] ; then
+            echo "No mqbroker running."
+            exit -1;
+    fi
+
+    echo "The mqbroker(${pid}) is running..."
+
+    kill ${pid}
+
+    echo "Send shutdown request to mqbroker(${pid}) OK"
+    ;;
+    namesrv)
+
+    pid=`ps ax | grep -i 'com.alibaba.rocketmq.namesrv.NamesrvStartup' |grep java | grep -v grep | awk '{print $1}'`
+    if [ -z "$pid" ] ; then
+            echo "No mqnamesrv running."
+            exit -1;
+    fi
+
+    echo "The mqnamesrv(${pid}) is running..."
+
+    kill ${pid}
+
+    echo "Send shutdown request to mqnamesrv(${pid}) OK"
+    ;;
+    *)
+    echo "Useage: mqshutdown broker | namesrv"
+esac

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/c01a7fd4/bin/os.sh
----------------------------------------------------------------------
diff --git a/bin/os.sh b/bin/os.sh
new file mode 100644
index 0000000..17911d4
--- /dev/null
+++ b/bin/os.sh
@@ -0,0 +1,68 @@
+#!/bin/sh
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+
+#
+# Execute Only Once
+#
+
+export PATH=$PATH:/sbin
+
+# sudo sysctl -w vm.extra_free_kbytes=2000000
+# sudo sysctl -w vm.min_free_kbytes=1000000
+sudo sysctl -w vm.overcommit_memory=1
+sudo sysctl -w vm.drop_caches=1
+sudo sysctl -w vm.zone_reclaim_mode=0
+sudo sysctl -w vm.max_map_count=655360
+sudo sysctl -w vm.dirty_background_ratio=50
+sudo sysctl -w vm.dirty_ratio=50
+sudo sysctl -w vm.dirty_writeback_centisecs=360000
+sudo sysctl -w vm.page-cluster=3
+sudo sysctl -w vm.swappiness=1
+
+echo 'ulimit -n 655350' >> /etc/profile
+echo '* hard nofile 655350' >> /etc/security/limits.conf
+
+echo '* hard memlock      unlimited' >> /etc/security/limits.conf
+echo '* soft memlock      unlimited' >> /etc/security/limits.conf
+
+DISK=`df -k | sort -n -r -k 2 | awk -F/ 'NR==1 {gsub(/[0-9].*/,"",$3); print $3}'`
+[ "$DISK" = 'cciss' ] && DISK='cciss!c0d0'
+echo 'deadline' > /sys/block/${DISK}/queue/scheduler
+
+
+echo "---------------------------------------------------------------"
+sysctl vm.extra_free_kbytes
+sysctl vm.min_free_kbytes
+sysctl vm.overcommit_memory
+sysctl vm.drop_caches
+sysctl vm.zone_reclaim_mode
+sysctl vm.max_map_count
+sysctl vm.dirty_background_ratio
+sysctl vm.dirty_ratio
+sysctl vm.dirty_writeback_centisecs
+sysctl vm.page-cluster
+sysctl vm.swappiness
+
+su - admin -c 'ulimit -n'
+cat /sys/block/$DISK/queue/scheduler
+
+if [ -d ${HOME}/tmpfs ] ; then
+    echo "tmpfs exist, do nothing."
+else
+    ln -s /dev/shm tmpfs
+    echo "create tmpfs ok"
+fi

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/c01a7fd4/bin/play.sh
----------------------------------------------------------------------
diff --git a/bin/play.sh b/bin/play.sh
new file mode 100644
index 0000000..4abb648
--- /dev/null
+++ b/bin/play.sh
@@ -0,0 +1,33 @@
+#!/bin/sh
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+
+#
+# Name Server
+#
+nohup sh mqnamesrv > ns.log 2>&1 &
+
+#
+# Service Addr
+#
+ADDR=`hostname -i`:9876
+
+#
+# Broker
+#
+nohup sh mqbroker -n ${ADDR} > bk.log 2>&1 &
+
+echo "Start Name Server and Broker Successfully, ${ADDR}"

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/c01a7fd4/bin/runbroker.sh
----------------------------------------------------------------------
diff --git a/bin/runbroker.sh b/bin/runbroker.sh
new file mode 100644
index 0000000..08d97ad
--- /dev/null
+++ b/bin/runbroker.sh
@@ -0,0 +1,61 @@
+#!/bin/sh
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+
+#===========================================================================================
+# Java Environment Setting
+#===========================================================================================
+error_exit ()
+{
+    echo "ERROR: $1 !!"
+    exit 1
+}
+
+[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=$HOME/jdk/java
+[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/java
+[ ! -e "$JAVA_HOME/bin/java" ] && error_exit "Please set the JAVA_HOME variable in your environment, We need java(x64)!"
+
+export JAVA_HOME
+export JAVA="$JAVA_HOME/bin/java"
+export BASE_DIR=$(dirname $0)/..
+export CLASSPATH=.:${BASE_DIR}/conf:${CLASSPATH}
+
+#===========================================================================================
+# JVM Configuration
+#===========================================================================================
+JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g -Xmn4g"
+JAVA_OPT="${JAVA_OPT} -XX:+UseG1GC -XX:G1HeapRegionSize=16m -XX:G1ReservePercent=25 -XX:InitiatingHeapOccupancyPercent=30 -XX:SoftRefLRUPolicyMSPerMB=0 -XX:SurvivorRatio=8 -XX:+DisableExplicitGC"
+JAVA_OPT="${JAVA_OPT} -verbose:gc -Xloggc:/dev/shm/mq_gc_%p.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCApplicationStoppedTime -XX:+PrintAdaptiveSizePolicy"
+JAVA_OPT="${JAVA_OPT} -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=30m"
+JAVA_OPT="${JAVA_OPT} -XX:-OmitStackTraceInFastThrow"
+JAVA_OPT="${JAVA_OPT} -XX:+AlwaysPreTouch"
+JAVA_OPT="${JAVA_OPT} -XX:MaxDirectMemorySize=15g"
+JAVA_OPT="${JAVA_OPT} -XX:-UseLargePages -XX:-UseBiasedLocking"
+JAVA_OPT="${JAVA_OPT} -Djava.ext.dirs=${BASE_DIR}/lib"
+#JAVA_OPT="${JAVA_OPT} -Xdebug -Xrunjdwp:transport=dt_socket,address=9555,server=y,suspend=n"
+JAVA_OPT="${JAVA_OPT} -cp ${CLASSPATH}"
+
+numactl --interleave=all pwd > /dev/null 2>&1
+if [ $? -eq 0 ]
+then
+	if [ -z "$RMQ_NUMA_NODE" ] ; then
+		numactl --interleave=all $JAVA ${JAVA_OPT} $@
+	else
+		numactl --cpunodebind=$RMQ_NUMA_NODE --membind=$RMQ_NUMA_NODE $JAVA ${JAVA_OPT} $@
+	fi
+else
+	$JAVA ${JAVA_OPT} $@
+fi

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/c01a7fd4/bin/runserver.sh
----------------------------------------------------------------------
diff --git a/bin/runserver.sh b/bin/runserver.sh
new file mode 100644
index 0000000..a0d4f0c
--- /dev/null
+++ b/bin/runserver.sh
@@ -0,0 +1,48 @@
+#!/bin/sh
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+
+#===========================================================================================
+# Java Environment Setting
+#===========================================================================================
+error_exit ()
+{
+    echo "ERROR: $1 !!"
+    exit 1
+}
+
+[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=$HOME/jdk/java
+[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/java
+[ ! -e "$JAVA_HOME/bin/java" ] && error_exit "Please set the JAVA_HOME variable in your environment, We need java(x64)!"
+
+export JAVA_HOME
+export JAVA="$JAVA_HOME/bin/java"
+export BASE_DIR=$(dirname $0)/..
+export CLASSPATH=.:${BASE_DIR}/conf:${CLASSPATH}
+
+#===========================================================================================
+# JVM Configuration
+#===========================================================================================
+JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g -XX:PermSize=128m -XX:MaxPermSize=320m"
+JAVA_OPT="${JAVA_OPT} -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+CMSClassUnloadingEnabled -XX:SurvivorRatio=8 -XX:+DisableExplicitGC -XX:-UseParNewGC"
+JAVA_OPT="${JAVA_OPT} -verbose:gc -Xloggc:/dev/shm/rmq_srv_gc.log -XX:+PrintGCDetails"
+JAVA_OPT="${JAVA_OPT} -XX:-OmitStackTraceInFastThrow"
+JAVA_OPT="${JAVA_OPT}  -XX:-UseLargePages"
+JAVA_OPT="${JAVA_OPT} -Djava.ext.dirs=${BASE_DIR}/lib"
+#JAVA_OPT="${JAVA_OPT} -Xdebug -Xrunjdwp:transport=dt_socket,address=9555,server=y,suspend=n"
+JAVA_OPT="${JAVA_OPT} -cp ${CLASSPATH}"
+
+$JAVA ${JAVA_OPT} $@

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/c01a7fd4/bin/setcache.sh
----------------------------------------------------------------------
diff --git a/bin/setcache.sh b/bin/setcache.sh
new file mode 100644
index 0000000..5c72fd1
--- /dev/null
+++ b/bin/setcache.sh
@@ -0,0 +1,40 @@
+#!/bin/sh
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+
+export PATH=$PATH:/sbin
+
+#
+# GB
+#
+function changeFreeCache()
+{
+    EXTRA=$1
+    MIN=$2
+    sysctl -w vm.extra_free_kbytes=${EXTRA}000000
+    sysctl -w vm.min_free_kbytes=${MIN}000000
+    sysctl -w vm.swappiness=0
+}
+
+
+if [ $# -ne 2 ]
+then
+    echo "Usage: $0 extra_free_kbytes(GB) min_free_kbytes(GB)"
+    echo "Example: $0 3 1"
+    exit
+fi
+
+changeFreeCache $1 $2

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/c01a7fd4/bin/startfsrv.sh
----------------------------------------------------------------------
diff --git a/bin/startfsrv.sh b/bin/startfsrv.sh
new file mode 100644
index 0000000..21c828c
--- /dev/null
+++ b/bin/startfsrv.sh
@@ -0,0 +1,45 @@
+#!/bin/sh
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+
+if [ -z "$ROCKETMQ_HOME" ] ; then
+  ## resolve links - $0 may be a link to maven's home
+  PRG="$0"
+
+  # need this for relative symlinks
+  while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+      PRG="$link"
+    else
+      PRG="`dirname "$PRG"`/$link"
+    fi
+  done
+
+  saveddir=`pwd`
+
+  ROCKETMQ_HOME=`dirname "$PRG"`/..
+
+  # make it fully qualified
+  ROCKETMQ_HOME=`cd "$ROCKETMQ_HOME" && pwd`
+
+  cd "$saveddir"
+fi
+
+export ROCKETMQ_HOME
+
+nohup sh ${ROCKETMQ_HOME}/bin/runserver.sh com.alibaba.rocketmq.filtersrv.FiltersrvStartup $@ &

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/c01a7fd4/bin/tools.sh
----------------------------------------------------------------------
diff --git a/bin/tools.sh b/bin/tools.sh
new file mode 100644
index 0000000..63e8884
--- /dev/null
+++ b/bin/tools.sh
@@ -0,0 +1,43 @@
+#!/bin/sh
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+
+#===========================================================================================
+# Java Environment Setting
+#===========================================================================================
+error_exit ()
+{
+    echo "ERROR: $1 !!"
+    exit 1
+}
+
+[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=$HOME/jdk/java
+[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/java
+[ ! -e "$JAVA_HOME/bin/java" ] && error_exit "Please set the JAVA_HOME variable in your environment, We need java(x64)!"
+
+export JAVA_HOME
+export JAVA="$JAVA_HOME/bin/java"
+export BASE_DIR=$(dirname $0)/..
+export CLASSPATH=.:${BASE_DIR}/conf:${CLASSPATH}
+
+#===========================================================================================
+# JVM Configuration
+#===========================================================================================
+JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn256m -XX:PermSize=128m -XX:MaxPermSize=128m"
+JAVA_OPT="${JAVA_OPT} -Djava.ext.dirs=${BASE_DIR}/lib:${JAVA_HOME}/jre/lib/ext"
+JAVA_OPT="${JAVA_OPT} -cp ${CLASSPATH}"
+
+$JAVA ${JAVA_OPT} $@



[5/6] incubator-rocketmq git commit: Merge remote-tracking branch 'origin/master'

Posted by lo...@apache.org.
Merge remote-tracking branch 'origin/master'


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

Branch: refs/heads/master
Commit: d8d9bf5e52fe9a24af1dbeb40e89e1ed43211c05
Parents: 76a05dd 05c9427
Author: lollipop <lo...@apache.org>
Authored: Tue Dec 20 11:02:30 2016 +0800
Committer: lollipop <lo...@apache.org>
Committed: Tue Dec 20 14:01:30 2016 +0800

----------------------------------------------------------------------
 bin/README.md | 45 ++++++++++++++++++++++++---------------------
 1 file changed, 24 insertions(+), 21 deletions(-)
----------------------------------------------------------------------