http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/ac7796b8/content/docs/broadcast-example/index.html ---------------------------------------------------------------------- diff --cc content/docs/broadcast-example/index.html index 0000000,0000000..6712947 new file mode 100644 --- /dev/null +++ b/content/docs/broadcast-example/index.html @@@ -1,0 -1,0 +1,661 @@@ ++<!doctype html> ++<html lang="en" class="no-js"> ++ <head> ++ <meta charset="utf-8"> ++ ++<!-- begin SEO --> ++ ++ ++ ++ ++ ++ ++ ++ ++ ++<title>Broadcasting - Apache RocketMQ</title> ++ ++ ++ ++ ++<meta name="description" content="How to send broadcast messages in Apache RocketMQ."> ++ ++ ++ ++ ++<meta property="og:locale" content="en"> ++<meta property="og:site_name" content="Apache RocketMQ"> ++<meta property="og:title" content="Broadcasting"> ++ ++ ++ ++ ++ <meta property="og:description" content="How to send broadcast messages in Apache RocketMQ."> ++ ++ ++ ++ <meta name="twitter:site" content="@ApacheRocketMQ"> ++ <meta name="twitter:title" content="Broadcasting"> ++ <meta name="twitter:description" content="How to send broadcast messages in Apache RocketMQ."> ++ <meta name="twitter:url" content=""> ++ ++ ++ <meta name="twitter:card" content="summary"> ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ <meta property="og:type" content="article"> ++ <meta property="article:published_time" content="2017-04-25T01:02:11+08:00"> ++ ++ ++ ++ ++ ++ ++ ++ ++ <script type="application/ld+json"> ++ { ++ "@context" : "http://schema.org", ++ "@type" : "Person", ++ "name" : "Apache RocketMQ", ++ "url" : null, ++ "sameAs" : null ++ } ++ </script> ++ ++ ++ ++ <meta name="google-site-verification" content="aand0XZkSGsziuC-UPD4ZJniFD0m0JhGx6820y2mAQY" /> ++ ++ ++ <meta name="baidu-site-verification" content="wD06EbDRkQ" /> ++ ++ ++ ++ ++<!-- end SEO --> ++ ++ ++<link href="/feed.xml" type="application/atom+xml" rel="alternate" title="Apache RocketMQ Feed"> ++ ++<!-- http://t.co/dKP3o1e --> ++<meta name="HandheldFriendly" content="True"> ++<meta name="MobileOptimized" content="320"> ++<meta name="viewport" content="width=device-width, initial-scale=1.0"> ++ ++<script> ++ document.documentElement.className = document.documentElement.className.replace(/\bno-js\b/g, '') + ' js '; ++</script> ++ ++<!-- For all browsers --> ++<link rel="stylesheet" href="/assets/css/main.css"> ++ ++<meta http-equiv="cleartype" content="on"> ++ <!-- start custom head snippets --> ++ ++<!-- insert favicons. use http://realfavicongenerator.net/ --> ++ ++<!-- end custom head snippets --> ++ </head> ++ ++ <body class="layout--single"> ++ ++ <!--[if lt IE 9]> ++<div class="notice--danger align-center" style="margin: 0;">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</div> ++<![endif]--> ++ <div class="masthead"> ++ <div class="masthead__inner-wrap"> ++ <div class="masthead__menu"> ++ <nav id="site-nav" class="greedy-nav"> ++ <button><div class="navicon"></div></button> ++ <ul class="visible-links"> ++ <li class="masthead__menu-item masthead__menu-item--lg"><a href="/">Apache RocketMQ</a></li> ++ ++ ++ <li class="masthead__menu-item"><a href="/docs/quick-start/">Documentation</a></li> ++ ++ ++ <li class="masthead__menu-item"><a href="/year-archive/">Blog</a></li> ++ ++ ++ <li class="masthead__menu-item"><a href="/community/">Community</a></li> ++ ++ ++ <li class="masthead__menu-item"><a href="/customer/">Customer</a></li> ++ ++ ++ <li class="masthead__menu-item"><a href="/about/team/">About</a></li> ++ ++ </ul> ++ <ul class="hidden-links hidden"></ul> ++ </nav> ++ </div> ++ </div> ++</div> ++ ++ ++ ++ ++ ++<div id="main" role="main"> ++ ++ <div class="sidebar sticky"> ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++<nav class="nav__list"> ++ ++ <input id="ac-toc" name="accordion-toc" type="checkbox" /> ++ <label for="ac-toc">Toggle Menu</label> ++ <ul class="nav__items"> ++ ++ <li> ++ ++ <span class="nav__sub-title">User Guide</span> ++ ++ ++ ++ <ul> ++ ++ ++ ++ ++ ++ ++ ++ <li><a href="/docs/quick-start/" class="">Quick Start</a></li> ++ ++ ++ ++ ++ ++ ++ ++ <li><a href="/docs/motivation/" class="">Why RocketMQ</a></li> ++ ++ ++ ++ ++ ++ ++ ++ <li><a href="/docs/simple-example/" class="">Simple Example</a></li> ++ ++ ++ ++ ++ ++ ++ ++ <li><a href="/docs/order-example/" class="">Order Example</a></li> ++ ++ ++ ++ ++ ++ ++ ++ <li><a href="/docs/broadcast-example/" class="active">Broadcasting Example</a></li> ++ ++ ++ ++ ++ ++ ++ ++ <li><a href="/docs/schedule-example/" class="">Schedule Example</a></li> ++ ++ ++ ++ ++ ++ ++ ++ <li><a href="/docs/batch-example/" class="">Batch Example</a></li> ++ ++ </ul> ++ ++ </li> ++ ++ <li> ++ ++ <span class="nav__sub-title">Deployment & Operations</span> ++ ++ ++ ++ <ul> ++ ++ ++ ++ ++ ++ ++ ++ <li><a href="/docs/rmq-arc/" class="">Architecture</a></li> ++ ++ ++ ++ ++ ++ ++ ++ <li><a href="/docs/rmq-deployment/" class="">Deployment</a></li> ++ ++ ++ ++ ++ ++ ++ ++ <li><a href="/docs/cli-admin-tool/" class="">CLI Admin Tool</a></li> ++ ++ </ul> ++ ++ </li> ++ ++ <li> ++ ++ <span class="nav__sub-title">Contributor Guide</span> ++ ++ ++ ++ <ul> ++ ++ ++ ++ ++ ++ ++ ++ <li><a href="/docs/code-guidelines/" class="">Code Guidelines</a></li> ++ ++ ++ ++ ++ ++ ++ ++ <li><a href="/docs/pull-request/" class="">Pull Request</a></li> ++ ++ ++ ++ ++ ++ ++ ++ <li><a href="/docs/release-manual" class="">Release Manual</a></li> ++ ++ </ul> ++ ++ </li> ++ ++ <li> ++ ++ <span class="nav__sub-title">Best Practice</span> ++ ++ ++ ++ <ul> ++ ++ ++ ++ ++ ++ ++ ++ <li><a href="/docs/core-concept/" class="">Core Concept</a></li> ++ ++ ++ ++ ++ ++ ++ ++ <li><a href="/docs/best-practice-broker/" class="">Broker</a></li> ++ ++ ++ ++ ++ ++ ++ ++ <li><a href="/docs/best-practice-producer/" class="">Producer</a></li> ++ ++ ++ ++ ++ ++ ++ ++ <li><a href="/docs/best-practice-consumer/" class="">Consumer</a></li> ++ ++ ++ ++ ++ ++ ++ ++ <li><a href="/docs/best-practice-namesvr/" class="">NameServer</a></li> ++ ++ </ul> ++ ++ </li> ++ ++ <li> ++ ++ <span class="nav__sub-title">Release Notes</span> ++ ++ ++ ++ <ul> ++ ++ ++ ++ ++ ++ ++ ++ <li><a href="/dowloading/releases/" class="">Download</a></li> ++ ++ ++ ++ ++ ++ ++ ++ <li><a href="/release_notes/release-notes-4.0.0-incubating/" class="">4.0.0-incubating</a></li> ++ ++ </ul> ++ ++ </li> ++ ++ <li> ++ ++ ++ ++ ++ <a href="/docs/roadmap/"><span class="nav__sub-title">RoadMap</span></a> ++ ++ ++ ++ </li> ++ ++ <li> ++ ++ ++ ++ ++ <a href="/docs/faq/"><span class="nav__sub-title">FAQ</span></a> ++ ++ ++ ++ </li> ++ ++ </ul> ++</nav> ++ ++ ++ </div> ++ ++ ++ <article class="page" itemscope itemtype="http://schema.org/CreativeWork"> ++ <meta itemprop="headline" content="Broadcasting"> ++ <meta itemprop="description" content="How to send broadcast messages in Apache RocketMQ."> ++ <meta itemprop="datePublished" content="April 25, 2017"> ++ <meta itemprop="dateModified" content="April 25, 2017"> ++ ++ <div class="page__inner-wrap"> ++ ++ <header> ++ <h1 class="page__title" itemprop="headline">Broadcasting ++</h1> ++ ++ </header> ++ ++ ++ <section class="page__content" itemprop="text"> ++ <aside class="sidebar__right"> ++<nav class="toc"> ++ <header><h4 class="nav__title"><i class="fa fa-file-text"></i> On This Page</h4></header> ++<ul class="toc__menu" id="markdown-toc"> ++ <li><a href="#what-is-broadcasting" id="markdown-toc-what-is-broadcasting">What is Broadcasting</a></li> ++ <li><a href="#how-to-use" id="markdown-toc-how-to-use">How to use</a> <ul> ++ <li><a href="#firstproduce-message-as-before" id="markdown-toc-firstproduce-message-as-before">First,Produce message as before</a></li> ++ <li><a href="#secondconsume-message-in-broadcast-mode" id="markdown-toc-secondconsume-message-in-broadcast-mode">Second,Consume message in Broadcast mode</a></li> ++ </ul> ++ </li> ++</ul> ++ ++ </nav> ++</aside> ++ ++<h4 id="what-is-broadcasting">What is Broadcasting</h4> ++<p>Broadcasting is when sending a meeage to a topic,all subscribers of the topic will receive the message even if they are in the same consumer group.If you want all subscribers in a group receive all the messages in a topic,broadcasting is a good choice.</p> ++ ++<h4 id="how-to-use">How to use</h4> ++ ++<h5 id="firstproduce-message-as-before">First,Produce message as before</h5> ++ ++<div class="language-java highlighter-rouge"><pre class="highlight"><code><span class="n">DefaultMQProducer</span> <span class="n">producer</span> <span class="o">=</span> <span class="k">new</span> <span class="n">DefaultMQProducer</span><span class="o">(</span><span class="s">"ProducerGroupName"</span><span class="o">);</span> ++ ++<span class="n">producer</span><span class="o">.</span><span class="na">start</span><span class="o">();</span> ++ ++<span class="k">for</span> <span class="o">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span> <span class="n">i</span> <span class="o"><</span> <span class="mi">10000000</span><span class="o">;</span> <span class="n">i</span><span class="o">++){</span> ++ <span class="k">try</span> <span class="o">{</span> ++ <span class="o">{</span> ++ <span class="n">Message</span> <span class="n">msg</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Message</span><span class="o">(</span><span class="s">"TopicTest"</span><span class="o">,</span> ++ <span class="s">"TagA"</span><span class="o">,</span> ++ <span class="s">"OrderID188"</span><span class="o">,</span> ++ <span class="s">"Hello world"</span><span class="o">.</span><span class="na">getBytes</span><span class="o">(</span><span class="n">RemotingHelper</span><span class="o">.</span><span class="na">DEFAULT_CHARSET</span><span class="o">));</span> ++ <span class="n">SendResult</span> <span class="n">sendResult</span> <span class="o">=</span> <span class="n">producer</span><span class="o">.</span><span class="na">send</span><span class="o">(</span><span class="n">msg</span><span class="o">);</span> ++ <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">printf</span><span class="o">(</span><span class="s">"%s%n"</span><span class="o">,</span> <span class="n">sendResult</span><span class="o">);</span> ++ <span class="o">}</span> ++ ++ <span class="o">}</span> <span class="k">catch</span> <span class="o">(</span><span class="n">Exception</span> <span class="n">e</span><span class="o">)</span> <span class="o">{</span> ++ <span class="n">e</span><span class="o">.</span><span class="na">printStackTrace</span><span class="o">();</span> ++ <span class="o">}</span> ++<span class="o">}</span> ++<span class="n">producer</span><span class="o">.</span><span class="na">shutdown</span><span class="o">();</span> ++</code></pre> ++</div> ++ ++<h5 id="secondconsume-message-in-broadcast-mode">Second,Consume message in Broadcast mode</h5> ++ ++<div class="language-java highlighter-rouge"><pre class="highlight"><code><span class="n">DefaultMQPushConsumer</span> <span class="n">consumer</span> <span class="o">=</span> <span class="k">new</span> <span class="n">DefaultMQPushConsumer</span><span class="o">(</span><span class="s">"please_rename_unique_group_name_1"</span><span class="o">);</span> ++ ++<span class="n">consumer</span><span class="o">.</span><span class="na">setConsumeFromWhere</span><span class="o">(</span><span class="n">ConsumeFromWhere</span><span class="o">.</span><span class="na">CONSUME_FROM_FIRST_OFFSET</span><span class="o">);</span> ++ ++<span class="c1">//set to broadcast mode</span> ++<span class="n">consumer</span><span class="o">.</span><span class="na">setMessageModel</span><span class="o">(</span><span class="n">MessageModel</span><span class="o">.</span><span class="na">BROADCASTING</span><span class="o">);</span> ++ ++<span class="n">consumer</span><span class="o">.</span><span class="na">subscribe</span><span class="o">(</span><span class="s">"TopicTest"</span><span class="o">,</span> <span class="s">"TagA || TagC || TagD"</span><span class="o">);</span> ++ ++<span class="n">consumer</span><span class="o">.</span><span class="na">registerMessageListener</span><span class="o">(</span><span class="k">new</span> <span class="n">MessageListenerConcurrently</span><span class="o">()</span> <span class="o">{</span> ++ ++ <span class="nd">@Override</span> ++ <span class="kd">public</span> <span class="n">ConsumeConcurrentlyStatus</span> <span class="nf">consumeMessage</span><span class="o">(</span><span class="n">List</span><span class="o"><</span><span class="n">MessageExt</span><span class="o">></span> <span class="n">msgs</span><span class="o">,</span> ++ <span class="n">ConsumeConcurrentlyContext</span> <span class="n">context</span><span class="o">)</span> <span class="o">{</span> ++ <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">printf</span><span class="o">(</span><span class="n">Thread</span><span class="o">.</span><span class="na">currentThread</span><span class="o">().</span><span class="na">getName</span><span class="o">()</span> <span class="o">+</span> <span class="s">" Receive New Messages: "</span> <span class="o">+</span> <span class="n">msgs</span> <span class="o">+</span> <span class="s">"%n"</span><span class="o">);</span> ++ <span class="k">return</span> <span class="n">ConsumeConcurrentlyStatus</span><span class="o">.</span><span class="na">CONSUME_SUCCESS</span><span class="o">;</span> ++ <span class="o">}</span> ++<span class="o">});</span> ++ ++<span class="n">consumer</span><span class="o">.</span><span class="na">start</span><span class="o">();</span> ++<span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">printf</span><span class="o">(</span><span class="s">"Broadcast Consumer Started.%n"</span><span class="o">);</span> ++</code></pre> ++</div> ++ ++<p>Enjoy it.</p> ++ ++ ++ </section> ++ ++ <footer class="page__meta"> ++ ++ ++ ++ ++ ++ <p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> Updated:</strong> <time datetime="2017-04-25">April 25, 2017</time></p> ++ ++ </footer> ++ ++ <section class="page__share"> ++ ++ <h4 class="page__share-title">Share on</h4> ++ ++ ++ <a href="https://twitter.com/intent/tweet?via=ApacheRocketMQ&text=Broadcasting /docs/broadcast-example/" class="btn btn--twitter" title="Share on Twitter"><i class="fa fa-fw fa-twitter" aria-hidden="true"></i><span> Twitter</span></a> ++ ++ <a href="https://www.facebook.com/sharer/sharer.php?u=/docs/broadcast-example/" class="btn btn--facebook" title="Share on Facebook"><i class="fa fa-fw fa-facebook" aria-hidden="true"></i><span> Facebook</span></a> ++ ++ <a href="https://plus.google.com/share?url=/docs/broadcast-example/" class="btn btn--google-plus" title="Share on Google Plus"><i class="fa fa-fw fa-google-plus" aria-hidden="true"></i><span> Google+</span></a> ++ ++ <a href="https://www.linkedin.com/shareArticle?mini=true&url=/docs/broadcast-example/" class="btn btn--linkedin" title="Share on LinkedIn"><i class="fa fa-fw fa-linkedin" aria-hidden="true"></i><span> LinkedIn</span></a> ++</section> ++ ++ ++ ++ <nav class="pagination"> ++ ++ <a href="/docs/batch-example/" class="pagination--pager" title="Batch Example ++">Previous</a> ++ ++ ++ <a href="/docs/rmq-deployment/" class="pagination--pager" title="Deployment ++">Next</a> ++ ++ </nav> ++ ++ </div> ++ ++ ++ <div class="page__comments"> ++ ++ ++ <h4 class="page__comments-title">Leave a Comment</h4> ++ <section id="disqus_thread"></section> ++ ++</div> ++ ++ </article> ++ ++ ++ ++</div> ++ ++ <div class="page__footer"> ++ <footer> ++ <!-- start custom footer snippets --> ++ ++<!-- end custom footer snippets --> ++ <style type="text/css"> ++ div.columns { float: left; margin-left: 10px;} ++ div.clear { clear: both; } ++</style> ++<div> ++ <div class="columns"> ++ <a href="https://www.apache.org/"><img src="/assets/images/feather-small.gif" alt="Apache Software Foundation" style="height: 88px !important" /></a> ++ </div> ++ <div class="columns" style="width: 80%"> ++ <div class="page__footer-follow"> ++ <ul class="social-icons"> ++ ++ <li><strong>Follow:</strong></li> ++ ++ ++ <li><a href="https://twitter.com/ApacheRocketMQ"><i class="fa fa-fw fa-twitter-square" aria-hidden="true"></i> Twitter</a></li> ++ ++ ++ ++ <li><a href="http://github.com/apache/incubator-rocketmq"><i class="fa fa-fw fa-github" aria-hidden="true"></i> GitHub</a></li> ++ ++ ++ <li><a href="/feed.xml"><i class="fa fa-fw fa-rss-square" aria-hidden="true"></i> Feed</a></li> ++ </ul> ++ </div> ++ ++ <div class="page__footer-copyright">Copyright © 2017 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All Rights Reserved.</div> ++ </div> ++</div> ++<div class="clear"></div> ++ </footer> ++ </div> ++ ++ <script src="/assets/js/main.min.js"></script> ++ ++ ++ ++ ++ <script> ++ (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ ++ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), ++ m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) ++ })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ++ ++ ga('create', 'UA-89603173-1', 'auto'); ++ ga('send', 'pageview'); ++</script> ++ ++<script> ++var _hmt = _hmt || []; ++(function() { ++ var hm = document.createElement("script"); ++ hm.src = "https://hm.baidu.com/hm.js?36428f2b841d08e7405724cbf7f860d2"; ++ var s = document.getElementsByTagName("script")[0]; ++ s.parentNode.insertBefore(hm, s); ++})(); ++</script> ++ ++ ++ ++ ++ ++ <script type="text/javascript"> ++ /* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */ ++ var disqus_shortname = 'rocketmq'; ++ ++ /* * * DON'T EDIT BELOW THIS LINE * * */ ++ (function() { ++ var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true; ++ dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js'; ++ (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq); ++ })(); ++ ++ /* * * DON'T EDIT BELOW THIS LINE * * */ ++ (function () { ++ var s = document.createElement('script'); s.async = true; ++ s.type = 'text/javascript'; ++ s.src = '//' + disqus_shortname + '.disqus.com/count.js'; ++ (document.getElementsByTagName('HEAD')[0] || document.getElementsByTagName('BODY')[0]).appendChild(s); ++ }()); ++ </script> ++ <noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript> ++ ++ ++ ++ ++ ++ ++ </body> ++</html>
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/ac7796b8/content/docs/cli-admin-tool/index.html ---------------------------------------------------------------------- diff --cc content/docs/cli-admin-tool/index.html index 314aba1,0000000..87b6682 mode 100644,000000..100644 --- a/content/docs/cli-admin-tool/index.html +++ b/content/docs/cli-admin-tool/index.html @@@ -1,617 -1,0 +1,677 @@@ +<!doctype html> +<html lang="en" class="no-js"> + <head> + <meta charset="utf-8"> + +<!-- begin SEO --> + + + + + + + + + +<title>CLI Admin Tool - Apache RocketMQ</title> + + + + +<meta name="description" content="RocketMQ provides a CLI admin tool belt to query, manage and diagnose various issues."> + + + + +<meta property="og:locale" content="en"> +<meta property="og:site_name" content="Apache RocketMQ"> +<meta property="og:title" content="CLI Admin Tool"> + + + + + <meta property="og:description" content="RocketMQ provides a CLI admin tool belt to query, manage and diagnose various issues."> + + + + <meta name="twitter:site" content="@ApacheRocketMQ"> + <meta name="twitter:title" content="CLI Admin Tool"> + <meta name="twitter:description" content="RocketMQ provides a CLI admin tool belt to query, manage and diagnose various issues."> + <meta name="twitter:url" content=""> + + + <meta name="twitter:card" content="summary"> + + + + + + + + + + + + + + + + <meta property="og:type" content="article"> - <meta property="article:published_time" content="2017-04-07T09:16:21+08:00"> ++ <meta property="article:published_time" content="2017-04-25T01:02:11+08:00"> + + + + + + + + + <script type="application/ld+json"> + { + "@context" : "http://schema.org", + "@type" : "Person", + "name" : "Apache RocketMQ", + "url" : null, + "sameAs" : null + } + </script> + + + + <meta name="google-site-verification" content="aand0XZkSGsziuC-UPD4ZJniFD0m0JhGx6820y2mAQY" /> + + + <meta name="baidu-site-verification" content="wD06EbDRkQ" /> + + + + +<!-- end SEO --> + + +<link href="/feed.xml" type="application/atom+xml" rel="alternate" title="Apache RocketMQ Feed"> + +<!-- http://t.co/dKP3o1e --> +<meta name="HandheldFriendly" content="True"> +<meta name="MobileOptimized" content="320"> +<meta name="viewport" content="width=device-width, initial-scale=1.0"> + +<script> + document.documentElement.className = document.documentElement.className.replace(/\bno-js\b/g, '') + ' js '; +</script> + +<!-- For all browsers --> +<link rel="stylesheet" href="/assets/css/main.css"> + +<meta http-equiv="cleartype" content="on"> + <!-- start custom head snippets --> + +<!-- insert favicons. use http://realfavicongenerator.net/ --> + +<!-- end custom head snippets --> + </head> + + <body class="layout--single"> + + <!--[if lt IE 9]> +<div class="notice--danger align-center" style="margin: 0;">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</div> +<![endif]--> + <div class="masthead"> + <div class="masthead__inner-wrap"> + <div class="masthead__menu"> + <nav id="site-nav" class="greedy-nav"> + <button><div class="navicon"></div></button> + <ul class="visible-links"> + <li class="masthead__menu-item masthead__menu-item--lg"><a href="/">Apache RocketMQ</a></li> + + + <li class="masthead__menu-item"><a href="/docs/quick-start/">Documentation</a></li> + + + <li class="masthead__menu-item"><a href="/year-archive/">Blog</a></li> + + + <li class="masthead__menu-item"><a href="/community/">Community</a></li> + + + <li class="masthead__menu-item"><a href="/customer/">Customer</a></li> + + + <li class="masthead__menu-item"><a href="/about/team/">About</a></li> + + </ul> + <ul class="hidden-links hidden"></ul> + </nav> + </div> + </div> +</div> + + + + + +<div id="main" role="main"> + + <div class="sidebar sticky"> + + + + + + + + + + +<nav class="nav__list"> + + <input id="ac-toc" name="accordion-toc" type="checkbox" /> + <label for="ac-toc">Toggle Menu</label> + <ul class="nav__items"> + + <li> + + <span class="nav__sub-title">User Guide</span> + + + + <ul> + + + + + + + + <li><a href="/docs/quick-start/" class="">Quick Start</a></li> + + + + + + + - <li><a href="/docs/motivation/" class="">Motivation</a></li> ++ <li><a href="/docs/motivation/" class="">Why RocketMQ</a></li> + + + + + + + - <li><a href="/docs/core-concept/" class="">Core Concept</a></li> ++ <li><a href="/docs/simple-example/" class="">Simple Example</a></li> + + + + + + + - <li><a href="/docs/cli-admin-tool/" class="active">CLI Admin Tool</a></li> ++ <li><a href="/docs/order-example/" class="">Order Example</a></li> + + + + + + + - <li><a href="/docs/cluster-deployment/" class="">Cluster Configuration & Deployment</a></li> ++ <li><a href="/docs/broadcast-example/" class="">Broadcasting Example</a></li> ++ ++ ++ ++ ++ ++ ++ ++ <li><a href="/docs/schedule-example/" class="">Schedule Example</a></li> ++ ++ ++ ++ ++ ++ ++ ++ <li><a href="/docs/batch-example/" class="">Batch Example</a></li> + + </ul> + + </li> + + <li> + - <span class="nav__sub-title">Developer Guide</span> ++ <span class="nav__sub-title">Deployment & Operations</span> ++ ++ ++ ++ <ul> ++ ++ ++ ++ ++ ++ ++ ++ <li><a href="/docs/rmq-arc/" class="">Architecture</a></li> ++ ++ ++ ++ ++ ++ ++ ++ <li><a href="/docs/rmq-deployment/" class="">Deployment</a></li> ++ ++ ++ ++ ++ ++ ++ ++ <li><a href="/docs/cli-admin-tool/" class="active">CLI Admin Tool</a></li> ++ ++ </ul> ++ ++ </li> ++ ++ <li> ++ ++ <span class="nav__sub-title">Contributor Guide</span> + + + + <ul> + + + + + + + + <li><a href="/docs/code-guidelines/" class="">Code Guidelines</a></li> + + + + + + + - <li><a href="/docs/pull-request/" class="">Best Practice in PR</a></li> ++ <li><a href="/docs/pull-request/" class="">Pull Request</a></li> + + + + + + + + <li><a href="/docs/release-manual" class="">Release Manual</a></li> + + </ul> + + </li> + + <li> + + <span class="nav__sub-title">Best Practice</span> + + + + <ul> + + + + + + + ++ <li><a href="/docs/core-concept/" class="">Core Concept</a></li> ++ ++ ++ ++ ++ ++ ++ + <li><a href="/docs/best-practice-broker/" class="">Broker</a></li> + + + + + + + + <li><a href="/docs/best-practice-producer/" class="">Producer</a></li> + + + + + + + + <li><a href="/docs/best-practice-consumer/" class="">Consumer</a></li> + + + + + + + + <li><a href="/docs/best-practice-namesvr/" class="">NameServer</a></li> + + </ul> + + </li> + + <li> + + <span class="nav__sub-title">Release Notes</span> + + + + <ul> + + + + + + + + <li><a href="/dowloading/releases/" class="">Download</a></li> + + + + + + + + <li><a href="/release_notes/release-notes-4.0.0-incubating/" class="">4.0.0-incubating</a></li> + + </ul> + + </li> + + <li> + + + + + <a href="/docs/roadmap/"><span class="nav__sub-title">RoadMap</span></a> + + + + </li> + + <li> + + + + + <a href="/docs/faq/"><span class="nav__sub-title">FAQ</span></a> + + + + </li> + + </ul> +</nav> + + + </div> + + + <article class="page" itemscope itemtype="http://schema.org/CreativeWork"> + <meta itemprop="headline" content="CLI Admin Tool"> + <meta itemprop="description" content="RocketMQ provides a CLI admin tool belt to query, manage and diagnose various issues."> - <meta itemprop="datePublished" content="April 07, 2017"> ++ <meta itemprop="datePublished" content="April 25, 2017"> + <meta itemprop="dateModified" content="December 17, 2016"> + + <div class="page__inner-wrap"> + + <header> + <h1 class="page__title" itemprop="headline">CLI Admin Tool +</h1> + + </header> + + + <section class="page__content" itemprop="text"> + <p>RocketMQ provides a CLI admin tool belt to query, manage and diagnose various issues.</p> + +<aside class="sidebar__right"> +<nav class="toc"> + <header><h4 class="nav__title"><i class="fa fa-file-text"></i> On This Page</h4></header> +<ul class="toc__menu" id="markdown-toc"> + <li><a href="#prerequisite" id="markdown-toc-prerequisite">Prerequisite</a></li> + <li><a href="#how-to-get-it" id="markdown-toc-how-to-get-it">How To Get it</a></li> + <li><a href="#how-to-use" id="markdown-toc-how-to-use">How to use</a></li> + <li><a href="#command-manual" id="markdown-toc-command-manual">Command Manual</a></li> +</ul> + + </nav> +</aside> + +<h1 id="prerequisite">Prerequisite</h1> + +<p>Make sure you have walked through <a href="/docs/quick-start/">Quick Start</a> and <a href="/docs/core-concept/">Core Concept</a> sections.</p> + +<h1 id="how-to-get-it">How To Get it</h1> + +<p>The admin tool is shipped along with RocketMQ. Either you download a pre-built binary version or build from source by yourself, you already have it.</p> + +<p>In case you have source code, the <a href="https://github.com/apache/incubator-rocketmq/tree/master/tools">rocketmq-tools module</a> contains its source code.</p> + +<h1 id="how-to-use">How to use</h1> + +<p>The Admin Tool is very easy to use. Here, for demonstration purpose, *nix environment is assumed.</p> + +<p>Change directory to ${PACKAGE}/bin, command <code class="highlighter-rouge">bash mqadmin</code>, you should see the following help menu pops out.</p> + +<div class="highlighter-rouge"><pre class="highlight"><code>The most commonly used mqadmin commands are: + updateTopic Update or create topic + deleteTopic Delete topic from broker and NameServer. + updateSubGroup Update or create subscription group + deleteSubGroup Delete subscription group from broker. + updateBrokerConfig Update broker's config + updateTopicPerm Update topic perm + topicRoute Examine topic route info + topicStatus Examine topic Status info + topicClusterList get cluster info for topic + brokerStatus Fetch broker runtime status data + queryMsgById Query Message by Id + queryMsgByKey Query Message by Key + queryMsgByUniqueKey Query Message by Unique key + queryMsgByOffset Query Message by offset + queryMsgByUniqueKey Query Message by Unique key + printMsg Print Message Detail + sendMsgStatus send msg to broker. + brokerConsumeStats Fetch broker consume stats data + producerConnection Query producer's socket connection and client version + consumerConnection Query consumer's socket connection, client version and subscription + consumerProgress Query consumers's progress, speed + consumerStatus Query consumer's internal data structure + cloneGroupOffset clone offset from other group. + clusterList List all of clusters + topicList Fetch all topic list from name server + updateKvConfig Create or update KV config. + deleteKvConfig Delete KV config. + wipeWritePerm Wipe write perm of broker in all name server + resetOffsetByTime Reset consumer offset by timestamp(without client restart). + updateOrderConf Create or update or delete order conf + cleanExpiredCQ Clean expired ConsumeQueue on broker. + cleanUnusedTopic Clean unused topic on broker. + startMonitoring Start Monitoring + statsAll Topic and Consumer tps stats + syncDocs Synchronize wiki and issue to github.com + allocateMQ Allocate MQ + checkMsgSendRT check message send response time + clusterRT List All clusters Message Send RT + +See 'mqadmin help <command>' for more information on a specific command. +</code></pre> +</div> + +<p>As you see, the most commonly used commands are listed with a brief description. To get detailed manual of each command, <code class="highlighter-rouge">bash mqadmin help <command></code>. For example, command <code class="highlighter-rouge">bash mqadmin help clusterList</code> will bring out the following help text:</p> + +<div class="highlighter-rouge"><pre class="highlight"><code>usage: mqadmin clusterList [-h] [-i <arg>] [-m] [-n <arg>] + -h,--help Print help + -i,--interval <arg> specify intervals numbers, it is in seconds + -m,--moreStats Print more stats + -n,--namesrvAddr <arg> Name server address list, eg: 192.168.0.1:9876;192.168.0.2:9876 +</code></pre> +</div> + +<p>The help text lists possible options and interpretation of each option.</p> + +<h1 id="command-manual">Command Manual</h1> + + + </section> + + <footer class="page__meta"> + + + + + + <p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> Updated:</strong> <time datetime="2016-12-17">December 17, 2016</time></p> + + </footer> + + <section class="page__share"> + + <h4 class="page__share-title">Share on</h4> + + + <a href="https://twitter.com/intent/tweet?via=ApacheRocketMQ&text=CLI Admin Tool /docs/cli-admin-tool/" class="btn btn--twitter" title="Share on Twitter"><i class="fa fa-fw fa-twitter" aria-hidden="true"></i><span> Twitter</span></a> + + <a href="https://www.facebook.com/sharer/sharer.php?u=/docs/cli-admin-tool/" class="btn btn--facebook" title="Share on Facebook"><i class="fa fa-fw fa-facebook" aria-hidden="true"></i><span> Facebook</span></a> + + <a href="https://plus.google.com/share?url=/docs/cli-admin-tool/" class="btn btn--google-plus" title="Share on Google Plus"><i class="fa fa-fw fa-google-plus" aria-hidden="true"></i><span> Google+</span></a> + + <a href="https://www.linkedin.com/shareArticle?mini=true&url=/docs/cli-admin-tool/" class="btn btn--linkedin" title="Share on LinkedIn"><i class="fa fa-fw fa-linkedin" aria-hidden="true"></i><span> LinkedIn</span></a> +</section> + + + + <nav class="pagination"> + + <a href="/docs/core-concept/" class="pagination--pager" title="Core Concept +">Previous</a> + + + <a href="/docs/cluster-deployment/" class="pagination--pager" title="Cluster Configuration and Deployment +">Next</a> + + </nav> + + </div> + + + <div class="page__comments"> + + + <h4 class="page__comments-title">Leave a Comment</h4> + <section id="disqus_thread"></section> + +</div> + + </article> + + + +</div> + + <div class="page__footer"> + <footer> + <!-- start custom footer snippets --> + +<!-- end custom footer snippets --> + <style type="text/css"> + div.columns { float: left; margin-left: 10px;} + div.clear { clear: both; } +</style> +<div> + <div class="columns"> + <a href="https://www.apache.org/"><img src="/assets/images/feather-small.gif" alt="Apache Software Foundation" style="height: 88px !important" /></a> + </div> + <div class="columns" style="width: 80%"> + <div class="page__footer-follow"> + <ul class="social-icons"> + + <li><strong>Follow:</strong></li> + + + <li><a href="https://twitter.com/ApacheRocketMQ"><i class="fa fa-fw fa-twitter-square" aria-hidden="true"></i> Twitter</a></li> + + + + <li><a href="http://github.com/apache/incubator-rocketmq"><i class="fa fa-fw fa-github" aria-hidden="true"></i> GitHub</a></li> + + + <li><a href="/feed.xml"><i class="fa fa-fw fa-rss-square" aria-hidden="true"></i> Feed</a></li> + </ul> + </div> + + <div class="page__footer-copyright">Copyright © 2017 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All Rights Reserved.</div> + </div> +</div> +<div class="clear"></div> + </footer> + </div> + + <script src="/assets/js/main.min.js"></script> + + + + + <script> + (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ + (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), + m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) + })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); + + ga('create', 'UA-89603173-1', 'auto'); + ga('send', 'pageview'); +</script> + +<script> +var _hmt = _hmt || []; +(function() { + var hm = document.createElement("script"); + hm.src = "https://hm.baidu.com/hm.js?36428f2b841d08e7405724cbf7f860d2"; + var s = document.getElementsByTagName("script")[0]; + s.parentNode.insertBefore(hm, s); +})(); +</script> + + + + + + <script type="text/javascript"> + /* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */ + var disqus_shortname = 'rocketmq'; + + /* * * DON'T EDIT BELOW THIS LINE * * */ + (function() { + var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true; + dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js'; + (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq); + })(); + + /* * * DON'T EDIT BELOW THIS LINE * * */ + (function () { + var s = document.createElement('script'); s.async = true; + s.type = 'text/javascript'; + s.src = '//' + disqus_shortname + '.disqus.com/count.js'; + (document.getElementsByTagName('HEAD')[0] || document.getElementsByTagName('BODY')[0]).appendChild(s); + }()); + </script> + <noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript> + + + + + + + </body> +</html> http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/ac7796b8/content/docs/cluster-deployment/index.html ---------------------------------------------------------------------- diff --cc content/docs/cluster-deployment/index.html index d7e6d8f,0000000..8f71ae7 mode 100644,000000..100644 --- a/content/docs/cluster-deployment/index.html +++ b/content/docs/cluster-deployment/index.html @@@ -1,621 -1,0 +1,681 @@@ +<!doctype html> +<html lang="en" class="no-js"> + <head> + <meta charset="utf-8"> + +<!-- begin SEO --> + + + + + + + + + +<title>Cluster Configuration and Deployment - Apache RocketMQ</title> + + + + +<meta name="description" content="Prerequisite"> + + + + +<meta property="og:locale" content="en"> +<meta property="og:site_name" content="Apache RocketMQ"> +<meta property="og:title" content="Cluster Configuration and Deployment"> + + + + + <meta property="og:description" content="Prerequisite"> + + + + <meta name="twitter:site" content="@ApacheRocketMQ"> + <meta name="twitter:title" content="Cluster Configuration and Deployment"> + <meta name="twitter:description" content="Prerequisite"> + <meta name="twitter:url" content=""> + + + <meta name="twitter:card" content="summary"> + + + + + + + + + + + + + + + + <meta property="og:type" content="article"> - <meta property="article:published_time" content="2017-04-07T09:16:21+08:00"> ++ <meta property="article:published_time" content="2017-04-25T01:02:11+08:00"> + + + + + + + + + <script type="application/ld+json"> + { + "@context" : "http://schema.org", + "@type" : "Person", + "name" : "Apache RocketMQ", + "url" : null, + "sameAs" : null + } + </script> + + + + <meta name="google-site-verification" content="aand0XZkSGsziuC-UPD4ZJniFD0m0JhGx6820y2mAQY" /> + + + <meta name="baidu-site-verification" content="wD06EbDRkQ" /> + + + + +<!-- end SEO --> + + +<link href="/feed.xml" type="application/atom+xml" rel="alternate" title="Apache RocketMQ Feed"> + +<!-- http://t.co/dKP3o1e --> +<meta name="HandheldFriendly" content="True"> +<meta name="MobileOptimized" content="320"> +<meta name="viewport" content="width=device-width, initial-scale=1.0"> + +<script> + document.documentElement.className = document.documentElement.className.replace(/\bno-js\b/g, '') + ' js '; +</script> + +<!-- For all browsers --> +<link rel="stylesheet" href="/assets/css/main.css"> + +<meta http-equiv="cleartype" content="on"> + <!-- start custom head snippets --> + +<!-- insert favicons. use http://realfavicongenerator.net/ --> + +<!-- end custom head snippets --> + </head> + + <body class="layout--single"> + + <!--[if lt IE 9]> +<div class="notice--danger align-center" style="margin: 0;">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</div> +<![endif]--> + <div class="masthead"> + <div class="masthead__inner-wrap"> + <div class="masthead__menu"> + <nav id="site-nav" class="greedy-nav"> + <button><div class="navicon"></div></button> + <ul class="visible-links"> + <li class="masthead__menu-item masthead__menu-item--lg"><a href="/">Apache RocketMQ</a></li> + + + <li class="masthead__menu-item"><a href="/docs/quick-start/">Documentation</a></li> + + + <li class="masthead__menu-item"><a href="/year-archive/">Blog</a></li> + + + <li class="masthead__menu-item"><a href="/community/">Community</a></li> + + + <li class="masthead__menu-item"><a href="/customer/">Customer</a></li> + + + <li class="masthead__menu-item"><a href="/about/team/">About</a></li> + + </ul> + <ul class="hidden-links hidden"></ul> + </nav> + </div> + </div> +</div> + + + + + +<div id="main" role="main"> + + <div class="sidebar sticky"> + + + + + + + + + + +<nav class="nav__list"> + + <input id="ac-toc" name="accordion-toc" type="checkbox" /> + <label for="ac-toc">Toggle Menu</label> + <ul class="nav__items"> + + <li> + + <span class="nav__sub-title">User Guide</span> + + + + <ul> + + + + + + + + <li><a href="/docs/quick-start/" class="">Quick Start</a></li> + + + + + + + - <li><a href="/docs/motivation/" class="">Motivation</a></li> ++ <li><a href="/docs/motivation/" class="">Why RocketMQ</a></li> + + + + + + + - <li><a href="/docs/core-concept/" class="">Core Concept</a></li> ++ <li><a href="/docs/simple-example/" class="">Simple Example</a></li> + + + + + + + - <li><a href="/docs/cli-admin-tool/" class="">CLI Admin Tool</a></li> ++ <li><a href="/docs/order-example/" class="">Order Example</a></li> + + + + + + + - <li><a href="/docs/cluster-deployment/" class="active">Cluster Configuration & Deployment</a></li> ++ <li><a href="/docs/broadcast-example/" class="">Broadcasting Example</a></li> ++ ++ ++ ++ ++ ++ ++ ++ <li><a href="/docs/schedule-example/" class="">Schedule Example</a></li> ++ ++ ++ ++ ++ ++ ++ ++ <li><a href="/docs/batch-example/" class="">Batch Example</a></li> + + </ul> + + </li> + + <li> + - <span class="nav__sub-title">Developer Guide</span> ++ <span class="nav__sub-title">Deployment & Operations</span> ++ ++ ++ ++ <ul> ++ ++ ++ ++ ++ ++ ++ ++ <li><a href="/docs/rmq-arc/" class="">Architecture</a></li> ++ ++ ++ ++ ++ ++ ++ ++ <li><a href="/docs/rmq-deployment/" class="">Deployment</a></li> ++ ++ ++ ++ ++ ++ ++ ++ <li><a href="/docs/cli-admin-tool/" class="">CLI Admin Tool</a></li> ++ ++ </ul> ++ ++ </li> ++ ++ <li> ++ ++ <span class="nav__sub-title">Contributor Guide</span> + + + + <ul> + + + + + + + + <li><a href="/docs/code-guidelines/" class="">Code Guidelines</a></li> + + + + + + + - <li><a href="/docs/pull-request/" class="">Best Practice in PR</a></li> ++ <li><a href="/docs/pull-request/" class="">Pull Request</a></li> + + + + + + + + <li><a href="/docs/release-manual" class="">Release Manual</a></li> + + </ul> + + </li> + + <li> + + <span class="nav__sub-title">Best Practice</span> + + + + <ul> + + + + + + + ++ <li><a href="/docs/core-concept/" class="">Core Concept</a></li> ++ ++ ++ ++ ++ ++ ++ + <li><a href="/docs/best-practice-broker/" class="">Broker</a></li> + + + + + + + + <li><a href="/docs/best-practice-producer/" class="">Producer</a></li> + + + + + + + + <li><a href="/docs/best-practice-consumer/" class="">Consumer</a></li> + + + + + + + + <li><a href="/docs/best-practice-namesvr/" class="">NameServer</a></li> + + </ul> + + </li> + + <li> + + <span class="nav__sub-title">Release Notes</span> + + + + <ul> + + + + + + + + <li><a href="/dowloading/releases/" class="">Download</a></li> + + + + + + + + <li><a href="/release_notes/release-notes-4.0.0-incubating/" class="">4.0.0-incubating</a></li> + + </ul> + + </li> + + <li> + + + + + <a href="/docs/roadmap/"><span class="nav__sub-title">RoadMap</span></a> + + + + </li> + + <li> + + + + + <a href="/docs/faq/"><span class="nav__sub-title">FAQ</span></a> + + + + </li> + + </ul> +</nav> + + + </div> + + + <article class="page" itemscope itemtype="http://schema.org/CreativeWork"> + <meta itemprop="headline" content="Cluster Configuration and Deployment"> + <meta itemprop="description" content="Prerequisite"> - <meta itemprop="datePublished" content="April 07, 2017"> ++ <meta itemprop="datePublished" content="April 25, 2017"> + <meta itemprop="dateModified" content="December 17, 2016"> + + <div class="page__inner-wrap"> + + <header> + <h1 class="page__title" itemprop="headline">Cluster Configuration and Deployment +</h1> + + </header> + + + <section class="page__content" itemprop="text"> + <h1 id="prerequisite">Prerequisite</h1> + +<p>Before starting this section, make sure you have read Quick Start section, in which core concepts and components of RocketMQ are introduced.</p> + +<aside class="sidebar__right"> +<nav class="toc"> + <header><h4 class="nav__title"><i class="fa fa-file-text"></i> On This Page</h4></header> +<ul class="toc__menu" id="markdown-toc"> + <li><a href="#prerequisite" id="markdown-toc-prerequisite">Prerequisite</a></li> + <li><a href="#introduction" id="markdown-toc-introduction">Introduction</a></li> + <li><a href="#name-server" id="markdown-toc-name-server">Name Server</a></li> + <li><a href="#broker" id="markdown-toc-broker">Broker</a></li> + <li><a href="#disk-flush-type-sync_flush--async_flush" id="markdown-toc-disk-flush-type-sync_flush--async_flush">Disk Flush Type: SYNC_FLUSH / ASYNC_FLUSH</a></li> + <li><a href="#replication-sync--async-broker" id="markdown-toc-replication-sync--async-broker">Replication: Sync / Async Broker</a></li> + <li><a href="#configuration" id="markdown-toc-configuration">Configuration</a></li> + <li><a href="#deployment-example" id="markdown-toc-deployment-example">Deployment Example</a></li> +</ul> + + </nav> +</aside> + +<h1 id="introduction">Introduction</h1> + +<p>This section is to introduce deployment solution that may be considered production ready. Generally speaking, we are deploying a resilient RocketMQ cluster having no single point of failure.</p> + +<h1 id="name-server">Name Server</h1> + +<p>To ensure the cluster can still operate normally when name server instance crashes, two or more name server instances are recommended. As long as there is one name server instance alive, the whole cluster remains serving.</p> + +<p>Name server follows share-nothing design paradigm. Brokers send heartbeat data to all name servers. Producers and consumers may query meta data from any one of name servers available while sending / consuming messages.</p> + +<h1 id="broker">Broker</h1> + +<p>Brokers can be divided into two categories according to their roles: master and slave. Master brokers can read and write while slave brokers can only read messages replicated from master. Master brokers have brokerId=0; brokerId of slave is non-zero.</p> + +<p>Brokers may also be grouped by the brokerName property. Slave brokers find their master through brokerName. One master broker along with zero, one or multiple slave brokers is called a broker set.</p> + +<p>In serious scenarios, we should have at least two broker sets. Each topic, as you guess, resides in two or more broker sets.</p> + +<h1 id="disk-flush-type-sync_flush--async_flush">Disk Flush Type: SYNC_FLUSH / ASYNC_FLUSH</h1> + +<p>Each broker can be configured to be sync or async in terms of IO flushing strategy. To put it simply, if your business tolerates none message loss at extreme scenarios like OS crash or power loss, SYNC_FLUSH mode is recommended. Broker of SYNC_FLUSH mode would flush each message it receives onto disk before acknowledging producer. Obviously, throughout of this mode is highly dependent on IOPS of your hard disk.</p> + +<p>Broker of ASYNC_FLUSH mode, on the other hand, takes advantage of group-committing: only flushes dirty page caches to disk periodically or when count of dirty page caches reaches certain amount. Hence, the latter yields better performance.</p> + +<h1 id="replication-sync--async-broker">Replication: Sync / Async Broker</h1> + +<p>Similar to many replication system, sync brokers await until commit log is replicated to a slave before acknowledging. Async brokers, instead, return immediately after messages are processed on master.</p> + +<h1 id="configuration">Configuration</h1> + +<p>There are three pre-built configurations shipped with the distribution of RocketMQ under conf folder for your reference:</p> + +<ol> + <li>2m-2s-sync</li> + <li>2m-2s-async</li> + <li>2m-noslave</li> +</ol> + +<p>Note: all configurations uses ASYNC_FLUSH.</p> + +<h1 id="deployment-example">Deployment Example</h1> + +<p>For example, We want to have a cluster with 2 name servers, 2 broker sets with general purpose: +for this example, we choose <code class="highlighter-rouge">2m-2s-sync</code> +Assuming binary RocketMQ is at <code class="highlighter-rouge">/home/rocketmq/dist</code></p> + +<ol> + <li> + <p>Start up two name servers as is shown in Quick Start guide. Assume their IPs are 192.168.0.2 and 192.168.0.3.</p> + </li> + <li> + <p>Start brokers</p> + + <p><code class="highlighter-rouge">cd /home/rocketmq/dist/bin</code></p> + + <p><code class="highlighter-rouge">bash mqbroker -c ../conf/2m-2s-sync/broker-a.properties -n 192.168.0.2:9876,192.168.0.3:9876</code></p> + + <p><code class="highlighter-rouge">bash mqbroker -c ../conf/2m-2s-sync/broker-a-s.properties -n 192.168.0.2:9876,192.168.0.3:9876</code></p> + + <p><code class="highlighter-rouge">bash mqbroker -c ../conf/2m-2s-sync/broker-b.properties -n 192.168.0.2:9876,192.168.0.3:9876</code></p> + + <p><code class="highlighter-rouge">bash mqbroker -c ../conf/2m-2s-sync/broker-b-s.properties -n 192.168.0.2:9876,192.168.0.3:9876</code></p> + </li> + <li> + <p>Verify</p> + + <p>Execute the following command to verify</p> + + <p><code class="highlighter-rouge">bash mqadmin clusterList</code></p> + </li> +</ol> + + + </section> + + <footer class="page__meta"> + + + + + + <p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> Updated:</strong> <time datetime="2016-12-17">December 17, 2016</time></p> + + </footer> + + <section class="page__share"> + + <h4 class="page__share-title">Share on</h4> + + + <a href="https://twitter.com/intent/tweet?via=ApacheRocketMQ&text=Cluster Configuration and Deployment /docs/cluster-deployment/" class="btn btn--twitter" title="Share on Twitter"><i class="fa fa-fw fa-twitter" aria-hidden="true"></i><span> Twitter</span></a> + + <a href="https://www.facebook.com/sharer/sharer.php?u=/docs/cluster-deployment/" class="btn btn--facebook" title="Share on Facebook"><i class="fa fa-fw fa-facebook" aria-hidden="true"></i><span> Facebook</span></a> + + <a href="https://plus.google.com/share?url=/docs/cluster-deployment/" class="btn btn--google-plus" title="Share on Google Plus"><i class="fa fa-fw fa-google-plus" aria-hidden="true"></i><span> Google+</span></a> + + <a href="https://www.linkedin.com/shareArticle?mini=true&url=/docs/cluster-deployment/" class="btn btn--linkedin" title="Share on LinkedIn"><i class="fa fa-fw fa-linkedin" aria-hidden="true"></i><span> LinkedIn</span></a> +</section> + + + + <nav class="pagination"> + + <a href="/docs/cli-admin-tool/" class="pagination--pager" title="CLI Admin Tool +">Previous</a> + + + <a href="/docs/pull-request/" class="pagination--pager" title="Best Practice in Pull Request +">Next</a> + + </nav> + + </div> + + + <div class="page__comments"> + + + <h4 class="page__comments-title">Leave a Comment</h4> + <section id="disqus_thread"></section> + +</div> + + </article> + + + +</div> + + <div class="page__footer"> + <footer> + <!-- start custom footer snippets --> + +<!-- end custom footer snippets --> + <style type="text/css"> + div.columns { float: left; margin-left: 10px;} + div.clear { clear: both; } +</style> +<div> + <div class="columns"> + <a href="https://www.apache.org/"><img src="/assets/images/feather-small.gif" alt="Apache Software Foundation" style="height: 88px !important" /></a> + </div> + <div class="columns" style="width: 80%"> + <div class="page__footer-follow"> + <ul class="social-icons"> + + <li><strong>Follow:</strong></li> + + + <li><a href="https://twitter.com/ApacheRocketMQ"><i class="fa fa-fw fa-twitter-square" aria-hidden="true"></i> Twitter</a></li> + + + + <li><a href="http://github.com/apache/incubator-rocketmq"><i class="fa fa-fw fa-github" aria-hidden="true"></i> GitHub</a></li> + + + <li><a href="/feed.xml"><i class="fa fa-fw fa-rss-square" aria-hidden="true"></i> Feed</a></li> + </ul> + </div> + + <div class="page__footer-copyright">Copyright © 2017 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All Rights Reserved.</div> + </div> +</div> +<div class="clear"></div> + </footer> + </div> + + <script src="/assets/js/main.min.js"></script> + + + + + <script> + (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ + (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), + m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) + })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); + + ga('create', 'UA-89603173-1', 'auto'); + ga('send', 'pageview'); +</script> + +<script> +var _hmt = _hmt || []; +(function() { + var hm = document.createElement("script"); + hm.src = "https://hm.baidu.com/hm.js?36428f2b841d08e7405724cbf7f860d2"; + var s = document.getElementsByTagName("script")[0]; + s.parentNode.insertBefore(hm, s); +})(); +</script> + + + + + + <script type="text/javascript"> + /* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */ + var disqus_shortname = 'rocketmq'; + + /* * * DON'T EDIT BELOW THIS LINE * * */ + (function() { + var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true; + dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js'; + (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq); + })(); + + /* * * DON'T EDIT BELOW THIS LINE * * */ + (function () { + var s = document.createElement('script'); s.async = true; + s.type = 'text/javascript'; + s.src = '//' + disqus_shortname + '.disqus.com/count.js'; + (document.getElementsByTagName('HEAD')[0] || document.getElementsByTagName('BODY')[0]).appendChild(s); + }()); + </script> + <noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript> + + + + + + + </body> +</html> http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/ac7796b8/content/docs/code-guidelines/index.html ---------------------------------------------------------------------- diff --cc content/docs/code-guidelines/index.html index 3e94bf2,0000000..c4b5da5 mode 100644,000000..100644 --- a/content/docs/code-guidelines/index.html +++ b/content/docs/code-guidelines/index.html @@@ -1,566 -1,0 +1,626 @@@ +<!doctype html> +<html lang="en" class="no-js"> + <head> + <meta charset="utf-8"> + +<!-- begin SEO --> + + + + + + + + + +<title>Coding Guidelines - Apache RocketMQ</title> + + + + +<meta name="description" content="Apache RocketMQ Coding Guidelines"> + + + + +<meta property="og:locale" content="en"> +<meta property="og:site_name" content="Apache RocketMQ"> +<meta property="og:title" content="Coding Guidelines"> + + + + + <meta property="og:description" content="Apache RocketMQ Coding Guidelines"> + + + + <meta name="twitter:site" content="@ApacheRocketMQ"> + <meta name="twitter:title" content="Coding Guidelines"> + <meta name="twitter:description" content="Apache RocketMQ Coding Guidelines"> + <meta name="twitter:url" content=""> + + + <meta name="twitter:card" content="summary"> + + + + + + + + + + + + + + + + <meta property="og:type" content="article"> - <meta property="article:published_time" content="2017-04-07T09:16:21+08:00"> ++ <meta property="article:published_time" content="2017-04-25T01:02:11+08:00"> + + + + + + + + + <script type="application/ld+json"> + { + "@context" : "http://schema.org", + "@type" : "Person", + "name" : "Apache RocketMQ", + "url" : null, + "sameAs" : null + } + </script> + + + + <meta name="google-site-verification" content="aand0XZkSGsziuC-UPD4ZJniFD0m0JhGx6820y2mAQY" /> + + + <meta name="baidu-site-verification" content="wD06EbDRkQ" /> + + + + +<!-- end SEO --> + + +<link href="/feed.xml" type="application/atom+xml" rel="alternate" title="Apache RocketMQ Feed"> + +<!-- http://t.co/dKP3o1e --> +<meta name="HandheldFriendly" content="True"> +<meta name="MobileOptimized" content="320"> +<meta name="viewport" content="width=device-width, initial-scale=1.0"> + +<script> + document.documentElement.className = document.documentElement.className.replace(/\bno-js\b/g, '') + ' js '; +</script> + +<!-- For all browsers --> +<link rel="stylesheet" href="/assets/css/main.css"> + +<meta http-equiv="cleartype" content="on"> + <!-- start custom head snippets --> + +<!-- insert favicons. use http://realfavicongenerator.net/ --> + +<!-- end custom head snippets --> + </head> + + <body class="layout--single"> + + <!--[if lt IE 9]> +<div class="notice--danger align-center" style="margin: 0;">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</div> +<![endif]--> + <div class="masthead"> + <div class="masthead__inner-wrap"> + <div class="masthead__menu"> + <nav id="site-nav" class="greedy-nav"> + <button><div class="navicon"></div></button> + <ul class="visible-links"> + <li class="masthead__menu-item masthead__menu-item--lg"><a href="/">Apache RocketMQ</a></li> + + + <li class="masthead__menu-item"><a href="/docs/quick-start/">Documentation</a></li> + + + <li class="masthead__menu-item"><a href="/year-archive/">Blog</a></li> + + + <li class="masthead__menu-item"><a href="/community/">Community</a></li> + + + <li class="masthead__menu-item"><a href="/customer/">Customer</a></li> + + + <li class="masthead__menu-item"><a href="/about/team/">About</a></li> + + </ul> + <ul class="hidden-links hidden"></ul> + </nav> + </div> + </div> +</div> + + + + + +<div id="main" role="main"> + + <div class="sidebar sticky"> + + + + + + + + + + +<nav class="nav__list"> + + <input id="ac-toc" name="accordion-toc" type="checkbox" /> + <label for="ac-toc">Toggle Menu</label> + <ul class="nav__items"> + + <li> + + <span class="nav__sub-title">User Guide</span> + + + + <ul> + + + + + + + + <li><a href="/docs/quick-start/" class="">Quick Start</a></li> + + + + + + + - <li><a href="/docs/motivation/" class="">Motivation</a></li> ++ <li><a href="/docs/motivation/" class="">Why RocketMQ</a></li> + + + + + + + - <li><a href="/docs/core-concept/" class="">Core Concept</a></li> ++ <li><a href="/docs/simple-example/" class="">Simple Example</a></li> + + + + + + + - <li><a href="/docs/cli-admin-tool/" class="">CLI Admin Tool</a></li> ++ <li><a href="/docs/order-example/" class="">Order Example</a></li> + + + + + + + - <li><a href="/docs/cluster-deployment/" class="">Cluster Configuration & Deployment</a></li> ++ <li><a href="/docs/broadcast-example/" class="">Broadcasting Example</a></li> ++ ++ ++ ++ ++ ++ ++ ++ <li><a href="/docs/schedule-example/" class="">Schedule Example</a></li> ++ ++ ++ ++ ++ ++ ++ ++ <li><a href="/docs/batch-example/" class="">Batch Example</a></li> + + </ul> + + </li> + + <li> + - <span class="nav__sub-title">Developer Guide</span> ++ <span class="nav__sub-title">Deployment & Operations</span> ++ ++ ++ ++ <ul> ++ ++ ++ ++ ++ ++ ++ ++ <li><a href="/docs/rmq-arc/" class="">Architecture</a></li> ++ ++ ++ ++ ++ ++ ++ ++ <li><a href="/docs/rmq-deployment/" class="">Deployment</a></li> ++ ++ ++ ++ ++ ++ ++ ++ <li><a href="/docs/cli-admin-tool/" class="">CLI Admin Tool</a></li> ++ ++ </ul> ++ ++ </li> ++ ++ <li> ++ ++ <span class="nav__sub-title">Contributor Guide</span> + + + + <ul> + + + + + + + + <li><a href="/docs/code-guidelines/" class="active">Code Guidelines</a></li> + + + + + + + - <li><a href="/docs/pull-request/" class="">Best Practice in PR</a></li> ++ <li><a href="/docs/pull-request/" class="">Pull Request</a></li> + + + + + + + + <li><a href="/docs/release-manual" class="">Release Manual</a></li> + + </ul> + + </li> + + <li> + + <span class="nav__sub-title">Best Practice</span> + + + + <ul> + + + + + + + ++ <li><a href="/docs/core-concept/" class="">Core Concept</a></li> ++ ++ ++ ++ ++ ++ ++ + <li><a href="/docs/best-practice-broker/" class="">Broker</a></li> + + + + + + + + <li><a href="/docs/best-practice-producer/" class="">Producer</a></li> + + + + + + + + <li><a href="/docs/best-practice-consumer/" class="">Consumer</a></li> + + + + + + + + <li><a href="/docs/best-practice-namesvr/" class="">NameServer</a></li> + + </ul> + + </li> + + <li> + + <span class="nav__sub-title">Release Notes</span> + + + + <ul> + + + + + + + + <li><a href="/dowloading/releases/" class="">Download</a></li> + + + + + + + + <li><a href="/release_notes/release-notes-4.0.0-incubating/" class="">4.0.0-incubating</a></li> + + </ul> + + </li> + + <li> + + + + + <a href="/docs/roadmap/"><span class="nav__sub-title">RoadMap</span></a> + + + + </li> + + <li> + + + + + <a href="/docs/faq/"><span class="nav__sub-title">FAQ</span></a> + + + + </li> + + </ul> +</nav> + + + </div> + + + <article class="page" itemscope itemtype="http://schema.org/CreativeWork"> + <meta itemprop="headline" content="Coding Guidelines"> + <meta itemprop="description" content="Apache RocketMQ Coding Guidelines"> - <meta itemprop="datePublished" content="April 07, 2017"> ++ <meta itemprop="datePublished" content="April 25, 2017"> + <meta itemprop="dateModified" content="December 30, 2016"> + + <div class="page__inner-wrap"> + + <header> + <h1 class="page__title" itemprop="headline">Coding Guidelines +</h1> + + </header> + + + <section class="page__content" itemprop="text"> + <aside class="sidebar__right"> +<nav class="toc"> + <header><h4 class="nav__title"><i class="fa fa-file-text"></i> On This Page</h4></header> +<ul class="toc__menu" id="markdown-toc"> + <li><a href="#introduction" id="markdown-toc-introduction">Introduction</a></li> + <li><a href="#code-template-for-idea" id="markdown-toc-code-template-for-idea">Code template for idea</a> <ul> + <li><a href="#import-code-style" id="markdown-toc-import-code-style">Import code style</a></li> + <li><a href="#import-copyright" id="markdown-toc-import-copyright">Import copyright</a></li> + <li><a href="#choose-apache-copyright" id="markdown-toc-choose-apache-copyright">Choose Apache copyright</a></li> + <li><a href="#remove-author-javadoc-tag" id="markdown-toc-remove-author-javadoc-tag">Remove author javadoc tag</a></li> + </ul> + </li> +</ul> + + </nav> +</aside> + +<h1 id="introduction">Introduction</h1> +<p>This document describes formatting rules and guidelines for software source code. Note that this document does not cover best programming practices or techniques. It is solely concentrating on source code formatting and conventions.</p> + +<p>Studies have shown that 80% of development time is spent on software maintenance which involves software source code understanding, refactoring and support. Established and enforced code formatting rules and guidelines improve source code readability, promote team code ownership, allow engineers understand new code more quickly and thorough as well as simplify maintenance.</p> + +<h1 id="code-template-for-idea">Code template for idea</h1> +<h2 id="import-code-style">Import code style</h2> +<p><img src="/assets/images/code_guidelines/codestyle-pre.png" alt="codestyle" /></p> + +<p><img src="/assets/images/code_guidelines/codestyle.png" alt="codestyle" /></p> + +<h2 id="import-copyright">Import copyright</h2> +<p><img src="/assets/images/code_guidelines/copyright.png" alt="copyright" /></p> + +<h2 id="choose-apache-copyright">Choose Apache copyright</h2> +<p><img src="/assets/images/code_guidelines/copyright-choose.png" alt="copyright-choose" /></p> + +<h2 id="remove-author-javadoc-tag">Remove author javadoc tag</h2> +<p><img src="/assets/images/code_guidelines/author-tag.png" alt="author-javadoc-tag" /></p> + + + + </section> + + <footer class="page__meta"> + + + + + + <p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> Updated:</strong> <time datetime="2016-12-30">December 30, 2016</time></p> + + </footer> + + <section class="page__share"> + + <h4 class="page__share-title">Share on</h4> + + + <a href="https://twitter.com/intent/tweet?via=ApacheRocketMQ&text=Coding Guidelines /docs/code-guidelines/" class="btn btn--twitter" title="Share on Twitter"><i class="fa fa-fw fa-twitter" aria-hidden="true"></i><span> Twitter</span></a> + + <a href="https://www.facebook.com/sharer/sharer.php?u=/docs/code-guidelines/" class="btn btn--facebook" title="Share on Facebook"><i class="fa fa-fw fa-facebook" aria-hidden="true"></i><span> Facebook</span></a> + + <a href="https://plus.google.com/share?url=/docs/code-guidelines/" class="btn btn--google-plus" title="Share on Google Plus"><i class="fa fa-fw fa-google-plus" aria-hidden="true"></i><span> Google+</span></a> + + <a href="https://www.linkedin.com/shareArticle?mini=true&url=/docs/code-guidelines/" class="btn btn--linkedin" title="Share on LinkedIn"><i class="fa fa-fw fa-linkedin" aria-hidden="true"></i><span> LinkedIn</span></a> +</section> + + + + <nav class="pagination"> + + <a href="/docs/pull-request/" class="pagination--pager" title="Best Practice in Pull Request +">Previous</a> + + + <a href="/docs/documentation/" class="pagination--pager" title="Documentation +">Next</a> + + </nav> + + </div> + + + <div class="page__comments"> + + + <h4 class="page__comments-title">Leave a Comment</h4> + <section id="disqus_thread"></section> + +</div> + + </article> + + + +</div> + + <div class="page__footer"> + <footer> + <!-- start custom footer snippets --> + +<!-- end custom footer snippets --> + <style type="text/css"> + div.columns { float: left; margin-left: 10px;} + div.clear { clear: both; } +</style> +<div> + <div class="columns"> + <a href="https://www.apache.org/"><img src="/assets/images/feather-small.gif" alt="Apache Software Foundation" style="height: 88px !important" /></a> + </div> + <div class="columns" style="width: 80%"> + <div class="page__footer-follow"> + <ul class="social-icons"> + + <li><strong>Follow:</strong></li> + + + <li><a href="https://twitter.com/ApacheRocketMQ"><i class="fa fa-fw fa-twitter-square" aria-hidden="true"></i> Twitter</a></li> + + + + <li><a href="http://github.com/apache/incubator-rocketmq"><i class="fa fa-fw fa-github" aria-hidden="true"></i> GitHub</a></li> + + + <li><a href="/feed.xml"><i class="fa fa-fw fa-rss-square" aria-hidden="true"></i> Feed</a></li> + </ul> + </div> + + <div class="page__footer-copyright">Copyright © 2017 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All Rights Reserved.</div> + </div> +</div> +<div class="clear"></div> + </footer> + </div> + + <script src="/assets/js/main.min.js"></script> + + + + + <script> + (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ + (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), + m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) + })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); + + ga('create', 'UA-89603173-1', 'auto'); + ga('send', 'pageview'); +</script> + +<script> +var _hmt = _hmt || []; +(function() { + var hm = document.createElement("script"); + hm.src = "https://hm.baidu.com/hm.js?36428f2b841d08e7405724cbf7f860d2"; + var s = document.getElementsByTagName("script")[0]; + s.parentNode.insertBefore(hm, s); +})(); +</script> + + + + + + <script type="text/javascript"> + /* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */ + var disqus_shortname = 'rocketmq'; + + /* * * DON'T EDIT BELOW THIS LINE * * */ + (function() { + var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true; + dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js'; + (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq); + })(); + + /* * * DON'T EDIT BELOW THIS LINE * * */ + (function () { + var s = document.createElement('script'); s.async = true; + s.type = 'text/javascript'; + s.src = '//' + disqus_shortname + '.disqus.com/count.js'; + (document.getElementsByTagName('HEAD')[0] || document.getElementsByTagName('BODY')[0]).appendChild(s); + }()); + </script> + <noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript> + + + + + + + </body> +</html>
