blob: 2a4e212d5c48834dd58adc8bc192c0a9c660100c [file] [log] [blame]
<!doctype html>
<html lang="en" dir="ltr" class="docs-wrapper docs-doc-page docs-version-current plugin-docs plugin-id-default docs-doc-id-parameterConfiguration/01local" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v2.4.3">
<title data-rh="true">Client Configuration | RocketMQ</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://your-docusaurus-test-site.com/docs/4.x/parameterConfiguration/01local"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Client Configuration | RocketMQ"><meta data-rh="true" name="description" content="In the RocketMQ Broker cluster, both producers and consumers are clients. This section mainly describes the common behavior configurations for producers and consumers."><meta data-rh="true" property="og:description" content="In the RocketMQ Broker cluster, both producers and consumers are clients. This section mainly describes the common behavior configurations for producers and consumers."><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://your-docusaurus-test-site.com/docs/4.x/parameterConfiguration/01local"><link data-rh="true" rel="alternate" href="https://your-docusaurus-test-site.com/zh/docs/4.x/parameterConfiguration/01local" hreflang="zh"><link data-rh="true" rel="alternate" href="https://your-docusaurus-test-site.com/docs/4.x/parameterConfiguration/01local" hreflang="en"><link data-rh="true" rel="alternate" href="https://your-docusaurus-test-site.com/docs/4.x/parameterConfiguration/01local" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://R2IYF7ETH7-dsn.algolia.net" crossorigin="anonymous"><link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="RocketMQ RSS Feed">
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="RocketMQ Atom Feed">
<link rel="search" type="application/opensearchdescription+xml" title="RocketMQ" href="/opensearch.xml">
<script>var _hmt=_hmt||[];!function(){var e=document.createElement("script");e.src="https://hm.baidu.com/hm.js?36428f2b841d08e7405724cbf7f860d2";var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)}()</script>
<link rel="preconnect" href="https://www.google-analytics.com">
<script>window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-89603173-1","auto"),ga("set","anonymizeIp",!0),ga("send","pageview")</script>
<script async src="https://www.google-analytics.com/analytics.js"></script>
<link rel="alternate" type="application/rss+xml" href="/events/rss.xml" title="RocketMQ RSS Feed">
<link rel="alternate" type="application/atom+xml" href="/events/atom.xml" title="RocketMQ Atom Feed">
<link rel="alternate" type="application/rss+xml" href="/release-notes/rss.xml" title="RocketMQ RSS Feed">
<link rel="alternate" type="application/atom+xml" href="/release-notes/atom.xml" title="RocketMQ Atom Feed">
<link rel="alternate" type="application/rss+xml" href="/news/rss.xml" title="RocketMQ RSS Feed">
<link rel="alternate" type="application/atom+xml" href="/news/atom.xml" title="RocketMQ Atom Feed">
<link rel="stylesheet" href="//g.alicdn.com/mamba/assets/0.0.13/mse-arc-ui.min.css">
<script src="//g.alicdn.com/mamba/assets/0.0.13/mse-arc-ui.min.js"></script><link rel="stylesheet" href="/assets/css/styles.b006b670.css">
<link rel="preload" href="/assets/js/runtime~main.9fb1bb92.js" as="script">
<link rel="preload" href="/assets/js/main.db9ae330.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/Apache_RocketMQ_logo.svg.png" alt="My Site Logo" class="themedImage_ToTc themedImage--light_HNdA"><img src="/img/Apache_RocketMQ_logo.svg.png" alt="My Site Logo" class="themedImage_ToTc themedImage--dark_i4oU"></div><b class="navbar__title text--truncate">Apache RocketMQ</b></a></div><div class="navbar__items navbar__items--right"><a href="https://github.com/apache/rocketmq" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_nlXk"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>English</a><ul class="dropdown__menu"><li><a href="/zh/docs/4.x/parameterConfiguration/01local" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="zh">简体中文</a></li><li><a href="/docs/4.x/parameterConfiguration/01local" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="en">English</a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Docs</a><ul class="dropdown__menu"><li><a aria-current="page" class="dropdown__link dropdown__link--active" href="/docs/">5.0</a></li><li><a aria-current="page" class="dropdown__link dropdown__link--active" href="/docs/4.x/">4.x</a></li></ul></div><a class="navbar__item navbar__link" href="/download">Download</a><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Blog</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/blog">User Cases</a></li><li><a class="dropdown__link" href="/events">Activity</a></li><li><a class="dropdown__link" href="/release-notes">Change Log</a></li><li><a class="dropdown__link" href="/news">RocketMQ News</a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Community</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/contact">Join Community</a></li><li><a class="dropdown__link" href="/origin">Origin</a></li><li><a class="dropdown__link" href="/team">Teams</a></li><li><a class="dropdown__link" href="/docs/contributionGuide/01how-to-contribute">Contributions</a></li><li><a class="dropdown__link" href="/enterprise">Enterprises</a></li></ul></div><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20" aria-hidden="true"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/docs/4.x/">Introduction</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/docs/4.x/producer/01concept1">Producer</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/docs/4.x/consumer/01concept2">Consumer</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/docs/4.x/deployment/01deploy">Deployment &amp; Operations</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/docs/4.x/bestPractice/01bestpractice">Best Practice</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret menu__link--active" aria-expanded="true" href="/docs/4.x/parameterConfiguration/01local">Parameter Configuration</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/docs/4.x/parameterConfiguration/01local">Client Configuration</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/4.x/parameterConfiguration/02server">Server Configuration</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/docs/4.x/eventbridge/01RocketMQEventBridgeConcepts">RocketMQ EventBridge</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/docs/4.x/mqtt/01RocketMQMQTTOverview">RocketMQ MQTT</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/docs/4.x/streams/01RocketMQ Streams Overview">RocketMQ Streams</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/docs/4.x/connect/01RocketMQ Connect Overview">RocketMQ Connect</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/docs/4.x/contributionGuide/01how-to-contribute">Contribution Guide</a></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li class="breadcrumbs__item"><span class="breadcrumbs__link">Parameter Configuration</span><meta itemprop="position" content="1"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">Client Configuration</span><meta itemprop="position" content="2"></li></ul></nav><span class="theme-doc-version-badge badge badge--secondary">Version: 4.x</span><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">On this page</button></div><div class="theme-doc-markdown markdown"><h1>Client Configuration</h1><p>In the RocketMQ Broker cluster, both producers and consumers are clients. This section mainly describes the common behavior configurations for producers and consumers.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="client-addressing-method">Client addressing method<a href="#client-addressing-method" class="hash-link" aria-label="Direct link to heading" title="Direct link to heading"></a></h3><p>RocketMQ allows clients to find the Name Server, and then find the Broker through the Name Server. There are multiple configuration methods, with priority from high to low, and higher priority will override lower priority.</p><ul><li><p>Specifying the Name Server address in the code, with multiple namesrv addresses separated by semicolons</p><div class="language-java codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-java codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">producer.setNamesrvAddr(&quot;192.168.0.1:9876;192.168.0.2:9876&quot;); </span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">consumer.setNamesrvAddr(&quot;192.168.0.1:9876;192.168.0.2:9876&quot;);</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div></li><li><p>Specifying the Name Server address in the Java startup parameters</p><div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">-Drocketmq.namesrv.addr=192.168.0.1:9876;192.168.0.2:9876 </span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div></li><li><p>Specifying the Name Server address in the environment variable</p><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token builtin class-name">export</span><span class="token plain"> </span><span class="token assign-left variable" style="color:#36acaa">NAMESRV_ADDR</span><span class="token operator" style="color:#393A34">=</span><span class="token number" style="color:#36acaa">192.168</span><span class="token plain">.0.1:9876</span><span class="token punctuation" style="color:#393A34">;</span><span class="token number" style="color:#36acaa">192.168</span><span class="token plain">.0.2:9876 </span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div></li><li><p>HTTP static server addressing (default)</p><p>After the client starts, it will periodically access a static HTTP server with the following address: :<a href="http://jmenv.tbsite.net:8080/rocketmq/nsaddr" target="_blank" rel="noopener noreferrer">http://jmenv.tbsite.net:8080/rocketmq/nsaddr</a>,and the return content of this URL is as follows:</p><div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">192.168.0.1:9876;192.168.0.2:9876 </span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div></li></ul><p>The client defaults to accessing this HTTP server every 2 minutes and updating the local Name Server address. The URL is hard-coded in the code, and can be changed by modifying the /etc/hosts file. For example, adding the following configuration in /etc/hosts:</p><div class="language-text codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-text codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">10.232.22.67 jmenv.taobao.net </span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>It is recommended to use the HTTP static server addressing method, as it is simple to deploy the client and the Name Server cluster can be hot upgraded.</p><h4 class="anchor anchorWithStickyNavbar_LWe7" id="client-configuration-1">Client configuration<a href="#client-configuration-1" class="hash-link" aria-label="Direct link to heading" title="Direct link to heading"></a></h4><p>DefaultMQProducer, TransactionMQProducer, DefaultMQPushConsumer, and DefaultMQPullConsumer all extends from the ClientConfig class, which is a common configuration class for clients. The client&#x27;s configuration is in the form of get and set methods, and each parameter can be configured with Spring or in the code. For example, the namesrvAddr parameter can be configured like this: producer.setNamesrvAddr(&quot;192.168.0.1:9876&quot;), and other parameters are similar.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="clientconfig-configuration">ClientConfig configuration<a href="#clientconfig-configuration" class="hash-link" aria-label="Direct link to heading" title="Direct link to heading"></a></h2><table><thead><tr><th>Name</th><th>Description</th><th>Parameter type</th><th>Default value</th><th>Effective value</th><th>Importance</th></tr></thead><tbody><tr><td>namesrvAddr</td><td>NameServer address</td><td>String</td><td>From -D system parameter rocketmq.namesrv.addr or environment variable.NAMESRV_ADDR</td><td></td><td></td></tr><tr><td>instanceName</td><td>Client instance name</td><td>String</td><td>From -D system parameter rocketmq.client.name, otherwise it is DEFAULT</td><td></td><td></td></tr><tr><td>clientIP</td><td>Client IP</td><td>String</td><td>RemotingUtil.getLocalAddress()</td><td></td><td></td></tr><tr><td>namespace</td><td>Client namespace</td><td>String</td><td></td><td></td><td></td></tr><tr><td>accessChannel</td><td>Setting up access channels</td><td>AccessChannel</td><td>LOCAL</td><td></td><td></td></tr><tr><td>clientCallbackExecutorThreads</td><td>The number of processor cores when the client communication layer receives a network request</td><td>int</td><td>Runtime.getRuntime().availableProcessors()</td><td></td><td></td></tr><tr><td>pollNameServerInterval</td><td>Time interval for polling route information from NameServer</td><td>int</td><td>30000, in milliseconds</td><td></td><td></td></tr><tr><td>heartbeatBrokerInterval</td><td>Interval for regularly sending registration heartbeats to broker</td><td>int</td><td>30000, in milliseconds</td><td></td><td></td></tr><tr><td>persistConsumerOffsetInterval</td><td>Applies to Consumer, the interval for persisting consumption progress</td><td>int</td><td>5000, in milliseconds</td><td></td><td></td></tr><tr><td>pullTimeDelayMillsWhenException</td><td>Delay time setting when pulling messages encounters an exception</td><td>long</td><td>1000, in milliseconds</td><td></td><td></td></tr><tr><td>unitName</td><td>Unit name</td><td>String</td><td></td><td></td><td></td></tr><tr><td>unitMode</td><td>Unit mode</td><td>boolean</td><td>false</td><td></td><td></td></tr><tr><td>vipChannelEnabled</td><td>Whether to enable vip netty channel for sending messages</td><td>boolean</td><td>From -D com.rocketmq.sendMessageWithVIPChannel parameter value, if not it is true</td><td></td><td></td></tr><tr><td>useTLS</td><td>Whether to use TLS transport.</td><td>boolean</td><td>From -D system parameter tls.enable, otherwise it is false.</td><td></td><td></td></tr><tr><td>mqClientApiTimeout</td><td>Mq client api timeout setting</td><td>int</td><td>3000, in milliseconds</td><td></td><td></td></tr><tr><td>language</td><td>Client implementation language</td><td>LanguageCode</td><td>LanguageCode.<em>JAVA</em></td><td></td><td></td></tr></tbody></table><h2 class="anchor anchorWithStickyNavbar_LWe7" id="defaultmqproducer-configuration">DefaultMQProducer configuration<a href="#defaultmqproducer-configuration" class="hash-link" aria-label="Direct link to heading" title="Direct link to heading"></a></h2><table><thead><tr><th>Name</th><th>Description</th><th>Parameter type</th><th>Default Value</th><th>Effective value</th><th>Importance</th></tr></thead><tbody><tr><td>producerGroup</td><td>The name of the production group, the identifier of a class of Producers</td><td>String</td><td>DEFAULT_PRODUCER</td><td></td><td></td></tr><tr><td>createTopicKey</td><td>When sending a message, if the topic is not found, if you want to automatically create the topic, you need a key topic, and this value is the value of the key topic.</td><td>String</td><td>TopicValidator.AUTO_CREATE_TOPIC_KEY_TOPIC</td><td></td><td></td></tr><tr><td>defaultTopicQueueNums</td><td>The default number of queues when creating a topic automatically</td><td>int</td><td>4</td><td></td><td></td></tr><tr><td>sendMsgTimeout</td><td>The default send timeout time</td><td>int</td><td>3000, in milliseconds</td><td></td><td></td></tr><tr><td>compressMsgBodyOverHowmuc</td><td>The threshold for message body compression</td><td>int</td><td>1024 * 4,4K</td><td></td><td></td></tr><tr><td>retryTimesWhenSendFailed</td><td>The number of internal retries for rocketmq if synchronous sending fails</td><td>int</td><td>2</td><td></td><td></td></tr><tr><td>retryTimesWhenSendAsyncFailed</td><td>The number of internal retries for rocketmq if asynchronous sending fails</td><td>int</td><td>2</td><td></td><td></td></tr><tr><td>retryAnotherBrokerWhenNotStoreOK</td><td>If the sending result is not SEND_OK status, whether it should be treated as a failure and retried</td><td>boolean</td><td>false</td><td></td><td></td></tr><tr><td>maxMessageSize</td><td>Client verification, the maximum message body size allowed to be sent</td><td>int</td><td>1024 <em> 1024 </em> 4,4M</td><td></td><td></td></tr><tr><td>traceDispatcher</td><td>synchronous data transfer interface</td><td>TraceDispatcher</td><td>null</td><td></td><td></td></tr></tbody></table><h2 class="anchor anchorWithStickyNavbar_LWe7" id="defaultmqpushconsumer-configuration">DefaultMQPushConsumer configuration<a href="#defaultmqpushconsumer-configuration" class="hash-link" aria-label="Direct link to heading" title="Direct link to heading"></a></h2><table><thead><tr><th>Name</th><th>Description</th><th>Parameter type</th><th>Default value</th><th>Effective value</th><th>Importance</th></tr></thead><tbody><tr><td>consumerGroup</td><td>The name of the consumer group, used to identify a class of consumers</td><td>String</td><td></td><td></td><td></td></tr><tr><td>messageModel</td><td>Consumption mode</td><td>MessageModel</td><td>MessageModel.CLUSTERINGallocateMessageQueueStrategy</td><td></td><td></td></tr><tr><td>consumeFromWhere</td><td>Starting consumption point strategy</td><td>ConsumeFromWhere</td><td>ConsumeFromWhere.CONSUME_FROM_LAST_OFFSET</td><td></td><td></td></tr><tr><td>consumeTimestamp</td><td>When using CONSUME_FROM_LAST_OFFSET, start consuming from which time point</td><td>String</td><td>Half an hour ago</td><td></td><td></td></tr><tr><td>allocateMessageQueueStrategy</td><td>Load balancing strategy algorithm</td><td>AllocateMessageQueueStrategy</td><td>AllocateMessageQueueAveragely(Modulo average distribution.)</td><td></td><td></td></tr><tr><td>subscription</td><td>Subscription relationship</td><td>Map&lt;String, String&gt;</td><td>{}</td><td></td><td></td></tr><tr><td>messageListener</td><td>Message processing listener (callback)</td><td>MessageListener</td><td>null</td><td></td><td></td></tr><tr><td>offsetStore</td><td>Message consumption progress storage</td><td>OffsetStore</td><td>null</td><td></td><td></td></tr><tr><td>consumeThreadMin</td><td>Core size of the consumer thread pool</td><td>int</td><td>20</td><td></td><td></td></tr><tr><td>consumeThreadMax</td><td>Maximum size of the consumer thread pool</td><td>int</td><td>64</td><td></td><td></td></tr><tr><td>adjustThreadPoolNumsThreshold</td><td>Dynamic thread core number consumer accumulation threshold</td><td>long</td><td>100000</td><td></td><td></td></tr><tr><td>consumeConcurrentlyMaxSpan</td><td>In concurrent consumption, the maximum offset span allowed for a single consume queue, which will trigger flow control</td><td>int</td><td>2000<strong>pullInterval</strong></td><td></td><td></td></tr><tr><td>pullThresholdForQueue</td><td>Consume queue flow control threshold</td><td>int</td><td>100</td><td></td><td></td></tr><tr><td>pullInterval</td><td>Pulling interval</td><td>long</td><td>0, in milliseconds</td><td></td><td></td></tr><tr><td>pullThresholdForTopic</td><td>Topic-level flow control threshold</td><td>int</td><td>-1</td><td></td><td></td></tr><tr><td>pullThresholdSizeForTopic</td><td>Limit the topic-level cache message size</td><td>int</td><td>-1</td><td></td><td></td></tr><tr><td>pullBatchSize</td><td>Maximum batch size for one pull</td><td>int</td><td>32</td><td></td><td></td></tr><tr><td>consumeMessageBatchMaxSize</td><td>Maximum number of messages for batch consumption</td><td>int</td><td>1</td><td></td><td></td></tr><tr><td>postSubscriptionWhenPull</td><td>Whether to update the subscription relationship each time a pull is made</td><td>boolean</td><td>false</td><td></td><td></td></tr><tr><td>unitMode</td><td>Subscription group unit</td><td>boolean</td><td>false</td><td></td><td></td></tr><tr><td>maxReconsumeTimes</td><td>The maximum number of times a message will be consumed before being delivered to the dead-letter queue if it fails</td><td>int</td><td>-1</td><td></td><td></td></tr><tr><td>suspendCurrentQueueTimeMillis</td><td>The time interval for consuming again if the serial consumption returns ROLLBACK or SUSPEND_CURRENT_QUEUE_A_MOMENT</td><td>long</td><td>1000</td><td></td><td></td></tr><tr><td>consumeTimeout</td><td>The longest timeout time for consumption</td><td>long</td><td>15, in minutes</td><td></td><td></td></tr><tr><td>awaitTerminationMillisWhenShutdown</td><td>The longest wait time for messages when closing the consumer, 0 means no wait.</td><td>long</td><td>0</td><td></td><td></td></tr><tr><td>traceDispatcher</td><td>Asynchronous data transfer interface</td><td>TraceDispatcher</td><td>null</td><td></td><td></td></tr></tbody></table><h2 class="anchor anchorWithStickyNavbar_LWe7" id="defaultlitepullconsumer-configuration">DefaultLitePullConsumer configuration<a href="#defaultlitepullconsumer-configuration" class="hash-link" aria-label="Direct link to heading" title="Direct link to heading"></a></h2><table><thead><tr><th>Name</th><th>Description</th><th>Parameter type</th><th>Default value</th><th>Effective value</th><th>Importance</th></tr></thead><tbody><tr><td>consumerGroup</td><td>The name of the consumer group, used to identify a type of consumer</td><td>String</td><td></td><td></td><td></td></tr><tr><td>brokerSuspendMaxTimeMillis</td><td>The maximum time that a connection will be suspended for in long polling by the broker</td><td>long</td><td>20000, in milliseconds</td><td></td><td></td></tr><tr><td>consumerTimeoutMillisWhenSuspend</td><td>The maximum wait time for a response from the broker in long polling by the client</td><td>long</td><td>30000, in milliseconds</td><td></td><td></td></tr><tr><td>consumerPullTimeoutMillis</td><td>The socket timeout for pulling messages</td><td>long</td><td>10000, in milliseconds</td><td></td><td></td></tr><tr><td>messageModel</td><td>The consumption mode</td><td>MessageModel</td><td>MessageModel.CLUSTERING</td><td></td><td></td></tr><tr><td>messageQueueListener</td><td>A listener for changes in the allocation of consume queues in load balancing</td><td>MessageQueueListener</td><td></td><td></td><td></td></tr><tr><td>offsetStore</td><td>The message consumption progress storage</td><td>OffsetStore</td><td></td><td></td><td></td></tr><tr><td>allocateMessageQueueStrategy</td><td>The load balancing strategy algorithm</td><td>AllocateMessageQueueStrategy</td><td>AllocateMessageQueueAveragely(Modulo average distribution.)</td><td></td><td></td></tr><tr><td>unitMode</td><td>The unit of subscription group settings</td><td>boolean</td><td>false</td><td></td><td></td></tr><tr><td>autoCommit</td><td>The setting for automatic commit of offset</td><td>boolean</td><td>true</td><td></td><td></td></tr><tr><td>pullThreadNums</td><td>The number of pull threads set</td><td>int</td><td>20</td><td></td><td></td></tr><tr><td>MIN_AUTOCOMMIT_INTERVAL_MILLIS</td><td>The minimum interval time for committing offset</td><td>long</td><td>1000, in milliseconds</td><td></td><td></td></tr><tr><td>autoCommitIntervalMillis</td><td>The maximum interval time for committing offset</td><td>long</td><td>5000, in milliseconds</td><td></td><td></td></tr><tr><td>pullBatchSize</td><td>The maximum number of messages pulled each time</td><td>long</td><td>10</td><td></td><td></td></tr><tr><td>pullThresholdForAll</td><td>The threshold for flow control of consumed requests</td><td>int</td><td>10000</td><td></td><td></td></tr><tr><td>consumeMaxSpan</td><td>The maximum offset span for consumption</td><td>int</td><td>2000</td><td></td><td></td></tr><tr><td>pullThresholdForQueue</td><td>The queue level flow control threshold</td><td>int</td><td>1000</td><td></td><td></td></tr><tr><td>pullThresholdSizeForQueue</td><td>The queue level limit on cached message size</td><td>int</td><td>100MiB</td><td></td><td></td></tr><tr><td>pollTimeoutMillis</td><td>The polling timeout setting</td><td>long</td><td>5000, in milliseconds</td><td></td><td></td></tr><tr><td>topicMetadataCheckIntervalMillis</td><td>The interval for checking changes in topic metadata</td><td>long</td><td>30000, in milliseconds</td><td></td><td></td></tr><tr><td>consumeFromWhere</td><td>The consumption mode setting</td><td>ConsumeFromWhere</td><td>ConsumeFromWhere.CONSUME_FROM_LAST_OFFSET</td><td></td><td></td></tr><tr><td>consumeTimestamp</td><td>The time for backtracking consumption</td><td>String</td><td>The default consumption rollback time is half an hour ago.</td><td></td><td></td></tr><tr><td>traceDispatcher</td><td>The interface for asynchronous data transmission</td><td>TraceDispatcher</td><td>null</td><td></td><td></td></tr><tr><td>enableMsgTrace</td><td>The flag for message tracing</td><td>boolean</td><td>false</td><td></td><td></td></tr><tr><td>customizedTraceTopic</td><td>The name of the topic for message tracing</td><td>String</td><td></td><td></td><td></td></tr></tbody></table></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/rocketmq-site/tree/new-official-website/docs/06-parameterConfiguration/01local.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages navigation"><a class="pagination-nav__link pagination-nav__link--prev" href="/docs/4.x/bestPractice/08FAQ"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">FAQs</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/docs/4.x/parameterConfiguration/02server"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Server Configuration</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#client-addressing-method" class="table-of-contents__link toc-highlight">Client addressing method</a></li><li><a href="#clientconfig-configuration" class="table-of-contents__link toc-highlight">ClientConfig configuration</a></li><li><a href="#defaultmqproducer-configuration" class="table-of-contents__link toc-highlight">DefaultMQProducer configuration</a></li><li><a href="#defaultmqpushconsumer-configuration" class="table-of-contents__link toc-highlight">DefaultMQPushConsumer configuration</a></li><li><a href="#defaultlitepullconsumer-configuration" class="table-of-contents__link toc-highlight">DefaultLitePullConsumer configuration</a></li></ul></div></div></div></div></main></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Learn</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/docs/domainModel/01main">Introduction</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/quickStart/01quickstart">Installation</a></li><li class="footer__item"><a class="footer__link-item" href="/version">Migration from 4.x to 5.0</a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://twitter.com/ApacheRocketMQ" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://github.com/apache/rocketmq" target="_blank" rel="noopener noreferrer" class="footer__link-item">Github</a></li><li class="footer__item"><a href="https://github.com/apache/rocketmq" target="_blank" rel="noopener noreferrer" class="footer__link-item">Help</a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/blog">Blog</a></li><li class="footer__item"><a class="footer__link-item" href="/release-notes">Changelog</a></li><li class="footer__item"><a href="https://github.com/apache/rocketmq" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://twitter.com/docusaurus" target="_blank" rel="noopener noreferrer" class="footer__link-item">Twitter<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">Legal</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://www.apache.org/licenses/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Licenses<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://www.apache.org/security/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Security<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://www.apache.org/foundation/thanks.html" target="_blank" rel="noopener noreferrer" class="footer__link-item">Thanks<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://www.apache.org/foundation/sponsorship.html" target="_blank" rel="noopener noreferrer" class="footer__link-item">Sponsorship<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><a href="https://rocketmq.apache.org/" rel="noopener noreferrer" class="footerLogoLink_BH7S"><img src="/img/Apache_RocketMQ_logo.svg.png" alt="Meta Open Source Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo"><img src="/img/Apache_RocketMQ_logo.svg.png" alt="Meta Open Source Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo"></a></div><div class="footer__copyright">Copyright © 2022 The Apache Software Foundation. Licensed under the Apache License, Version 2.0.</div></div></div></footer></div>
<script src="/assets/js/runtime~main.9fb1bb92.js"></script>
<script src="/assets/js/main.db9ae330.js"></script>
</body>
</html>