Use new documentation structure.
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/b3c93e12 Tree: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/tree/b3c93e12 Diff: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/diff/b3c93e12 Branch: refs/heads/asf-site Commit: b3c93e1247cf7717d011536b3fd5c4cbb6014382 Parents: e840137 Author: yukon <[email protected]> Authored: Mon Apr 24 22:06:49 2017 +0800 Committer: yukon <[email protected]> Committed: Mon Apr 24 22:07:35 2017 +0800 ---------------------------------------------------------------------- _data/navigation.yml | 29 ++++++++++---- _docs/01-quick-start-guide.md | 4 +- _docs/best-practice-namesvr.md | 76 +++++++++++++++++++++++++++++++++++-- 3 files changed, 97 insertions(+), 12 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/b3c93e12/_data/navigation.yml ---------------------------------------------------------------------- diff --git a/_data/navigation.yml b/_data/navigation.yml index 1fd0ac6..4b86674 100644 --- a/_data/navigation.yml +++ b/_data/navigation.yml @@ -21,26 +21,41 @@ docs: children: - title: "Quick Start" url: /docs/quick-start/ - - title: "Motivation" + - title: "Why RocketMQ" url: /docs/motivation/ - - title: "Core Concept" - url: /docs/core-concept/ + - title: "Simple Example" + url: /docs/simple-example/ + - title: "Order Example" + url: /docs/order-example/ + - title: "Schedule Example" + url: /docs/schedule-example/ + - title: "Schedule Example" + url: /docs/schedule-example/ + + - title: Deployment & Operations + children: + - title: "Architecture" + url: /docs/architecture/ + - title: "Deployment" + url: /docs/deployment/ - title: "CLI Admin Tool" url: /docs/cli-admin-tool/ - - title: "Cluster Configuration & Deployment" - url: /docs/cluster-deployment/ - - title: Developer Guide + + - title: Contributor Guide children: - title: "Code Guidelines" url: /docs/code-guidelines/ #- title: "Branching Model" # url: /docs/branching-model - - title: "Best Practice in PR" + - title: "Pull Request" url: /docs/pull-request/ - title: "Release Manual" url: /docs/release-manual + - title: Best Practice children: + - title: "Core Concept" + url: /docs/core-concept/ - title: "Broker" url: /docs/best-practice-broker/ - title: "Producer" http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/b3c93e12/_docs/01-quick-start-guide.md ---------------------------------------------------------------------- diff --git a/_docs/01-quick-start-guide.md b/_docs/01-quick-start-guide.md index 9dbf5f4..b0f2e24 100644 --- a/_docs/01-quick-start-guide.md +++ b/_docs/01-quick-start-guide.md @@ -22,8 +22,8 @@ This quick start guide is to give detailed instructions, helping you setup Rocke ```shell > git clone https://github.com/apache/incubator-rocketmq.git > cd incubator-rocketmq - > mvn clean package install -Prelease-all assembly:assembly -U - > cd target/apache-rocketmq-all/ + > mvn -Prelease-all -DskipTests clean install -U + > cd distribution/target/apache-rocketmq ``` http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/b3c93e12/_docs/best-practice-namesvr.md ---------------------------------------------------------------------- diff --git a/_docs/best-practice-namesvr.md b/_docs/best-practice-namesvr.md index 2f5ba58..1679850 100644 --- a/_docs/best-practice-namesvr.md +++ b/_docs/best-practice-namesvr.md @@ -4,11 +4,81 @@ permalink: /docs/best-practice-namesvr/ modified: 2016-12-24T15:01:43-04:00 --- -Some useful tips for users. +In Apache RocketMQ, name servers are designed to coordinate each component of the distributed system +and fulfill much of this responsibility through managing topic route information. {% include toc %} -## Ordered Message -to be finished +The management, roughly speaking, consists two parts: +- Brokers periodically renew meta data, including topics they have, which are kept in every name servers. +- Name servers are serving clients, including producers, consumers and command line clients with the latest routing information. + +Therefore, before launching brokers and clients, we need to tell them how to reach name servers by feeding them with a name server address list. +In Apache RocketMQ, this can be done in four ways. + +## Programmatic Way + +For broker, we may specify `namesrvAddr=name-server-ip1:port;name-server-ip2:port` in broker configuration file. + +For producers and consumers, we may feed name server address list to them as follows: + +```java +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: + +```java +sh mqadmin command-name -n name-server-ip1:port;name-server-ip2:port -X OTHER-OPTION +``` + +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 + +```java +DefaultMQAdminExt defaultMQAdminExt = new DefaultMQAdminExt("please_rename_unique_group_name"); +defaultMQAdminExt.setNamesrvAddr("name-server1-ip:port;name-server2-ip:port"); +``` + + +## Java Options + +Name server address list may also be fed to your application through specifying the sequel java option +`rocketmq.namesrv.addr` before launching. + +## Environment Variable + +You can export `NAMESRV_ADDR` environment variable. Brokers and clients will examine and use its value if set. + + +## HTTP Endpoint + +If you do not specify name server address list using previously mentioned methods, Apache RocketMQ will access + the following HTTP end point to acquire and update name server address list every two minutes with initial delay of + ten seconds. + +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` + +If you are running Apache RocketMQ in production, this method is recommended because it gives you maximum flexibility + -- you can dynamically add or remove name server nodes without necessity of rebooting your brokers and clients + according to your name servers' system load. + + +## Priority + +Methods introduced first take precedence over the latter, namely, <br> +`Programmatic Way > Java Options > Environment Variable > HTTP Endpoint`
