http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/2d7f6a51/content/release_notes/release-notes-4.0.0-incubating/index.html ---------------------------------------------------------------------- diff --git a/content/release_notes/release-notes-4.0.0-incubating/index.html b/content/release_notes/release-notes-4.0.0-incubating/index.html new file mode 100644 index 0000000..d3bd18f --- /dev/null +++ b/content/release_notes/release-notes-4.0.0-incubating/index.html @@ -0,0 +1,658 @@ +<!doctype html> +<html lang="en" class="no-js"> + <head> + <meta charset="utf-8"> + +<!-- begin SEO --> + + + + + + + + + +<title>Release Notes - Apache RocketMQ - Version 4.0.0-incubating - Apache RocketMQ</title> + + + + +<meta name="description" content="Below is a summary of the JIRA issues addressed in the 4.0.0-incubating release of RocketMQ. For full documentation of the release, a guide to get started, please refer to Quick Start."> + + + + +<meta property="og:locale" content="en"> +<meta property="og:site_name" content="Apache RocketMQ"> +<meta property="og:title" content="Release Notes - Apache RocketMQ - Version 4.0.0-incubating"> + + + <link rel="canonical" href="http://localhost:4000/release_notes/release-notes-4.0.0-incubating/"> + <meta property="og:url" content="http://localhost:4000/release_notes/release-notes-4.0.0-incubating/"> + + + + <meta property="og:description" content="Below is a summary of the JIRA issues addressed in the 4.0.0-incubating release of RocketMQ. For full documentation of the release, a guide to get started, please refer to Quick Start."> + + + + <meta name="twitter:site" content="@ApacheRocketMQ"> + <meta name="twitter:title" content="Release Notes - Apache RocketMQ - Version 4.0.0-incubating"> + <meta name="twitter:description" content="Below is a summary of the JIRA issues addressed in the 4.0.0-incubating release of RocketMQ. For full documentation of the release, a guide to get started, please refer to Quick Start."> + <meta name="twitter:url" content="http://localhost:4000/release_notes/release-notes-4.0.0-incubating/"> + + + <meta name="twitter:card" content="summary"> + + + + + + + + + + + + + + + + <meta property="og:type" content="article"> + <meta property="article:published_time" content="2017-01-24T00:00:00+08:00"> + + + + + + + + + <script type="application/ld+json"> + { + "@context" : "http://schema.org", + "@type" : "Person", + "name" : "Apache RocketMQ", + "url" : "http://localhost:4000", + "sameAs" : null + } + </script> + + + + <meta name="google-site-verification" content="aand0XZkSGsziuC-UPD4ZJniFD0m0JhGx6820y2mAQY" /> + + + <meta name="baidu-site-verification" content="wD06EbDRkQ" /> + + + + +<!-- end SEO --> + + +<link href="http://localhost:4000/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="http://localhost:4000/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="http://localhost:4000/">Apache RocketMQ</a></li> + + + <li class="masthead__menu-item"><a href="http://localhost:4000/docs/quick-start/">Documentation</a></li> + + + <li class="masthead__menu-item"><a href="http://localhost:4000/year-archive/">Blog</a></li> + + + <li class="masthead__menu-item"><a href="http://localhost:4000/community/">Community</a></li> + + + <li class="masthead__menu-item"><a href="http://localhost:4000/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"> + + +<div itemscope itemtype="http://schema.org/Person"> + + + <div class="author__avatar"> + + <img src="http://localhost:4000/assets/images/rmq-logo.png" class="author__avatar" alt="" itemprop="image"> + + </div> + + + <div class="author__content"> + <h3 class="author__name" itemprop="name"></h3> + + <p class="author__bio" itemprop="description"> + A fast, low latency, reliable, scalable, distributed MOM. + </p> + + </div> + + <div class="author__urls-wrapper"> + <button class="btn btn--inverse">Follow</button> + <ul class="author__urls social-icons"> + + <li itemprop="homeLocation" itemscope itemtype="http://schema.org/Place"> + <i class="fa fa-fw fa-map-marker" aria-hidden="true"></i> <span itemprop="name">Hangzhou, China</span> + </li> + + + + <li> + <a href="http://incubator.staging.apache.org/projects/rocketmq.html" itemprop="url"> + <i class="fa fa-fw fa-chain" aria-hidden="true"></i> Website + </a> + </li> + + + + <li> + <a href="mailto:[email protected]"> + <meta itemprop="email" content="[email protected]" /> + <i class="fa fa-fw fa-envelope-square" aria-hidden="true"></i> Email + </a> + </li> + + + + + + <li> + <a href="https://twitter.com/ApacheRocketMQ" itemprop="sameAs"> + <i class="fa fa-fw fa-twitter-square" aria-hidden="true"></i> Twitter + </a> + </li> + + + + + + + + + + + + + + + + + + <li> + <a href="https://github.com/apache/incubator-rocketmq" itemprop="sameAs"> + <i class="fa fa-fw fa-github" aria-hidden="true"></i> GitHub + </a> + </li> + + + + <li> + <a href="https://www.stackoverflow.com/questions/tagged/rocketmq" itemprop="sameAs"> + <i class="fa fa-fw fa-stack-overflow" aria-hidden="true"></i> Stackoverflow + </a> + </li> + + + + <li> + <a href="https://www.quora.com/topic/RocketMQ" itemprop="sameAs"> + <i class="fa fa-fw" aria-hidden="true"><strong>Q</strong></i> Quora + </a> + </li> + + + + + + + + + + + + + + + + + + + + + + + + + <!-- + <li> + <a href="http://link-to-whatever-social-network.com/user/" itemprop="sameAs"> + <i class="fa fa-fw" aria-hidden="true"></i> Custom Social Profile Link + </a> + </li> +--> + </ul> + </div> +</div> + + + </div> + + + <article class="page" itemscope itemtype="http://schema.org/CreativeWork"> + <meta itemprop="headline" content="Release Notes - Apache RocketMQ - Version 4.0.0-incubating"> + <meta itemprop="description" content="Below is a summary of the JIRA issues addressed in the 4.0.0-incubating release of RocketMQ. For full documentation of the release, a guide to get started, please refer to Quick Start."> + <meta itemprop="datePublished" content="January 24, 2017"> + + + <div class="page__inner-wrap"> + + <header> + <h1 class="page__title" itemprop="headline">Release Notes - Apache RocketMQ - Version 4.0.0-incubating +</h1> + + <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> + + + + + 2 minute read +</p> + + </header> + + + <section class="page__content" itemprop="text"> + <p>Below is a summary of the JIRA issues addressed in the 4.0.0-incubating release of RocketMQ. For full documentation of the release, a guide to get started, please refer to <a href="/docs/quick-start/">Quick Start</a>.</p> + +<h2> Download the 4.0.0-incubating release +</h2> + +<ul> + <li>Source: <a href="https://www.apache.org/dyn/closer.cgi?path=incubator/rocketmq/4.0.0-incubating/rocketmq-all-4.0.0-incubating-source-release.zip">rocketmq-all-4.0.0-incubating-source-release.zip</a> [<a href="https://www.apache.org/dist/incubator/rocketmq/4.0.0-incubating/rocketmq-all-4.0.0-incubating-source-release.zip.asc">PGP</a>] [<a href="https://www.apache.org/dist/incubator/rocketmq/4.0.0-incubating/rocketmq-all-4.0.0-incubating-source-release.zip.md5">MD5</a>] [<a href="https://www.apache.org/dist/incubator/rocketmq/4.0.0-incubating/rocketmq-all-4.0.0-incubating-source-release.zip.sha1">SHA1</a>]</li> + <li>Binary: <a href="https://www.apache.org/dyn/closer.cgi?path=incubator/rocketmq/4.0.0-incubating/rocketmq-all-4.0.0-incubating-bin-release.zip">rocketmq-all-4.0.0-incubating-bin-release.zip</a> [<a href="https://www.apache.org/dist/incubator/rocketmq/4.0.0-incubating/rocketmq-all-4.0.0-incubating-bin-release.zip.asc">PGP</a>] [<a href="https://www.apache.org/dist/incubator/rocketmq/4.0.0-incubating/rocketmq-all-4.0.0-incubating-bin-release.zip.md5">MD5</a>] [<a href="https://www.apache.org/dist/incubator/rocketmq/4.0.0-incubating/rocketmq-all-4.0.0-incubating-bin-release.zip.sha1">SHA1</a>]</li> +</ul> + +<h2> Bug +</h2> +<ul> + <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-2">ROCKETMQ-2</a>] - Broker tests fail with "Address + already in use" + </li> + <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-5">ROCKETMQ-5</a>] - Avoid creating directories in + UtilAll#getDiskPartitionSpaceUsedPercent() + </li> + <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-19">ROCKETMQ-19</a>] - Thread-unsafe in + MQAdminImpl#queryMessage + </li> + <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-22">ROCKETMQ-22</a>] - new funciton 'printWaterMark' + in version 3.5.8(4.0.0) will cause a ClassCastException + </li> + <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-25">ROCKETMQ-25</a>] - Query Msg by key: Possible + concurrent access to LinkedList + </li> + <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-30">ROCKETMQ-30</a>] - Message Filter example has + incorrect method signature + </li> + <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-31">ROCKETMQ-31</a>] - Deletion needed for + `$HOME/rmq_bk_gc.log` in `bin/mqbroker` + </li> + <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-33">ROCKETMQ-33</a>] - CPU Occupy 100% + </li> + <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-34">ROCKETMQ-34</a>] - Potential NPE in + NettyConnetManageHandler#connect + </li> + <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-35">ROCKETMQ-35</a>] - Consumer client canât persist + consume offset table to Broker + </li> + <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-45">ROCKETMQ-45</a>] - Delete consume queue hang file + </li> + <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-47">ROCKETMQ-47</a>] - Broker updates NameServer + address list on startup twice + </li> + <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-59">ROCKETMQ-59</a>] - Charset misusage in + RocketMQSerializable + </li> + <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-64">ROCKETMQ-64</a>] - Remove duplication code line in + BrokerOuterAPI.registerBroker method + </li> + <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-70">ROCKETMQ-70</a>] - Duplicate methods in + NettyRemotingClient + </li> + <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-74">ROCKETMQ-74</a>] - DataVersion equals not working + as expected. + </li> + <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-83">ROCKETMQ-83</a>] - Fail in quickstart-sample + </li> +</ul> + +<h2> Improvement +</h2> +<ul> + <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-8">ROCKETMQ-8</a>] - Standardize build script using + maven wrapper + </li> + <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-11">ROCKETMQ-11</a>] - Improve concision - Reuse local + variable 'brokerAddrs' in RouteInfoManager.getSystemTopicList method + </li> + <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-14">ROCKETMQ-14</a>] - Remoting invoke callback shoule + be invoked in an executor rather than in current thread. + </li> + <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-16">ROCKETMQ-16</a>] - Improve the codes of setting + topic.json's and subscriptionGroup.json's path + </li> + <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-18">ROCKETMQ-18</a>] - Repackage com.alibaba to + org.apache and change maven coordinate + </li> + <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-20">ROCKETMQ-20</a>] - Default 'consumeFromWhere' + is inconsist with example's + </li> + <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-29">ROCKETMQ-29</a>] - + org.apache.rocketmq.common.help.FAQUrl refers to docs in Chinese + </li> + <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-32">ROCKETMQ-32</a>] - Improve concision - Reuse local + variable 'brokerAddrs' in RouteInfoManager.getSystemTopicList method + </li> + <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-37">ROCKETMQ-37</a>] - Log output information is not + accurate + </li> + <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-43">ROCKETMQ-43</a>] - code style file didn't match + check-style in typecast + </li> + <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-50">ROCKETMQ-50</a>] - Polish unit tests for RocketMQ + </li> + <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-60">ROCKETMQ-60</a>] - Checklist review for + 4.0.0-incubating release + </li> + <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-69">ROCKETMQ-69</a>] - Add link to RocketMQ web page + into README.md + </li> + <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-85">ROCKETMQ-85</a>] - Polish README file and remove + all the 3rd party links in it. + </li> + <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-87">ROCKETMQ-87</a>] - Polish the LICENSE and NOTICE + files to match all the dependencies + </li> + <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-1">ROCKETMQ-1</a>] - Update build and clean up ip for + 4.0.0-incubating + </li> + <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-38">ROCKETMQ-38</a>] - Polish unit tests for + rocketmq-remoting + </li> + <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-51">ROCKETMQ-51</a>] - Polish unit tests for + rocketmq-broker + </li> + <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-52">ROCKETMQ-52</a>] - Polish unit tests for + rocketmq-client + </li> + <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-53">ROCKETMQ-53</a>] - Polish unit tests for + rocketmq-commons + </li> + <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-54">ROCKETMQ-54</a>] - Polish unit tests for + rocketmq-namesrv + </li> + <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-56">ROCKETMQ-56</a>] - Polish unit tests for + rocketmq-store + </li> + <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-57">ROCKETMQ-57</a>] - Polish unit tests for + rocketmq-tools + </li> + <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-58">ROCKETMQ-58</a>] - Add integration test for + RocketMQ + </li> + <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-62">ROCKETMQ-62</a>] - Polish Maven assembly release + </li> + <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-3">ROCKETMQ-3</a>] - Clean up the unit test of rocketmq + </li> + <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-13">ROCKETMQ-13</a>] - Wrong log level for + AcceptSocketService termination + </li> + <li>[<a href="https://issues.apache.org/jira/browse/ROCKETMQ-9">ROCKETMQ-9</a>] - Errors in rocketmq-store module + </li> +</ul> + + + + </section> + + <footer class="page__meta"> + + + + + + + + + + <p class="page__taxonomy"> + <strong><i class="fa fa-fw fa-tags" aria-hidden="true"></i> Tags: </strong> + <span itemprop="keywords"> + + + + <a href="http://localhost:4000/tags/#release-notes" class="page__taxonomy-item" rel="tag">Release_Notes</a><span class="sep">, </span> + + + + <a href="http://localhost:4000/tags/#rocketmq" class="page__taxonomy-item" rel="tag">RocketMQ</a><span class="sep">, </span> + + + + <a href="http://localhost:4000/tags/#version" class="page__taxonomy-item" rel="tag">Version</a> + + </span> + </p> + + + + + + + + + + + + <p class="page__taxonomy"> + <strong><i class="fa fa-fw fa-folder-open" aria-hidden="true"></i> Categories: </strong> + <span itemprop="keywords"> + + + + <a href="http://localhost:4000/categories/#release-notes" class="page__taxonomy-item" rel="tag">Release_Notes</a> + + </span> + </p> + + + + <p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> Updated:</strong> <time datetime="2017-01-24T00:00:00+08:00">January 24, 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=Release Notes - Apache RocketMQ - Version 4.0.0-incubating http://localhost:4000/release_notes/release-notes-4.0.0-incubating/" 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=http://localhost:4000/release_notes/release-notes-4.0.0-incubating/" 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=http://localhost:4000/release_notes/release-notes-4.0.0-incubating/" 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=http://localhost:4000/release_notes/release-notes-4.0.0-incubating/" 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="http://localhost:4000/activity/launch-rocketmq-code-marathon/" class="pagination--pager" title="Launch RocketMQ Code Marathon +">Previous</a> + + + <a href="http://localhost:4000/rocketmq/four-methods-to-feed-name-server-address-list/" class="pagination--pager" title="Four Methods to Feed Name Server Address List +">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="http://localhost:4000/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="http://localhost:4000/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/2d7f6a51/content/rocketmq/four-methods-to-feed-name-server-address-list/index.html ---------------------------------------------------------------------- diff --git a/content/rocketmq/four-methods-to-feed-name-server-address-list/index.html b/content/rocketmq/four-methods-to-feed-name-server-address-list/index.html new file mode 100644 index 0000000..1fcdf33 --- /dev/null +++ b/content/rocketmq/four-methods-to-feed-name-server-address-list/index.html @@ -0,0 +1,583 @@ +<!doctype html> +<html lang="en" class="no-js"> + <head> + <meta charset="utf-8"> + +<!-- begin SEO --> + + + + + + + + + +<title>Four Methods to Feed Name Server Address List - Apache RocketMQ</title> + + + + +<meta name="description" content="In Apache RocketMQ, name servers are designed to coordinate each component of the distributed systemand fulfill much of this responsibility through managing topic route information."> + + + + +<meta property="og:locale" content="en"> +<meta property="og:site_name" content="Apache RocketMQ"> +<meta property="og:title" content="Four Methods to Feed Name Server Address List"> + + + <link rel="canonical" href="http://localhost:4000/rocketmq/four-methods-to-feed-name-server-address-list/"> + <meta property="og:url" content="http://localhost:4000/rocketmq/four-methods-to-feed-name-server-address-list/"> + + + + <meta property="og:description" content="In Apache RocketMQ, name servers are designed to coordinate each component of the distributed systemand fulfill much of this responsibility through managing topic route information."> + + + + <meta name="twitter:site" content="@ApacheRocketMQ"> + <meta name="twitter:title" content="Four Methods to Feed Name Server Address List"> + <meta name="twitter:description" content="In Apache RocketMQ, name servers are designed to coordinate each component of the distributed systemand fulfill much of this responsibility through managing topic route information."> + <meta name="twitter:url" content="http://localhost:4000/rocketmq/four-methods-to-feed-name-server-address-list/"> + + + <meta name="twitter:card" content="summary"> + + + + + + + + + + + + + + + + <meta property="og:type" content="article"> + <meta property="article:published_time" content="2017-02-10T00:00:00+08:00"> + + + + + + + + + <script type="application/ld+json"> + { + "@context" : "http://schema.org", + "@type" : "Person", + "name" : "Apache RocketMQ", + "url" : "http://localhost:4000", + "sameAs" : null + } + </script> + + + + <meta name="google-site-verification" content="aand0XZkSGsziuC-UPD4ZJniFD0m0JhGx6820y2mAQY" /> + + + <meta name="baidu-site-verification" content="wD06EbDRkQ" /> + + + + +<!-- end SEO --> + + +<link href="http://localhost:4000/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="http://localhost:4000/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="http://localhost:4000/">Apache RocketMQ</a></li> + + + <li class="masthead__menu-item"><a href="http://localhost:4000/docs/quick-start/">Documentation</a></li> + + + <li class="masthead__menu-item"><a href="http://localhost:4000/year-archive/">Blog</a></li> + + + <li class="masthead__menu-item"><a href="http://localhost:4000/community/">Community</a></li> + + + <li class="masthead__menu-item"><a href="http://localhost:4000/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"> + + +<div itemscope itemtype="http://schema.org/Person"> + + + <div class="author__avatar"> + + <img src="http://localhost:4000/assets/images/rmq-logo.png" class="author__avatar" alt="" itemprop="image"> + + </div> + + + <div class="author__content"> + <h3 class="author__name" itemprop="name"></h3> + + <p class="author__bio" itemprop="description"> + A fast, low latency, reliable, scalable, distributed MOM. + </p> + + </div> + + <div class="author__urls-wrapper"> + <button class="btn btn--inverse">Follow</button> + <ul class="author__urls social-icons"> + + <li itemprop="homeLocation" itemscope itemtype="http://schema.org/Place"> + <i class="fa fa-fw fa-map-marker" aria-hidden="true"></i> <span itemprop="name">Hangzhou, China</span> + </li> + + + + <li> + <a href="http://incubator.staging.apache.org/projects/rocketmq.html" itemprop="url"> + <i class="fa fa-fw fa-chain" aria-hidden="true"></i> Website + </a> + </li> + + + + <li> + <a href="mailto:[email protected]"> + <meta itemprop="email" content="[email protected]" /> + <i class="fa fa-fw fa-envelope-square" aria-hidden="true"></i> Email + </a> + </li> + + + + + + <li> + <a href="https://twitter.com/ApacheRocketMQ" itemprop="sameAs"> + <i class="fa fa-fw fa-twitter-square" aria-hidden="true"></i> Twitter + </a> + </li> + + + + + + + + + + + + + + + + + + <li> + <a href="https://github.com/apache/incubator-rocketmq" itemprop="sameAs"> + <i class="fa fa-fw fa-github" aria-hidden="true"></i> GitHub + </a> + </li> + + + + <li> + <a href="https://www.stackoverflow.com/questions/tagged/rocketmq" itemprop="sameAs"> + <i class="fa fa-fw fa-stack-overflow" aria-hidden="true"></i> Stackoverflow + </a> + </li> + + + + <li> + <a href="https://www.quora.com/topic/RocketMQ" itemprop="sameAs"> + <i class="fa fa-fw" aria-hidden="true"><strong>Q</strong></i> Quora + </a> + </li> + + + + + + + + + + + + + + + + + + + + + + + + + <!-- + <li> + <a href="http://link-to-whatever-social-network.com/user/" itemprop="sameAs"> + <i class="fa fa-fw" aria-hidden="true"></i> Custom Social Profile Link + </a> + </li> +--> + </ul> + </div> +</div> + + + </div> + + + <article class="page" itemscope itemtype="http://schema.org/CreativeWork"> + <meta itemprop="headline" content="Four Methods to Feed Name Server Address List"> + <meta itemprop="description" content="In Apache RocketMQ, name servers are designed to coordinate each component of the distributed systemand fulfill much of this responsibility through managing topic route information."> + <meta itemprop="datePublished" content="February 10, 2017"> + + + <div class="page__inner-wrap"> + + <header> + <h1 class="page__title" itemprop="headline">Four Methods to Feed Name Server Address List +</h1> + + <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> + + + + + 1 minute read +</p> + + </header> + + + <section class="page__content" itemprop="text"> + <p>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.</p> + +<p>The management, roughly speaking, consists two parts:</p> +<ul> + <li>Brokers periodically renew meta data, including topics they have, which are kept in every name servers.</li> + <li>Name servers are serving clients, including producers, consumers and command line clients with the latest routing information.</li> +</ul> + +<p>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.</p> + +<ol> + <li> + <p>Programmatic Way</p> + + <p>For broker, we may specify <code class="highlighter-rouge">namesrvAddr=name-server-ip1:port;name-server-ip2:port</code> in broker configuration file.</p> + + <p>For producers and consumers, we may feed name server address list to them as follows:</p> + + <p><code class="highlighter-rouge"> +DefaultMQProducer producer = new DefaultMQProducer("please_rename_unique_group_name"); +producer.setNamesrvAddr("name-server1-ip:port;name-server2-ip:port");</code></p> + + <p><code class="highlighter-rouge"> +DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("please_rename_unique_group_name"); +consumer.setNamesrvAddr("name-server1-ip:port;name-server2-ip:port");</code></p> + + <p>If you use admin command line from shell, you may specify this way: +<code class="highlighter-rouge">sh mqadmin command-name -n name-server-ip1:port;name-server-ip2:port -X OTHER-OPTION</code></p> + + <p>a simple example is: +<code class="highlighter-rouge">sh mqadmin -n localhost:9876 clusterList</code> +assuming to query cluster info on the name server node.</p> + + <p>If integrating admin tool into your own dashboard, you may +<code class="highlighter-rouge">DefaultMQAdminExt defaultMQAdminExt = new DefaultMQAdminExt("please_rename_unique_group_name"); + defaultMQAdminExt.setNamesrvAddr("name-server1-ip:port;name-server2-ip:port");</code></p> + </li> + <li> + <p>Java Options</p> + + <p>Name server address list may also be fed to your application through specifying the sequel java option + <code class="highlighter-rouge">rocketmq.namesrv.addr</code> before launching.</p> + </li> + <li> + <p>Environment Variable</p> + + <p>You can export <code class="highlighter-rouge">NAMESRV_ADDR</code> environment variable. Brokers and clients will examine and use its value if set.</p> + </li> + <li> + <p>HTTP Endpoint</p> + + <p>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.</p> + + <p>On default, the end point is:</p> + + <p><code class="highlighter-rouge">http://jmenv.tbsite.net:8080/rocketmq/nsaddr</code></p> + + <p>You may override <code class="highlighter-rouge">jmenv.tbsite.net</code> by this java option: <code class="highlighter-rouge">rocketmq.namesrv.domain</code>, + You may also override <code class="highlighter-rouge">nsaddr</code> part by this java option: <code class="highlighter-rouge">rocketmq.namesrv.domain.subgroup</code></p> + + <p>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.</p> + </li> +</ol> + +<ul> + <li> + <p>Priority</p> + + <p>Methods introduced first take precedence over the latter, namely, <br /> + <code class="highlighter-rouge">Programmatic Way > Java Options > Environment Variable > HTTP Endpoint</code></p> + </li> +</ul> + + + </section> + + <footer class="page__meta"> + + + + + + + + + + <p class="page__taxonomy"> + <strong><i class="fa fa-fw fa-tags" aria-hidden="true"></i> Tags: </strong> + <span itemprop="keywords"> + + + + <a href="http://localhost:4000/tags/#name-server" class="page__taxonomy-item" rel="tag">Name Server</a><span class="sep">, </span> + + + + <a href="http://localhost:4000/tags/#rocketmq" class="page__taxonomy-item" rel="tag">RocketMQ</a> + + </span> + </p> + + + + + + + + + + + + <p class="page__taxonomy"> + <strong><i class="fa fa-fw fa-folder-open" aria-hidden="true"></i> Categories: </strong> + <span itemprop="keywords"> + + + + <a href="http://localhost:4000/categories/#rocketmq" class="page__taxonomy-item" rel="tag">RocketMQ</a> + + </span> + </p> + + + + <p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> Updated:</strong> <time datetime="2017-02-10T00:00:00+08:00">February 10, 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=Four Methods to Feed Name Server Address List http://localhost:4000/rocketmq/four-methods-to-feed-name-server-address-list/" 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=http://localhost:4000/rocketmq/four-methods-to-feed-name-server-address-list/" 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=http://localhost:4000/rocketmq/four-methods-to-feed-name-server-address-list/" 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=http://localhost:4000/rocketmq/four-methods-to-feed-name-server-address-list/" 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="http://localhost:4000/release_notes/release-notes-4.0.0-incubating/" class="pagination--pager" title="Release Notes - Apache RocketMQ - Version 4.0.0-incubating +">Previous</a> + + + <a href="#" class="pagination--pager disabled">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="http://localhost:4000/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="http://localhost:4000/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/2d7f6a51/content/rocketmq/how-to-support-more-queues-in-rocketmq/index.html ---------------------------------------------------------------------- diff --git a/content/rocketmq/how-to-support-more-queues-in-rocketmq/index.html b/content/rocketmq/how-to-support-more-queues-in-rocketmq/index.html new file mode 100644 index 0000000..401d52f --- /dev/null +++ b/content/rocketmq/how-to-support-more-queues-in-rocketmq/index.html @@ -0,0 +1,588 @@ +<!doctype html> +<html lang="en" class="no-js"> + <head> + <meta charset="utf-8"> + +<!-- begin SEO --> + + + + + + + + + +<title>How to Support More Queues in RocketMQ? - Apache RocketMQ</title> + + + + +<meta name="description" content="Summary"> + + + + +<meta property="og:locale" content="en"> +<meta property="og:site_name" content="Apache RocketMQ"> +<meta property="og:title" content="How to Support More Queues in RocketMQ?"> + + + <link rel="canonical" href="http://localhost:4000/rocketmq/how-to-support-more-queues-in-rocketmq/"> + <meta property="og:url" content="http://localhost:4000/rocketmq/how-to-support-more-queues-in-rocketmq/"> + + + + <meta property="og:description" content="Summary"> + + + + <meta name="twitter:site" content="@ApacheRocketMQ"> + <meta name="twitter:title" content="How to Support More Queues in RocketMQ?"> + <meta name="twitter:description" content="Summary"> + <meta name="twitter:url" content="http://localhost:4000/rocketmq/how-to-support-more-queues-in-rocketmq/"> + + + <meta name="twitter:card" content="summary"> + + + + + + + + + + + + + + + + <meta property="og:type" content="article"> + <meta property="article:published_time" content="2016-12-23T00:00:00+08:00"> + + + + + + + + + <script type="application/ld+json"> + { + "@context" : "http://schema.org", + "@type" : "Person", + "name" : "Apache RocketMQ", + "url" : "http://localhost:4000", + "sameAs" : null + } + </script> + + + + <meta name="google-site-verification" content="aand0XZkSGsziuC-UPD4ZJniFD0m0JhGx6820y2mAQY" /> + + + <meta name="baidu-site-verification" content="wD06EbDRkQ" /> + + + + +<!-- end SEO --> + + +<link href="http://localhost:4000/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="http://localhost:4000/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="http://localhost:4000/">Apache RocketMQ</a></li> + + + <li class="masthead__menu-item"><a href="http://localhost:4000/docs/quick-start/">Documentation</a></li> + + + <li class="masthead__menu-item"><a href="http://localhost:4000/year-archive/">Blog</a></li> + + + <li class="masthead__menu-item"><a href="http://localhost:4000/community/">Community</a></li> + + + <li class="masthead__menu-item"><a href="http://localhost:4000/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"> + + +<div itemscope itemtype="http://schema.org/Person"> + + + <div class="author__avatar"> + + <img src="http://localhost:4000/assets/images/rmq-logo.png" class="author__avatar" alt="" itemprop="image"> + + </div> + + + <div class="author__content"> + <h3 class="author__name" itemprop="name"></h3> + + <p class="author__bio" itemprop="description"> + A fast, low latency, reliable, scalable, distributed MOM. + </p> + + </div> + + <div class="author__urls-wrapper"> + <button class="btn btn--inverse">Follow</button> + <ul class="author__urls social-icons"> + + <li itemprop="homeLocation" itemscope itemtype="http://schema.org/Place"> + <i class="fa fa-fw fa-map-marker" aria-hidden="true"></i> <span itemprop="name">Hangzhou, China</span> + </li> + + + + <li> + <a href="http://incubator.staging.apache.org/projects/rocketmq.html" itemprop="url"> + <i class="fa fa-fw fa-chain" aria-hidden="true"></i> Website + </a> + </li> + + + + <li> + <a href="mailto:[email protected]"> + <meta itemprop="email" content="[email protected]" /> + <i class="fa fa-fw fa-envelope-square" aria-hidden="true"></i> Email + </a> + </li> + + + + + + <li> + <a href="https://twitter.com/ApacheRocketMQ" itemprop="sameAs"> + <i class="fa fa-fw fa-twitter-square" aria-hidden="true"></i> Twitter + </a> + </li> + + + + + + + + + + + + + + + + + + <li> + <a href="https://github.com/apache/incubator-rocketmq" itemprop="sameAs"> + <i class="fa fa-fw fa-github" aria-hidden="true"></i> GitHub + </a> + </li> + + + + <li> + <a href="https://www.stackoverflow.com/questions/tagged/rocketmq" itemprop="sameAs"> + <i class="fa fa-fw fa-stack-overflow" aria-hidden="true"></i> Stackoverflow + </a> + </li> + + + + <li> + <a href="https://www.quora.com/topic/RocketMQ" itemprop="sameAs"> + <i class="fa fa-fw" aria-hidden="true"><strong>Q</strong></i> Quora + </a> + </li> + + + + + + + + + + + + + + + + + + + + + + + + + <!-- + <li> + <a href="http://link-to-whatever-social-network.com/user/" itemprop="sameAs"> + <i class="fa fa-fw" aria-hidden="true"></i> Custom Social Profile Link + </a> + </li> +--> + </ul> + </div> +</div> + + + </div> + + + <article class="page" itemscope itemtype="http://schema.org/CreativeWork"> + <meta itemprop="headline" content="How to Support More Queues in RocketMQ?"> + <meta itemprop="description" content="Summary"> + <meta itemprop="datePublished" content="December 23, 2016"> + + + <div class="page__inner-wrap"> + + <header> + <h1 class="page__title" itemprop="headline">How to Support More Queues in RocketMQ? +</h1> + + <p class="page__meta"><i class="fa fa-clock-o" aria-hidden="true"></i> + + + + + 2 minute read +</p> + + </header> + + + <section class="page__content" itemprop="text"> + <h1 id="summary">Summary</h1> + +<p>Kafka is a distributed streaming platform, which was born from <a href="https://engineering.linkedin.com/distributed-systems/log-what-every-software-engineer-should-know-about-real-time-datas-unifying">logging aggregation cases</a>. It does not need too high concurrency. In some large scale cases in alibaba, we found that the original model has been unable to meet our actual needs. So, we developed a messaging middleware, named RocketMQ, which can handle a broad set of use cases, ranging from traditional publish/subscribe scenario to demandingly high volume realtime transaction system that tolerates no message loss. Now, in alibaba, RocketMQ clusters process more than 500 billion events every day, provide services for more than 3000 core applications.</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="#summary" id="markdown-toc-summary">Summary</a></li> + <li><a href="#partition-design-in-kafka" id="markdown-toc-partition-design-in-kafka">Partition design in kafka</a> <ul> + <li><a href="#why-kafka-cant-support-more-partitions" id="markdown-toc-why-kafka-cant-support-more-partitions">Why Kafka canât support more partitions</a></li> + </ul> + </li> + <li><a href="#how-to-support-more-partition-in-rocketmq" id="markdown-toc-how-to-support-more-partition-in-rocketmq">How to support more partition in RocketMQ?</a></li> +</ul> + + </nav> +</aside> + +<h1 id="partition-design-in-kafka">Partition design in kafka</h1> +<ol> + <li>Producer parallelism of writing is bounded by the number of partitions.</li> + <li>The degree of consumer consumption parallelism, is also bounded by the number of partitions being consumed. Assuming that the number of partitions is 20, the maximum number of concurrent consuming consumers is 20.</li> + <li>Each topic consists of a fixed number of partitions. Partition number determines the maximum number of topics that single broker may have without significantly affecting performance.</li> +</ol> + +<p>More details please refer to <a href="http://www.confluent.io/blog/how-to-choose-the-number-of-topicspartitions-in-a-kafka-cluster/">here</a>.</p> + +<h2 id="why-kafka-cant-support-more-partitions">Why Kafka canât support more partitions</h2> +<ol> + <li>Each partition stores the whole message data. Although each partition is orderly written to the disk, as number of concurrently writing partitions increases, writing become random in the perspective of operating system.</li> + <li>Due to the scattered data files, it is difficult to use the Linux IO Group Commit mechanism.</li> +</ol> + +<h1 id="how-to-support-more-partition-in-rocketmq">How to support more partition in RocketMQ?</h1> + +<p><img src="/assets/images/blog/rocketmq-queues.png" alt="screenshot" /></p> + +<ol> + <li>All message data are stored in commit log files. All writes are completely sequential whilst reads are random.</li> + <li>ConsumeQueue stores the actual user consumption location information, which are also flushed to disk in sequential manner.</li> +</ol> + +<blockquote> + <p>prosï¼</p> +</blockquote> + +<ol> + <li>Each consume queue is lightweight and contains limited amount of meta data.</li> + <li>Access to disk is totally sequential, which avoids disk lock contention, and will not incur high disk IO wait when a large number of queues has been created.</li> +</ol> + +<blockquote> + <p>consï¼</p> +</blockquote> + +<ol> + <li>Message consumption will first read consume queue, then commit log. This process brings in certain cost in worst cases.</li> + <li>Commit log and consume queues need to be logically consistent, which introduces extra complexities to programming model.</li> +</ol> + +<blockquote> + <p>Design Motivationï¼</p> +</blockquote> + +<ol> + <li>Random read. Read as much as possible to increase the page cache hit rate, and reduce read IO operations. So large memory is still preferable. If massive messages are accumulated, would the read performance degrade badly? The answer is negative, reasons are as follows: + <ul> + <li>Even if size of the message is only 1KB, the system will read more data in advance, see <a href="https://en.wikipedia.org/wiki/Cache_prefetching">PAGECACHE prefetch</a> for reference. This means for the sequel data read, it is access to main memory that will be carried out instead of slow disk IO read.</li> + <li>Random access CommitLog from disk. If set the I/O scheduler to NOOP in case of SSD, the read qps will be greatly accelerated thus much faster than other elevator scheduler algorithm.</li> + </ul> + </li> + <li>Given ConsumeQueue stores fixed-size metadata only, which is mainly used to record consuming progress, random read is well supported. Taking advantage of page cache prefetch, accessing ConsumeQueue is as efficiently fast as accessing main memory, even if itâs in the case of massive message accumulation. As a resultï¼ConsumeQueue will NOT bring in noticeable penalty to the read performance.</li> + <li>CommitLog stores virtually all information, including the message data. Similar to redo log of relational database, consume queues, message key indexes and all other required data can be completely recovered as long as commit log exists..</li> +</ol> + + + </section> + + <footer class="page__meta"> + + + + + + + + + + <p class="page__taxonomy"> + <strong><i class="fa fa-fw fa-tags" aria-hidden="true"></i> Tags: </strong> + <span itemprop="keywords"> + + + + <a href="http://localhost:4000/tags/#message-oriented-middleware" class="page__taxonomy-item" rel="tag">Message Oriented Middleware</a><span class="sep">, </span> + + + + <a href="http://localhost:4000/tags/#partition" class="page__taxonomy-item" rel="tag">Partition</a><span class="sep">, </span> + + + + <a href="http://localhost:4000/tags/#queue" class="page__taxonomy-item" rel="tag">Queue</a><span class="sep">, </span> + + + + <a href="http://localhost:4000/tags/#rocketmq" class="page__taxonomy-item" rel="tag">RocketMQ</a> + + </span> + </p> + + + + + + + + + + + + <p class="page__taxonomy"> + <strong><i class="fa fa-fw fa-folder-open" aria-hidden="true"></i> Categories: </strong> + <span itemprop="keywords"> + + + + <a href="http://localhost:4000/categories/#rocketmq" class="page__taxonomy-item" rel="tag">RocketMQ</a> + + </span> + </p> + + + + <p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> Updated:</strong> <time datetime="2016-12-23T00:00:00+08:00">December 23, 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=How to Support More Queues in RocketMQ? http://localhost:4000/rocketmq/how-to-support-more-queues-in-rocketmq/" 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=http://localhost:4000/rocketmq/how-to-support-more-queues-in-rocketmq/" 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=http://localhost:4000/rocketmq/how-to-support-more-queues-in-rocketmq/" 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=http://localhost:4000/rocketmq/how-to-support-more-queues-in-rocketmq/" 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="#" class="pagination--pager disabled">Previous</a> + + + <a href="http://localhost:4000/maven/mastering-component-compatible-dependency/" class="pagination--pager" title="Mastering Component Compatible Dependency +">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="http://localhost:4000/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="http://localhost:4000/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/2d7f6a51/content/sitemap.xml ---------------------------------------------------------------------- diff --git a/content/sitemap.xml b/content/sitemap.xml new file mode 100644 index 0000000..5a072eb --- /dev/null +++ b/content/sitemap.xml @@ -0,0 +1,171 @@ +<?xml version="1.0" encoding="UTF-8"?> +<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> +<url> +<loc>http://localhost:4000/rocketmq/four-methods-to-feed-name-server-address-list/</loc> +<lastmod>2017-02-10T00:00:00+08:00</lastmod> +</url> +<url> +<loc>http://localhost:4000/release_notes/release-notes-4.0.0-incubating/</loc> +<lastmod>2017-01-24T00:00:00+08:00</lastmod> +</url> +<url> +<loc>http://localhost:4000/activity/launch-rocketmq-code-marathon/</loc> +<lastmod>2017-01-05T00:00:00+08:00</lastmod> +</url> +<url> +<loc>http://localhost:4000/maven/mastering-component-compatible-dependency/</loc> +<lastmod>2016-12-23T00:00:00+08:00</lastmod> +</url> +<url> +<loc>http://localhost:4000/rocketmq/how-to-support-more-queues-in-rocketmq/</loc> +<lastmod>2016-12-23T00:00:00+08:00</lastmod> +</url> +<url> +<loc>http://localhost:4000/docs/quick-start/</loc> +</url> +<url> +<loc>http://localhost:4000/about/team/</loc> +</url> +<url> +<loc>http://localhost:4000/about/contact/</loc> +</url> +<url> +<loc>http://localhost:4000/docs/motivation/</loc> +</url> +<url> +<loc>http://localhost:4000/docs/core-concept/</loc> +</url> +<url> +<loc>http://localhost:4000/about/rewards/</loc> +</url> +<url> +<loc>http://localhost:4000/docs/cli-admin-tool/</loc> +</url> +<url> +<loc>http://localhost:4000/docs/cluster-deployment/</loc> +</url> +<url> +<loc>http://localhost:4000/docs/pull-request/</loc> +</url> +<url> +<loc>http://localhost:4000/docs/code-guidelines/</loc> +</url> +<url> +<loc>http://localhost:4000/docs/documentation/</loc> +</url> +<url> +<loc>http://localhost:4000/docs/faq/</loc> +</url> +<url> +<loc>http://localhost:4000/docs/release-manual</loc> +</url> +<url> +<loc>http://localhost:4000/docs/branching-model</loc> +</url> +<url> +<loc>http://localhost:4000/dowloading/releases/</loc> +</url> +<url> +<loc>http://localhost:4000/docs/roadmap/</loc> +</url> +<url> +<loc>http://localhost:4000/about/</loc> +</url> +<url> +<loc>http://localhost:4000/archive-layout-with-content/</loc> +</url> +<url> +<loc>http://localhost:4000/docs/best-practice-broker/</loc> +</url> +<url> +<loc>http://localhost:4000/docs/best-practice-consumer/</loc> +</url> +<url> +<loc>http://localhost:4000/docs/best-practice-namesvr/</loc> +</url> +<url> +<loc>http://localhost:4000/docs/best-practice-producer/</loc> +</url> +<url> +<loc>http://localhost:4000/categories/</loc> +</url> +<url> +<loc>http://localhost:4000/collection-archive/</loc> +</url> +<url> +<loc>http://localhost:4000/community/</loc> +</url> +<url> +<loc>http://localhost:4000/</loc> +</url> +<url> +<loc>http://localhost:4000/tags/</loc> +</url> +<url> +<loc>http://localhost:4000/year-archive/</loc> +</url> +<url> +<loc>http://localhost:4000/about/team/</loc> +</url> +<url> +<loc>http://localhost:4000/about/contact/</loc> +</url> +<url> +<loc>http://localhost:4000/about/rewards/</loc> +</url> +<url> +<loc>http://localhost:4000/docs/quick-start/</loc> +</url> +<url> +<loc>http://localhost:4000/docs/motivation/</loc> +</url> +<url> +<loc>http://localhost:4000/docs/core-concept/</loc> +</url> +<url> +<loc>http://localhost:4000/docs/cli-admin-tool/</loc> +</url> +<url> +<loc>http://localhost:4000/docs/cluster-deployment/</loc> +</url> +<url> +<loc>http://localhost:4000/docs/pull-request/</loc> +</url> +<url> +<loc>http://localhost:4000/docs/code-guidelines/</loc> +</url> +<url> +<loc>http://localhost:4000/docs/documentation/</loc> +</url> +<url> +<loc>http://localhost:4000/docs/faq/</loc> +</url> +<url> +<loc>http://localhost:4000/docs/release-manual</loc> +</url> +<url> +<loc>http://localhost:4000/docs/branching-model</loc> +</url> +<url> +<loc>http://localhost:4000/dowloading/releases/</loc> +</url> +<url> +<loc>http://localhost:4000/docs/roadmap/</loc> +</url> +<url> +<loc>http://localhost:4000/docs/best-practice-broker/</loc> +</url> +<url> +<loc>http://localhost:4000/docs/best-practice-consumer/</loc> +</url> +<url> +<loc>http://localhost:4000/docs/best-practice-namesvr/</loc> +</url> +<url> +<loc>http://localhost:4000/docs/best-practice-producer/</loc> +</url> +<url> +<loc>http://localhost:4000/assets/attachment/launch-rocketmq-code-marathon.pdf</loc> +<lastmod>2017-03-16T10:34:03+08:00</lastmod> +</url> +</urlset>
