Add a blog to introduce methods to specify name server for brokers, producers, 
consumers and mq admin tools.


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

Branch: refs/heads/asf-site
Commit: bdd8b466f31c8d703400f529ffa432fa307a9f9c
Parents: 0b348ef
Author: Zhanhui Li <lizhan...@apache.org>
Authored: Fri Feb 10 12:09:17 2017 +0800
Committer: Zhanhui Li <lizhan...@apache.org>
Committed: Fri Feb 10 12:09:17 2017 +0800

----------------------------------------------------------------------
 ...-methods-to-feed-name-server-address-list.md | 71 ++++++++++++++++++++
 1 file changed, 71 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/bdd8b466/_posts/2017-02-10-four-methods-to-feed-name-server-address-list.md
----------------------------------------------------------------------
diff --git a/_posts/2017-02-10-four-methods-to-feed-name-server-address-list.md 
b/_posts/2017-02-10-four-methods-to-feed-name-server-address-list.md
new file mode 100644
index 0000000..f4c78b1
--- /dev/null
+++ b/_posts/2017-02-10-four-methods-to-feed-name-server-address-list.md
@@ -0,0 +1,71 @@
+---
+title: "Four Methods to Feed Name Server Address List"
+categories:
+  - RocketMQ
+tags:
+  - RocketMQ
+  - Name Server
+---
+
+Apache RocketMQ is a distributed system that each components should be 
properly coordinated to work smoothly. Name 
+servers are designed to take much of this responsibility through managing 
topic route information.
+
+The management, roughly speaking, consists two parts. The first one is that 
brokers report to name servers on meta data
+of themselves and topics they have. The second is serving clients, including 
producer, consumer and command line
+ executables these meta data.
+
+As a result, before launching brokers and clients, we need to feed name server 
address list to them. Apache RocketMQ 
+provides four methods to achieve this goal.
+
+1. Programmatic Way
+
+   For broker, we may specify 
`namesrvAddr=name-server-ip1:port;name-server-ip2:port` in broker configuration 
file.
+   Alternatively, we may pass a parameter like `-n 
name-server-ip1:port;name-server-ip2:port` to `mqbroker` script.
+   
+   For producers and consumers, we may feed name server address list to them 
as follows:
+   
+   `
+   DefaultMQProducer producer = new 
DefaultMQProducer("please_rename_unique_group_name");
+   producer.setNamesrvAddr("name-server1-ip:port;name-server2-ip:port");`
+   
+   `
+   DefaultMQPushConsumer consumer = new 
DefaultMQPushConsumer("please_rename_unique_group_name");
+   consumer.setNamesrvAddr("name-server1-ip:port;name-server2-ip:port");`
+   
+   If you use admin command line from shell, you may specify this way:
+   `sh mqadmin command-name -n name-server-ip1:port;name-server-ip2:port -x 
other-options`
+   
+   a simple example is:
+   `sh mqadmin -n localhost:9876 clusterList`
+   assuming to query cluster info on the name server node.
+   
+   If integrating admin tool into your own dashboard, you may
+   `DefaultMQAdminExt defaultMQAdminExt = new 
DefaultMQAdminExt("please_rename_unique_group_name");
+    
defaultMQAdminExt.setNamesrvAddr("name-server1-ip:port;name-server2-ip:port");`
+    
+    
+2. Environment Variable
+
+   You can export `NAMESRV_ADDR` environment variable. Brokers and clients 
will examine and use its value if set.
+    
+    
+3. Java Options
+
+    Similar to environment variable, you may specify the sequel java option 
`rocketmq.namesrv.addr` before launching your
+    application.
+    
+4. HTTP endpoint
+
+    If you do not specify name server address list using previously mentioned 
methods, Apache RocketMQ will periodically 
+    access the following HTTP end point to acquire and update name server 
address list.
+    
+    On default, the end point is:
+    
+    `http://jmenv.tbsite.net:8080/rocketmq/nsaddr`
+    
+    You may override `jmenv.tbsite.net` by this java option: 
`rocketmq.namesrv.domain`,
+    You may also override `nsaddr` part by this java option: 
`rocketmq.namesrv.domain.subgroup`
+    
+    This method is recommended because it gives you maximum flexibility, aka, 
you can dynamically add or 
+    remove name server node without necessity of rebooting your brokers and 
clients according to your name servers'
+    system load. 
\ No newline at end of file

Reply via email to