blob: 0f99f5b48d46f1837fbc24cb31f34b14240ed53f [file] [log] [blame]
<!doctype html>
<html lang="en" dir="ltr" class="docs-wrapper docs-doc-page docs-version-3.2.x plugin-docs plugin-id-default docs-doc-id-develop-load-manager">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v2.4.0">
<title data-rh="true">Broker load balancer | Apache Pulsar</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:image" content="https://pulsar.apache.org/img/pulsar-social-media-card.png"><meta data-rh="true" name="twitter:image" content="https://pulsar.apache.org/img/pulsar-social-media-card.png"><meta data-rh="true" property="og:url" content="https://pulsar.apache.org/docs/3.2.x/develop-load-manager/"><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="3.2.x"><meta data-rh="true" name="docusaurus_tag" content="docs-default-3.2.x"><meta data-rh="true" name="docsearch:version" content="3.2.x"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-3.2.x"><meta data-rh="true" property="og:title" content="Broker load balancer | Apache Pulsar"><meta data-rh="true" name="description" content="If you want to develop a broker load balancer, check out the following docs."><meta data-rh="true" property="og:description" content="If you want to develop a broker load balancer, check out the following docs."><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="alternate" href="https://pulsar.apache.org/docs/3.2.x/develop-load-manager/" hreflang="en"><link data-rh="true" rel="alternate" href="https://pulsar.apache.org/docs/3.2.x/develop-load-manager/" hreflang="x-default"><link data-rh="true" rel="canonical" href="https://pulsar.apache.org/docs/develop-load-manager/"><link data-rh="true" rel="preconnect" href="https://WK2YL0SALL-dsn.algolia.net" crossorigin="anonymous"><link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="Apache Pulsar RSS Feed">
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache Pulsar Atom Feed">
<link rel="search" type="application/opensearchdescription+xml" title="Apache Pulsar" href="/opensearch.xml">
<link rel="stylesheet" href="/css/katex-0.13.24.min.css" media="print" onload="this.media=&#39;all&#39;">
<script src="/js/sine-waves.min.js" async></script>
<script src="/js/matomo-agent.js"></script><link rel="stylesheet" href="/assets/css/styles.b0f65ef3.css">
<link rel="preload" href="/assets/js/runtime~main.1d0ed2a7.js" as="script">
<link rel="preload" href="/assets/js/main.e07a0c68.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")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</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><div class="announcementBar_mb4j" style="background-color:#282826;color:#fff" role="banner"><div class="content_knG7 announcementBarContent_xLdY">
<a class="announcement-bar" href="https://registration.socio.events/e/pulsarvirtualsummiteurope2024" target="_blank">
<div class="announcement-bar__content">
<svg class="announcement-bar__icon">
<svg viewBox="0 0 33 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M6.5 19.6001H16.1L15.3 29.2001L26.5 12.4H17.06L18.1 2.80005L6.5 19.6001Z" stroke="#F7F7F7" stroke-width="1.5" stroke-linejoin="round"/>
</svg>
</svg>
<span>
Get your free pass for Pulsar Virtual Summit Europe 2024 on May 14, 2024 🗓️
</span>
<svg class="announcement-bar__icon">
<svg viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="20" height="20" transform="translate(6 6)" fill="white" fill-opacity="0.01"/>
<path d="M17.6667 10.1667L23.5 16.0001M23.5 16.0001L17.6667 21.8334M23.5 16.0001L8.5 16.0001" stroke="white" stroke-linecap="round" stroke-linejoin="round"/>
<rect x="0.5" y="0.5" width="31" height="31" rx="15.5" stroke="white"/>
</svg>
</svg>
</div>
</a>
</div></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/logo-black.svg" alt="Apache Pulsar logo" class="themedImage_ToTc themedImage--light_HNdA" height="25" width="127"><img src="/img/logo-black.svg" alt="Apache Pulsar logo" class="themedImage_ToTc themedImage--dark_i4oU" height="25" width="127"></div><b class="navbar__title text--truncate"></b></a><div class="navbar__item dropdown dropdown--hoverable"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Get Started</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/docs/3.2.x/concepts-overview/">Concepts</a></li><li><a class="dropdown__link" href="/docs/3.2.x/">Quickstart</a></li><li><a class="dropdown__link" href="/ecosystem/">Ecosystem</a></li></ul></div><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/docs/3.2.x/">Docs</a><a class="navbar__item navbar__link" href="/features/">Features</a><a class="navbar__item navbar__link" href="/use-cases/">Use Cases</a><div class="navbar__item dropdown dropdown--hoverable"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link community-dropdown">Community</a><ul class="dropdown__menu"><li><a class="dropdown__link scroll-link scroll-welcome" id="scroll-welcome" href="/community/">Welcome</a></li><li><a class="dropdown__link scroll-link scroll-discussions" id="scroll-discussions" href="/community/#section-discussions">Discussions</a></li><li><a class="dropdown__link scroll-link" id="scroll-governance" href="/community/#section-governance">Governance</a></li><li><a class="dropdown__link scroll-link" id="scroll-community" href="/community/#section-community">Meet the Community</a></li><li><a class="dropdown__link scroll-link" id="scroll-contribute" href="/community/#section-contribute">Contribute</a></li><li><a class="dropdown__link" href="/contribute/">Contribution Guide</a></li><li><a href="https://github.com/apache/pulsar/wiki" target="_blank" rel="noopener noreferrer" class="dropdown__link">Wiki</a></li><li><a href="https://github.com/apache/pulsar/issues" target="_blank" rel="noopener noreferrer" class="dropdown__link">Issue Tracking</a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Learn</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/blog/">Blog</a></li><li><a class="dropdown__link" href="/books/">Books</a></li><li><a class="dropdown__link" href="/case-studies/">Case Studies</a></li><li><a class="dropdown__link" href="/articles/">Articles</a></li><li><a class="dropdown__link" href="/presentations/">Presentations</a></li><li><a class="dropdown__link" href="/events/">Events</a></li></ul></div></div><div class="navbar__items navbar__items--right"><a class="navbar__item navbar__link navbar_download_button" href="/download/">Download</a><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_mhZE"><div class="sidebarVersionSwitch_EHpo">Version:<div class="navbar__item dropdown dropdown--hoverable"><a aria-current="page" class="navbar__link active" aria-haspopup="true" aria-expanded="false" role="button" href="/docs/3.2.x/">3.2.x</a><ul class="dropdown__menu"><li><a class="dropdown__link">Next</a></li><li><a class="dropdown__link">3.2.x</a></li><li><a class="dropdown__link">3.0.x LTS</a></li><li><a class="dropdown__link">Others</a></li></ul></div></div><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/docs/3.2.x/">About</a></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" aria-expanded="false" href="/docs/3.2.x/getting-started-home/">Get Started</a><button aria-label="Toggle the collapsible sidebar category &#x27;Get Started&#x27;" type="button" class="clean-btn menu__caret"></button></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/3.2.x/concepts-overview/">Concepts and Architecture</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/3.2.x/schema-overview/">Pulsar Schema</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/3.2.x/functions-overview/">Pulsar Functions</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/3.2.x/io-overview/">Pulsar IO</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/3.2.x/sql-overview/">Pulsar SQL</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/3.2.x/tiered-storage-overview/">Tiered Storage</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/3.2.x/txn-why/">Transactions</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" aria-expanded="false" href="/docs/3.2.x/install-deploy-upgrade-landing/">Deployment</a><button aria-label="Toggle the collapsible sidebar category &#x27;Deployment&#x27;" type="button" class="clean-btn menu__caret"></button></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/3.2.x/administration-zk-bk/">Administration</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/3.2.x/administration-stats/">Observability</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/3.2.x/security-overview/">Security</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/3.2.x/performance-pulsar-perf/">Performance</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/3.2.x/client-libraries/">Client Libraries</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/3.2.x/admin-api-overview/">Admin API</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/3.2.x/adaptors-kafka/">Adaptors</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" aria-expanded="false" href="/docs/3.2.x/how-to-landing/">Tutorials</a><button aria-label="Toggle the collapsible sidebar category &#x27;Tutorials&#x27;" type="button" class="clean-btn menu__caret"></button></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--active" aria-expanded="true" href="/docs/3.2.x/developers-landing/">Development</a><button aria-label="Toggle the collapsible sidebar category &#x27;Development&#x27;" type="button" class="clean-btn menu__caret"></button></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" tabindex="0" href="/docs/3.2.x/develop-tools/">Simulation tools</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/3.2.x/developing-binary-protocol/">Binary protocol</a></li><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/3.2.x/develop-load-manager/">Broker load balancer</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/3.2.x/develop-plugin/">Plugin</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" aria-expanded="false" href="/docs/3.2.x/reference-landing/">Reference</a><button aria-label="Toggle the collapsible sidebar category &#x27;Reference&#x27;" type="button" class="clean-btn menu__caret"></button></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 itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item"><a class="breadcrumbs__link" itemprop="item" href="/docs/3.2.x/developers-landing/"><span itemprop="name">Development</span></a><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">Broker load balancer</span><meta itemprop="position" content="2"></li></ul></nav><span class="theme-doc-version-badge badge badge--secondary">Version: 3.2.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"><header><h1>Broker load balancer</h1></header><p>If you want to develop a broker load balancer, check out the following docs.</p><p>Pulsar has the following types of load managers:</p><ul><li><p>Simple load manager, implemented in <a href="https://github.com/apache/pulsar/blob/master/pulsar-broker/src/main/java/org/apache/pulsar/broker/loadbalance/impl/SimpleLoadManagerImpl.java" target="_blank" rel="noopener noreferrer">SimpleLoadManagerImpl</a>, which attempts to simplify how the load is managed while also providing abstractions so that complex load management strategies may be implemented.</p></li><li><p>Modular load manager, implemented in <a href="https://github.com/apache/pulsar/blob/master/pulsar-broker/src/main/java/org/apache/pulsar/broker/loadbalance/impl/ModularLoadManagerImpl.java" target="_blank" rel="noopener noreferrer">ModularLoadManagerImpl</a>, which is a flexible alternative to the <a href="https://github.com/apache/pulsar/blob/master/pulsar-broker/src/main/java/org/apache/pulsar/broker/loadbalance/impl/SimpleLoadManagerImpl.java" target="_blank" rel="noopener noreferrer"><code>SimpleLoadManagerImpl</code></a>.</p></li><li><p>Extensible load manager, implemented in <a href="https://github.com/apache/pulsar/blob/master/pulsar-broker/src/main/java/org/apache/pulsar/broker/loadbalance/extensions/ExtensibleLoadManagerImpl.java" target="_blank" rel="noopener noreferrer">ExtensibleLoadManagerImpl</a>, which is dependent on system topics and table views for load balance metadata store and replication.</p></li></ul><h2 class="anchor anchorWithStickyNavbar_LWe7" id="concepts">Concepts<a href="#concepts" class="hash-link" aria-label="Direct link to Concepts" title="Direct link to Concepts"></a></h2><p>Before starting the impelemtation, make sure you understand the following basics.</p><div class="theme-admonition theme-admonition-note alert alert--secondary admonition_LlT9"><div class="admonitionHeading_tbUL"><span class="admonitionIcon_kALy"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"></path></svg></span>note</div><div class="admonitionContent_S0QG"><p>The following concepts are only availabe for the modular load manager.</p></div></div><h3 class="anchor anchorWithStickyNavbar_LWe7" id="data">Data<a href="#data" class="hash-link" aria-label="Direct link to Data" title="Direct link to Data"></a></h3><p>The data monitored by the modular load manager is contained in the <a href="https://github.com/apache/pulsar/blob/master/pulsar-broker/src/main/java/org/apache/pulsar/broker/loadbalance/LoadData.java" target="_blank" rel="noopener noreferrer"><code>LoadData</code></a> class.
Here, the available data is subdivided into the bundle data and the broker data.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="broker">Broker<a href="#broker" class="hash-link" aria-label="Direct link to Broker" title="Direct link to Broker"></a></h3><p>The broker data is contained in the <a href="https://github.com/apache/pulsar/blob/master/pulsar-broker/src/main/java/org/apache/pulsar/broker/BrokerData.java" target="_blank" rel="noopener noreferrer"><code>BrokerData</code></a> class. It is further subdivided into two parts,
one being the local data that every broker individually writes to ZooKeeper, and the other being the historical broker data that is written to ZooKeeper by the leader broker.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="lead-broker">Lead broker<a href="#lead-broker" class="hash-link" aria-label="Direct link to Lead broker" title="Direct link to Lead broker"></a></h3><p>The module load manager is <em>centralized</em>, meaning that all requests to assign a bundle---whether it&#x27;s been seen before or whether this is the first time---only get handled by the lead broker (which can change over time). To determine the current lead broker, examine the <code>/loadbalance/leader</code> node in ZooKeeper.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="local-broker-data">Local broker data<a href="#local-broker-data" class="hash-link" aria-label="Direct link to Local broker data" title="Direct link to Local broker data"></a></h3><p>The local broker data is contained in the class <a href="https://github.com/apache/pulsar/blob/master/pulsar-common/src/main/java/org/apache/pulsar/policies/data/loadbalancer/LocalBrokerData.java" target="_blank" rel="noopener noreferrer"><code>LocalBrokerData</code></a> and provides information about the following resources:</p><ul><li>CPU usage</li><li>JVM heap memory usage</li><li>Direct memory usage</li><li>Bandwidth in/out usage</li><li>Most recent total message rate in/out across all bundles</li><li>Total number of topics, bundles, producers, and consumers</li><li>Names of all bundles assigned to this broker</li><li>Most recent changes in bundle assignments for this broker</li></ul><p>The local broker data is updated periodically according to the service configuration
&quot;loadBalancerReportUpdateMaxIntervalMinutes&quot;. After any broker updates their local broker data, the leader broker will
receive the update immediately via a ZooKeeper watch, where the local data is read from the ZooKeeper node
<code>/loadbalance/brokers/&lt;broker host/port&gt;</code></p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="historical-broker-data">Historical broker data<a href="#historical-broker-data" class="hash-link" aria-label="Direct link to Historical broker data" title="Direct link to Historical broker data"></a></h3><p>The historical broker data is contained in the <a href="https://github.com/apache/pulsar/blob/master/pulsar-broker/src/main/java/org/apache/pulsar/broker/TimeAverageBrokerData.java" target="_blank" rel="noopener noreferrer"><code>TimeAverageBrokerData</code></a> class.</p><p>To reconcile the need to make good decisions in a steady-state scenario and make reactive decisions in a critical scenario, the historical data is split into two parts: the short-term data for reactive decisions, and the long-term data for steady-state decisions. Both time frames maintain the following information:</p><ul><li>Message rate in/out for the entire broker</li><li>Message throughput in/out for the entire broker</li></ul><p>Unlike the bundle data, the broker data does not maintain samples for the global broker message rates and throughputs, which is not expected to remain steady as new bundles are removed or added. Instead, this data is aggregated over the short-term and long-term data for the bundles. See the section on bundle data to understand how that data is collected and maintained.</p><p>The historical broker data is updated for each broker in memory by the leader broker whenever any broker writes their local data to ZooKeeper. Then, the historical data is written to ZooKeeper by the leader broker periodically according to the configuration <code>loadBalancerResourceQuotaUpdateIntervalMinutes</code>.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="bundle-data">Bundle data<a href="#bundle-data" class="hash-link" aria-label="Direct link to Bundle data" title="Direct link to Bundle data"></a></h3><p>The bundle data is contained in the <a href="https://github.com/apache/pulsar/blob/master/pulsar-broker/src/main/java/org/apache/pulsar/broker/BundleData.java" target="_blank" rel="noopener noreferrer"><code>BundleData</code></a>. Like the historical broker data, the bundle data is split into a short-term and long-term time frame. The information maintained in each time frame:</p><ul><li>Message rate in/out for this bundle</li><li>Message Throughput In/Out for this bundle</li><li>Current number of samples for this bundle</li></ul><p>The time frames are implemented by maintaining the average of these values over a set, a limited number of samples, where the samples are obtained through the message rate and throughput values in the local data. Thus, if the update interval for the local data is 2 minutes, the number of short samples is 10 and the number of long samples is 1000, the short-term data is maintained over a period of <code>10 samples * 2 minutes / sample = 20 minutes</code>, while the long-term data is similarly over a period of 2000 minutes. Whenever there are not enough samples to satisfy a given time frame, the average is taken only over the existing samples. When no samples are available, default values are assumed until they are overwritten by the first sample. Currently, the default values are</p><ul><li>Message rate in/out: 50 messages per second both ways</li><li>Message throughput in/out: 50KB per second both ways</li></ul><p>The bundle data is updated in memory on the leader broker whenever any broker writes their local data to ZooKeeper.
Then, the bundle data is written to ZooKeeper by the leader broker periodically at the same time as the historical broker data, according to the configuration <code>loadBalancerResourceQuotaUpdateIntervalMinutes</code>.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="traffic-distribution">Traffic distribution<a href="#traffic-distribution" class="hash-link" aria-label="Direct link to Traffic distribution" title="Direct link to Traffic distribution"></a></h3><p>The modular load manager uses the abstraction provided by <a href="https://github.com/apache/pulsar/blob/master/pulsar-broker/src/main/java/org/apache/pulsar/broker/loadbalance/ModularLoadManagerStrategy.java" target="_blank" rel="noopener noreferrer"><code>ModularLoadManagerStrategy</code></a> to make decisions about bundle assignments. The strategy makes a decision by considering the service configuration, the entire load data, and the bundle data for the bundle to be assigned. Currently, the only supported strategy is <a href="https://github.com/apache/pulsar/blob/master/pulsar-broker/src/main/java/org/apache/pulsar/broker/loadbalance/impl/LeastLongTermMessageRate.java" target="_blank" rel="noopener noreferrer"><code>LeastLongTermMessageRate</code></a>, though soon users will have the ability to inject their own strategies if desired.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="least-long-term-message-rate-strategy">Least long term message rate strategy<a href="#least-long-term-message-rate-strategy" class="hash-link" aria-label="Direct link to Least long term message rate strategy" title="Direct link to Least long term message rate strategy"></a></h3><p>As its name suggests, the least long-term message rate strategy attempts to distribute bundles across brokers so that
the message rate in the long-term time window for each broker is roughly the same. However, simply balancing load based
on message rate does not handle the issue of asymmetric resource burden per message on each broker. Thus, the system
resource usages, which are CPU, memory, direct memory, bandwidth in, and bandwidth out, are also considered in the
assignment process. This is done by weighting the final message rate according to
<code>1 / (overload_threshold - max_usage)</code>, where <code>overload_threshold</code> corresponds to the configuration
<code>loadBalancerBrokerOverloadedThresholdPercentage</code> and <code>max_usage</code> is the maximum proportion among the system resources that are being utilized by the candidate broker. This multiplier ensures that machines with are being more heavily taxed
by the same message rates will receive less load. In particular, it tries to ensure that if one machine is overloaded,
then all machines are approximately overloaded. In the case in which a broker&#x27;s max usage exceeds the overload
threshold, that broker is not considered for bundle assignment. If all brokers are overloaded, the bundle is randomly
assigned.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="enablement">Enablement<a href="#enablement" class="hash-link" aria-label="Direct link to Enablement" title="Direct link to Enablement"></a></h2><p>You can enable a simple, modular, or extensible load manager by following the steps below.</p><div class="theme-admonition theme-admonition-note alert alert--secondary admonition_LlT9"><div class="admonitionHeading_tbUL"><span class="admonitionIcon_kALy"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"></path></svg></span>note</div><div class="admonitionContent_S0QG"><p>For simple and modular load managers:</p><ul><li><p>Any mistakes in specifying the load manager will cause Pulsar to default to <code>SimpleLoadManagerImpl</code>. </p></li><li><p>If you do not specify load manager, the default load manager (<code>ModularLoadManagerImpl</code>) is used.</p></li></ul></div></div><h3 class="anchor anchorWithStickyNavbar_LWe7" id="enable-simple-load-manager">Enable simple load manager<a href="#enable-simple-load-manager" class="hash-link" aria-label="Direct link to Enable simple load manager" title="Direct link to Enable simple load manager"></a></h3><p>You can enable the simple load manager using one of the following methods: </p><ul><li><p>Method 1</p><p>Update the value of <a href="https://github.com/apache/pulsar/blob/782e91fe327efe2c9c9107d6c679c2837d43935b/conf/broker.conf#L1309" target="_blank" rel="noopener noreferrer">loadManagerClassName</a> to <code>org.apache.pulsar.broker.loadbalance.impl.SimpleLoadManagerImpl</code> in <code>conf/broker.conf</code>.</p></li><li><p>Method 2</p><p>Use the <code>pulsar-admin</code> tool. </p><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><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:#F8F8F2"><span class="token plain">pulsar-admin brokers update-dynamic-config </span><span class="token punctuation" style="color:rgb(248, 248, 242)">\</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">--config loadManagerClassName </span><span class="token punctuation" style="color:rgb(248, 248, 242)">\</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">--value org.apache.pulsar.broker.loadbalance.impl.SimpleLoadManagerImpl</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 class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path 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 class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path 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><h3 class="anchor anchorWithStickyNavbar_LWe7" id="enable-modular-load-manager">Enable modular load manager<a href="#enable-modular-load-manager" class="hash-link" aria-label="Direct link to Enable modular load manager" title="Direct link to Enable modular load manager"></a></h3><p>You can enable the modular load manager using one of the following methods: </p><ul><li><p>Method 1</p><p>Update the value of <a href="https://github.com/apache/pulsar/blob/782e91fe327efe2c9c9107d6c679c2837d43935b/conf/broker.conf#L1309" target="_blank" rel="noopener noreferrer">loadManagerClassName</a> to <code>org.apache.pulsar.broker.loadbalance.impl.ModularLoadManagerImpl</code> in <code>conf/broker.conf</code>.</p></li><li><p>Method 2</p><p>Use the <code>pulsar-admin</code> tool. </p><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><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:#F8F8F2"><span class="token plain">pulsar-admin brokers update-dynamic-config </span><span class="token punctuation" style="color:rgb(248, 248, 242)">\</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">--config loadManagerClassName </span><span class="token punctuation" style="color:rgb(248, 248, 242)">\</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">--value org.apache.pulsar.broker.loadbalance.impl.ModularLoadManagerImpl</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 class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path 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 class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path 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><h3 class="anchor anchorWithStickyNavbar_LWe7" id="enable-extensible-load-manager">Enable extensible load manager<a href="#enable-extensible-load-manager" class="hash-link" aria-label="Direct link to Enable extensible load manager" title="Direct link to Enable extensible load manager"></a></h3><p>You can enable the extensible load manager by updating the value of <a href="https://github.com/apache/pulsar/blob/782e91fe327efe2c9c9107d6c679c2837d43935b/conf/broker.conf#L1309" target="_blank" rel="noopener noreferrer">loadManagerClassName</a> to <code>org.apache.pulsar.broker.loadbalance.extensions.ExtensibleLoadManagerImpl</code> in <code>conf/broker.conf</code>.</p><div class="theme-admonition theme-admonition-note alert alert--secondary admonition_LlT9"><div class="admonitionHeading_tbUL"><span class="admonitionIcon_kALy"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"></path></svg></span>note</div><div class="admonitionContent_S0QG"><p>The <a href="/docs/3.2.x/reference-cli-tools/">pulsar-admin tool</a> is not supported for enabling the extensible load manager.</p></div></div><h2 class="anchor anchorWithStickyNavbar_LWe7" id="verification">Verification<a href="#verification" class="hash-link" aria-label="Direct link to Verification" title="Direct link to Verification"></a></h2><p>If you want to verify which load manager is used, follow the steps below.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="step-1-check-loadmanagerclassname">Step 1: check loadManagerClassName<a href="#step-1-check-loadmanagerclassname" class="hash-link" aria-label="Direct link to Step 1: check loadManagerClassName" title="Direct link to Step 1: check loadManagerClassName"></a></h3><p>You can use the <code>pulsar-admin</code> tool to examine the <code>loadManagerClassName</code> element.</p><p><strong>Input</strong></p><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">bin/pulsar-admin brokers get-all-dynamic-config</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 class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path 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 class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p><strong>Output</strong></p><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token string" style="color:rgb(255, 121, 198)">&quot;loadManagerClassName&quot;</span><span class="token plain"> </span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">:</span><span class="token plain"> </span><span class="token string" style="color:rgb(255, 121, 198)">&quot;org.apache.pulsar.broker.loadbalance.impl.ModularLoadManagerImpl&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</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 class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path 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 class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>If there is no <code>loadManagerClassName</code> element, then the value of <a href="https://github.com/apache/pulsar/blob/782e91fe327efe2c9c9107d6c679c2837d43935b/conf/broker.conf#L1309" target="_blank" rel="noopener noreferrer">loadManagerClassName</a> in the <code>conf/broker.conf</code> file is used.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="step-2-verify-load-manager-optional">Step 2: verify load manager (optional)<a href="#step-2-verify-load-manager-optional" class="hash-link" aria-label="Direct link to Step 2: verify load manager (optional)" title="Direct link to Step 2: verify load manager (optional)"></a></h3><p>To double-check which load manager is used, you can <a href="#method-1-check-zookeeper-load-report">check the ZooKeeper load report</a> or <a href="#method-2-check-monitor-brokers-output">check monitor-brokers output</a>. </p><h4 class="anchor anchorWithStickyNavbar_LWe7" id="method-1-check-load-report">Method 1: check load report<a href="#method-1-check-load-report" class="hash-link" aria-label="Direct link to Method 1: check load report" title="Direct link to Method 1: check load report"></a></h4><p>Different load managers have different load reports. You can verify which load manager is used based on the output.</p><div class="tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">Simple</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">Modular</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">Extensible</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><p>You can check ZooKeeper load reports.</p><ol><li><p>Connect to ZooKeeper.</p><p><strong>Input</strong></p><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">bin/pulsar zookeeper-shell -server zookeeper:2181</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 class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path 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 class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p><strong>Output</strong></p><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">Connecting to zookeeper:2181</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token number">2023</span><span class="token plain">-08-02T12:48:58,655+0000 </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">main</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"> INFO org.apache.zookeeper.ZooKeeper - Client environment:zookeeper.version</span><span class="token operator">=</span><span class="token number">3.8</span><span class="token plain">.1-74db005175a4ec545697012f9069cb9dcc8cdda7, built on </span><span class="token number">2023</span><span class="token plain">-01-25 </span><span class="token number">16</span><span class="token plain">:31 UTC</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token number">2023</span><span class="token plain">-08-02T12:48:58,662+0000 </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">main</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"> INFO org.apache.zookeeper.ZooKeeper - Client environment:host.name</span><span class="token operator">=</span><span class="token plain">broker-1</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token number">2023</span><span class="token plain">-08-02T12:48:58,662+0000 </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">main</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"> INFO org.apache.zookeeper.ZooKeeper - Client environment:java.version</span><span class="token operator">=</span><span class="token number">17.0</span><span class="token plain">.7</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token number">2023</span><span class="token plain">-08-02T12:48:58,662+0000 </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">main</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"> INFO org.apache.zookeeper.ZooKeeper - Client environment:java.vendor</span><span class="token operator">=</span><span class="token plain">Eclipse Adoptium</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token number">2023</span><span class="token plain">-08-02T12:48:58,662+0000 </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">main</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"> INFO org.apache.zookeeper.ZooKeeper - Client environment:java.home</span><span class="token operator">=</span><span class="token plain">/usr/lib/jvm/temurin-17-jdk-amd64</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 class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path 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 class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path 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>List all brokers.</p><p><strong>Input</strong></p><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token function" style="color:rgb(80, 250, 123)">ls</span><span class="token plain"> /loadbalance/brokers</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 class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path 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 class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p><strong>Output</strong></p><p>This output shows that there are 2 brokers.</p><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">broker-1:8080, broker-2:8080</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</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 class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path 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 class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path 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>Check ZooKeeper load report for broker 1. The load report in <code>/loadbalance/brokers/...</code>. </p><p><strong>Input</strong></p><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">get /loadbalance/brokers/broker-1:8080</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 class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path 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 class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p><strong>Output</strong></p><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;name&quot;</span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">:</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;broker-1:8080&quot;</span><span class="token plain">,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;brokerVersionString&quot;</span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">:</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;3.1.0-SNAPSHOT&quot;</span><span class="token plain">,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;webServiceUrl&quot;</span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">:</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;http://broker-1:8080&quot;</span><span class="token plain">,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;pulsarServiceUrl&quot;</span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">:</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;pulsar://broker-1:6650&quot;</span><span class="token plain">,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;persistentTopicsEnabled&quot;</span><span class="token plain">:true,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;nonPersistentTopicsEnabled&quot;</span><span class="token plain">:true,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;timestamp&quot;</span><span class="token plain">:1691042931108,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;msgRateIn&quot;</span><span class="token plain">:0.0,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;msgRateOut&quot;</span><span class="token plain">:0.0,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;numTopics&quot;</span><span class="token plain">:0,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;numConsumers&quot;</span><span class="token plain">:0,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;numProducers&quot;</span><span class="token plain">:0,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;numBundles&quot;</span><span class="token plain">:0,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;protocols&quot;</span><span class="token plain">:</span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain">,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;loadManagerClassName&quot;</span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">:</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;org.apache.pulsar.broker.loadbalance.impl.SimpleLoadManagerImpl&quot;</span><span class="token plain">,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;startTimestamp&quot;</span><span class="token plain">:1691042931108,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;systemResourceUsage&quot;</span><span class="token plain">:</span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;bandwidthIn&quot;</span><span class="token plain">:</span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;usage&quot;</span><span class="token plain">:0.595387281695773,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;limit&quot;</span><span class="token plain">:1.0E7</span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain">,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;bandwidthOut&quot;</span><span class="token plain">:</span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;usage&quot;</span><span class="token plain">:0.5799226769764033,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;limit&quot;</span><span class="token plain">:1.0E7</span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain">,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;cpu&quot;</span><span class="token plain">:</span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;usage&quot;</span><span class="token plain">:6.224803359552059,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;limit&quot;</span><span class="token plain">:800.0</span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain">,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;memory&quot;</span><span class="token plain">:</span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;usage&quot;</span><span class="token plain">:152.0,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;limit&quot;</span><span class="token plain">:2096.0</span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain">,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;directMemory&quot;</span><span class="token plain">:</span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;usage&quot;</span><span class="token plain">:0.0,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;limit&quot;</span><span class="token plain">:256.0</span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain">,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;bundleStats&quot;</span><span class="token plain">:</span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain">,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;bundleGains&quot;</span><span class="token plain">:</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain">,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;bundleLosses&quot;</span><span class="token plain">:</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain">,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;allocatedCPU&quot;</span><span class="token plain">:0.0,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;allocatedMemory&quot;</span><span class="token plain">:0.0,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;allocatedBandwidthIn&quot;</span><span class="token plain">:0.0,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;allocatedBandwidthOut&quot;</span><span class="token plain">:0.0,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;allocatedMsgRateIn&quot;</span><span class="token plain">:0.0,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;allocatedMsgRateOut&quot;</span><span class="token plain">:0.0,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;preAllocatedCPU&quot;</span><span class="token plain">:0.0,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;preAllocatedMemory&quot;</span><span class="token plain">:0.0,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;preAllocatedBandwidthIn&quot;</span><span class="token plain">:0.0,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;preAllocatedBandwidthOut&quot;</span><span class="token plain">:0.0,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;preAllocatedMsgRateIn&quot;</span><span class="token plain">:0.0,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;preAllocatedMsgRateOut&quot;</span><span class="token plain">:0.0,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;underLoaded&quot;</span><span class="token plain">:true,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;overLoaded&quot;</span><span class="token plain">:false,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;loadReportType&quot;</span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">:</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;LoadReport&quot;</span><span class="token plain">,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;msgThroughputIn&quot;</span><span class="token plain">:0.0,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;msgThroughputOut&quot;</span><span class="token plain">:0.0,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;bandwidthIn&quot;</span><span class="token plain">:</span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;usage&quot;</span><span class="token plain">:0.595387281695773,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;limit&quot;</span><span class="token plain">:1.0E7</span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain">,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;bandwidthOut&quot;</span><span class="token plain">:</span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;usage&quot;</span><span class="token plain">:0.5799226769764033,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;limit&quot;</span><span class="token plain">:1.0E7</span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain">,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;memory&quot;</span><span class="token plain">:</span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;usage&quot;</span><span class="token plain">:152.0,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;limit&quot;</span><span class="token plain">:2096.0</span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain">,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;cpu&quot;</span><span class="token plain">:</span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;usage&quot;</span><span class="token plain">:6.224803359552059,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;limit&quot;</span><span class="token plain">:800.0</span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain">,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;directMemory&quot;</span><span class="token plain">:</span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;usage&quot;</span><span class="token plain">:0.0,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;limit&quot;</span><span class="token plain">:256.0</span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain">,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;lastUpdate&quot;</span><span class="token plain">:1691042931108</span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</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 class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path 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 class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div></li></ol></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><p>You can check ZooKeeper load reports.</p><ol><li><p>Connect to ZooKeeper.</p><p><strong>Input</strong></p><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">bin/pulsar zookeeper-shell -server zookeeper:2181</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 class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path 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 class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p><strong>Output</strong></p><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">Connecting to zookeeper:2181</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token number">2023</span><span class="token plain">-08-02T12:48:58,655+0000 </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">main</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"> INFO org.apache.zookeeper.ZooKeeper - Client environment:zookeeper.version</span><span class="token operator">=</span><span class="token number">3.8</span><span class="token plain">.1-74db005175a4ec545697012f9069cb9dcc8cdda7, built on </span><span class="token number">2023</span><span class="token plain">-01-25 </span><span class="token number">16</span><span class="token plain">:31 UTC</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token number">2023</span><span class="token plain">-08-02T12:48:58,662+0000 </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">main</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"> INFO org.apache.zookeeper.ZooKeeper - Client environment:host.name</span><span class="token operator">=</span><span class="token plain">broker-1</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token number">2023</span><span class="token plain">-08-02T12:48:58,662+0000 </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">main</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"> INFO org.apache.zookeeper.ZooKeeper - Client environment:java.version</span><span class="token operator">=</span><span class="token number">17.0</span><span class="token plain">.7</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token number">2023</span><span class="token plain">-08-02T12:48:58,662+0000 </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">main</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"> INFO org.apache.zookeeper.ZooKeeper - Client environment:java.vendor</span><span class="token operator">=</span><span class="token plain">Eclipse Adoptium</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token number">2023</span><span class="token plain">-08-02T12:48:58,662+0000 </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">main</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"> INFO org.apache.zookeeper.ZooKeeper - Client environment:java.home</span><span class="token operator">=</span><span class="token plain">/usr/lib/jvm/temurin-17-jdk-amd64</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 class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path 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 class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path 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>List all brokers.</p><p><strong>Input</strong></p><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token function" style="color:rgb(80, 250, 123)">ls</span><span class="token plain"> /loadbalance/brokers</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 class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path 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 class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p><strong>Output</strong></p><p>This output shows that there are 2 brokers.</p><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">broker-1:8080, broker-2:8080</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</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 class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path 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 class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path 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>Check ZooKeeper load report for broker 1. The load report in <code>/loadbalance/brokers/...</code>. </p><p><strong>Input</strong></p><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">get /loadbalance/brokers/broker-1:8080</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 class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path 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 class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p><strong>Output</strong></p><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;webServiceUrl&quot;</span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">:</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;http://broker-1:8080&quot;</span><span class="token plain">,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;pulsarServiceUrl&quot;</span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">:</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;pulsar://broker-1:6650&quot;</span><span class="token plain">,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;persistentTopicsEnabled&quot;</span><span class="token plain">:true,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;nonPersistentTopicsEnabled&quot;</span><span class="token plain">:true,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;cpu&quot;</span><span class="token plain">:</span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;usage&quot;</span><span class="token plain">:7.311714728372232,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;limit&quot;</span><span class="token plain">:800.0</span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain">,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;memory&quot;</span><span class="token plain">:</span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;usage&quot;</span><span class="token plain">:124.0,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;limit&quot;</span><span class="token plain">:2096.0</span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain">,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;directMemory&quot;</span><span class="token plain">:</span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;usage&quot;</span><span class="token plain">:36.0,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;limit&quot;</span><span class="token plain">:256.0</span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain">,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;bandwidthIn&quot;</span><span class="token plain">:</span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;usage&quot;</span><span class="token plain">:0.8324254085661579,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;limit&quot;</span><span class="token plain">:1.0E7</span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain">,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;bandwidthOut&quot;</span><span class="token plain">:</span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;usage&quot;</span><span class="token plain">:0.7155446715644209,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;limit&quot;</span><span class="token plain">:1.0E7</span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain">,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;msgThroughputIn&quot;</span><span class="token plain">:0.0,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;msgThroughputOut&quot;</span><span class="token plain">:0.0,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;msgRateIn&quot;</span><span class="token plain">:0.0,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;msgRateOut&quot;</span><span class="token plain">:0.0,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;lastUpdate&quot;</span><span class="token plain">:1690979816792,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;lastStats&quot;</span><span class="token plain">:</span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;my-tenant/my-namespace/0x4ccccccb_0x66666664&quot;</span><span class="token plain">:</span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;msgRateIn&quot;</span><span class="token plain">:0.0,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;msgThroughputIn&quot;</span><span class="token plain">:0.0,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;msgRateOut&quot;</span><span class="token plain">:0.0,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;msgThroughputOut&quot;</span><span class="token plain">:0.0,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;consumerCount&quot;</span><span class="token plain">:2,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;producerCount&quot;</span><span class="token plain">:0,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;topics&quot;</span><span class="token plain">:1,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;cacheSize&quot;</span><span class="token plain">:0</span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain">,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;numTopics&quot;</span><span class="token plain">:1,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;numBundles&quot;</span><span class="token plain">:1,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;numConsumers&quot;</span><span class="token plain">:2,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;numProducers&quot;</span><span class="token plain">:0,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;bundles&quot;</span><span class="token plain">:</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;my-tenant/my-namespace/0x4ccccccb_0x66666664&quot;</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain">,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;lastBundleGains&quot;</span><span class="token plain">:</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain">,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;lastBundleLosses&quot;</span><span class="token plain">:</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain">,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;brokerVersionString&quot;</span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">:</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;3.1.0-SNAPSHOT&quot;</span><span class="token plain">,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;protocols&quot;</span><span class="token plain">:</span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain">,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;advertisedListeners&quot;</span><span class="token plain">:</span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;internal&quot;</span><span class="token plain">:</span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;brokerServiceUrl&quot;</span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">:</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;pulsar://broker-1:6650&quot;</span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain">,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;loadManagerClassName&quot;</span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">:</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;org.apache.pulsar.broker.loadbalance.impl.ModularLoadManagerImpl&quot;</span><span class="token plain">,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;startTimestamp&quot;</span><span class="token plain">:1690940955211,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;maxResourceUsage&quot;</span><span class="token plain">:0.140625,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;loadReportType&quot;</span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">:</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;LocalBrokerData&quot;</span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</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 class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path 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 class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div></li></ol></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><div class="theme-admonition theme-admonition-note alert alert--secondary admonition_LlT9"><div class="admonitionHeading_tbUL"><span class="admonitionIcon_kALy"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"></path></svg></span>note</div><div class="admonitionContent_S0QG"><p><a href="/docs/3.2.x/develop-load-manager/concepts-broker-load-balancing-types.md/">Extensible load manager</a> does not have the ZooKeepr load report because its internal stats are stored in system topics rather than ZooKeeper.</p></div></div><p>You can check load report from system topics using the <a href="/docs/3.2.x/develop-load-manager/reference-cli-tools.md/">pulsar-client tool</a>.</p><p><strong>Input</strong></p><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">bin/pulsar-client consume non-persistent://pulsar/system/loadbalancer-broker-load-data --subscription-name </span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">test</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 class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path 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 class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p><strong>Output</strong></p><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token number">2023</span><span class="token plain">-08-03T06:21:48,841+0000 </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">pulsar-client-io-1-3</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"> INFO org.apache.pulsar.client.impl.ConnectionPool - </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">id: 0x69a65535, L:/127.0.0.1:59086 - R:localhost/127.0.0.1:6650</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"> Connected to server</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token number">2023</span><span class="token plain">-08-03T06:21:48,926+0000 </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">pulsar-client-io-1-3</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"> WARN org.apache.pulsar.client.impl.ConsumerImpl - </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">non-persistent://pulsar/system/loadbalancer-broker-load-data</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"> Cannot create a </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">Durable</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"> subscription </span><span class="token keyword" style="color:rgb(189, 147, 249);font-style:italic">for</span><span class="token plain"> a NonPersistentTopic, will use </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">NonDurable</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"> to subscribe. Subscription name: </span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">test</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token number">2023</span><span class="token plain">-08-03T06:21:49,189+0000 </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">pulsar-client-io-1-3</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"> INFO org.apache.pulsar.client.impl.ConsumerStatsRecorderImpl - Starting Pulsar consumer status recorder with config: </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;topicNames&quot;</span><span class="token plain">:</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;non-persistent://pulsar/system/loadbalancer-broker-load-data&quot;</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain">,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;topicsPattern&quot;</span><span class="token plain">:null,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;subscriptionName&quot;</span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">:</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;test&quot;</span><span class="token plain">,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;subscriptionType&quot;</span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">:</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;Exclusive&quot;</span><span class="token plain">,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;subscriptionProperties&quot;</span><span class="token plain">:null,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;subscriptionMode&quot;</span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">:</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;NonDurable&quot;</span><span class="token plain">,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;receiverQueueSize&quot;</span><span class="token plain">:1000,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;acknowledgementsGroupTimeMicros&quot;</span><span class="token plain">:100000,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;maxAcknowledgmentGroupSize&quot;</span><span class="token plain">:1000,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;negativeAckRedeliveryDelayMicros&quot;</span><span class="token plain">:60000000,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;maxTotalReceiverQueueSizeAcrossPartitions&quot;</span><span class="token plain">:50000,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;consumerName&quot;</span><span class="token plain">:null,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;ackTimeoutMillis&quot;</span><span class="token plain">:0,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;tickDurationMillis&quot;</span><span class="token plain">:1000,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;priorityLevel&quot;</span><span class="token plain">:0,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;maxPendingChunkedMessage&quot;</span><span class="token plain">:10,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;autoAckOldestChunkedMessageOnQueueFull&quot;</span><span class="token plain">:false,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;expireTimeOfIncompleteChunkedMessageMillis&quot;</span><span class="token plain">:60000,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;cryptoFailureAction&quot;</span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">:</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;FAIL&quot;</span><span class="token plain">,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;properties&quot;</span><span class="token plain">:</span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain">,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;readCompacted&quot;</span><span class="token plain">:false,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;subscriptionInitialPosition&quot;</span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">:</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;Latest&quot;</span><span class="token plain">,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;patternAutoDiscoveryPeriod&quot;</span><span class="token plain">:60,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;regexSubscriptionMode&quot;</span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">:</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;PersistentOnly&quot;</span><span class="token plain">,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;deadLetterPolicy&quot;</span><span class="token plain">:null,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;retryEnable&quot;</span><span class="token plain">:false,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;autoUpdatePartitions&quot;</span><span class="token plain">:true,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;autoUpdatePartitionsIntervalSeconds&quot;</span><span class="token plain">:60,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;replicateSubscriptionState&quot;</span><span class="token plain">:false,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;resetIncludeHead&quot;</span><span class="token plain">:false,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;batchIndexAckEnabled&quot;</span><span class="token plain">:false,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;ackReceiptEnabled&quot;</span><span class="token plain">:false,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;poolMessages&quot;</span><span class="token plain">:true,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;startPaused&quot;</span><span class="token plain">:false,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;autoScaledReceiverQueueSizeEnabled&quot;</span><span class="token plain">:false,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;topicConfigurations&quot;</span><span class="token plain">:</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain">,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;maxPendingChuckedMessage&quot;</span><span class="token plain">:10</span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token number">2023</span><span class="token plain">-08-03T06:21:49,214+0000 </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">pulsar-client-io-1-3</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"> INFO org.apache.pulsar.client.impl.ConsumerStatsRecorderImpl - Pulsar client config: </span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;serviceUrl&quot;</span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">:</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;pulsar://localhost:6650/&quot;</span><span class="token plain">,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;authPluginClassName&quot;</span><span class="token plain">:null,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;authParams&quot;</span><span class="token plain">:null,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;authParamMap&quot;</span><span class="token plain">:null,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;operationTimeoutMs&quot;</span><span class="token plain">:30000,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;lookupTimeoutMs&quot;</span><span class="token plain">:30000,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;statsIntervalSeconds&quot;</span><span class="token plain">:60,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;numIoThreads&quot;</span><span class="token plain">:8,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;numListenerThreads&quot;</span><span class="token plain">:8,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;connectionsPerBroker&quot;</span><span class="token plain">:1,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;connectionMaxIdleSeconds&quot;</span><span class="token plain">:180,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;useTcpNoDelay&quot;</span><span class="token plain">:true,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;useTls&quot;</span><span class="token plain">:false,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;tlsKeyFilePath&quot;</span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">:</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;&quot;</span><span class="token plain">,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;tlsCertificateFilePath&quot;</span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">:</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;&quot;</span><span class="token plain">,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;tlsTrustCertsFilePath&quot;</span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">:</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;&quot;</span><span class="token plain">,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;tlsAllowInsecureConnection&quot;</span><span class="token plain">:false,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;tlsHostnameVerificationEnable&quot;</span><span class="token plain">:false,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;concurrentLookupRequest&quot;</span><span class="token plain">:5000,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;maxLookupRequest&quot;</span><span class="token plain">:50000,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;maxLookupRedirects&quot;</span><span class="token plain">:20,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;maxNumberOfRejectedRequestPerConnection&quot;</span><span class="token plain">:50,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;keepAliveIntervalSeconds&quot;</span><span class="token plain">:30,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;connectionTimeoutMs&quot;</span><span class="token plain">:10000,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;requestTimeoutMs&quot;</span><span class="token plain">:60000,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;readTimeoutMs&quot;</span><span class="token plain">:60000,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;autoCertRefreshSeconds&quot;</span><span class="token plain">:300,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;initialBackoffIntervalNanos&quot;</span><span class="token plain">:100000000,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;maxBackoffIntervalNanos&quot;</span><span class="token plain">:60000000000,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;enableBusyWait&quot;</span><span class="token plain">:false,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;listenerName&quot;</span><span class="token plain">:null,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;useKeyStoreTls&quot;</span><span class="token plain">:false,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;sslProvider&quot;</span><span class="token plain">:null,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;tlsKeyStoreType&quot;</span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">:</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;JKS&quot;</span><span class="token plain">,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;tlsKeyStorePath&quot;</span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">:</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;&quot;</span><span class="token plain">,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;tlsKeyStorePassword&quot;</span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">:</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;*****&quot;</span><span class="token plain">,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;tlsTrustStoreType&quot;</span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">:</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;JKS&quot;</span><span class="token plain">,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;tlsTrustStorePath&quot;</span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">:</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;&quot;</span><span class="token plain">,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;tlsTrustStorePassword&quot;</span><span class="token builtin class-name" style="color:rgb(189, 147, 249)">:</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;*****&quot;</span><span class="token plain">,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;tlsCiphers&quot;</span><span class="token plain">:</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain">,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;tlsProtocols&quot;</span><span class="token plain">:</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain">,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;memoryLimitBytes&quot;</span><span class="token plain">:0,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;proxyServiceUrl&quot;</span><span class="token plain">:null,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;proxyProtocol&quot;</span><span class="token plain">:null,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;enableTransaction&quot;</span><span class="token plain">:false,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;dnsLookupBindAddress&quot;</span><span class="token plain">:null,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;dnsLookupBindPort&quot;</span><span class="token plain">:0,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;socks5ProxyAddress&quot;</span><span class="token plain">:null,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;socks5ProxyUsername&quot;</span><span class="token plain">:null,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;socks5ProxyPassword&quot;</span><span class="token plain">:null,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;description&quot;</span><span class="token plain">:null</span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token number">2023</span><span class="token plain">-08-03T06:21:49,236+0000 </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">pulsar-client-io-1-5</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"> INFO org.apache.pulsar.client.impl.ConnectionPool - </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">id: 0xbeee21f2, L:/172.31.0.4:44850 - R:broker-1/172.31.0.4:6650</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"> Connected to server</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token number">2023</span><span class="token plain">-08-03T06:21:49,241+0000 </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">pulsar-client-io-1-5</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"> INFO org.apache.pulsar.client.impl.ConsumerImpl - </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">non-persistent://pulsar/system/loadbalancer-broker-load-data</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">test</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"> Subscribing to topic on cnx </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">id: 0xbeee21f2, L:/172.31.0.4:44850 - R:broker-1/172.31.0.4:6650</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain">, consumerId </span><span class="token number">0</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token number">2023</span><span class="token plain">-08-03T06:21:49,273+0000 </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">pulsar-client-io-1-5</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"> INFO org.apache.pulsar.client.impl.ConsumerImpl - </span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">non-persistent://pulsar/system/loadbalancer-broker-load-data</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">test</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain"> Subscribed to topic on broker-1/172.31.0.4:6650 -- consumer: </span><span class="token number">0</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">----- got message -----</span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain">key:</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token plain">broker-1:8080</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain">, properties:</span><span class="token punctuation" style="color:rgb(248, 248, 242)">[</span><span class="token punctuation" style="color:rgb(248, 248, 242)">]</span><span class="token plain">, content:</span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;cpu&quot;</span><span class="token plain">:</span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;usage&quot;</span><span class="token plain">:14.397985201479854,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;limit&quot;</span><span class="token plain">:800.0</span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain">,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;memory&quot;</span><span class="token plain">:</span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;usage&quot;</span><span class="token plain">:300.0,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;limit&quot;</span><span class="token plain">:2096.0</span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain">,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;directMemory&quot;</span><span class="token plain">:</span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;usage&quot;</span><span class="token plain">:40.0,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;limit&quot;</span><span class="token plain">:256.0</span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain">,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;bandwidthIn&quot;</span><span class="token plain">:</span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;usage&quot;</span><span class="token plain">:0.7817884878178855,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;limit&quot;</span><span class="token plain">:1.0E7</span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain">,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;bandwidthOut&quot;</span><span class="token plain">:</span><span class="token punctuation" style="color:rgb(248, 248, 242)">{</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;usage&quot;</span><span class="token plain">:0.7213945272139455,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;limit&quot;</span><span class="token plain">:1.0E7</span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</span><span class="token plain">,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;msgThroughputIn&quot;</span><span class="token plain">:3.000538680274058,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;msgThroughputOut&quot;</span><span class="token plain">:3.0005621893825616,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;msgRateIn&quot;</span><span class="token plain">:0.03333931866971176,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;msgRateOut&quot;</span><span class="token plain">:0.033339579882028465,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;bundleCount&quot;</span><span class="token plain">:3,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;topics&quot;</span><span class="token plain">:3,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;maxResourceUsage&quot;</span><span class="token plain">:0.15625,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;weightedMaxEMA&quot;</span><span class="token plain">:0.15625,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;msgThroughputEMA&quot;</span><span class="token plain">:38.88925615962549,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;updatedAt&quot;</span><span class="token plain">:1691043751060,</span><span class="token string" style="color:rgb(255, 121, 198)">&quot;reportedAt&quot;</span><span class="token plain">:1691043631073</span><span class="token punctuation" style="color:rgb(248, 248, 242)">}</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 class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path 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 class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div></div></div></div><h4 class="anchor anchorWithStickyNavbar_LWe7" id="method-2-check-monitor-brokers-output">Method 2: check monitor-brokers output<a href="#method-2-check-monitor-brokers-output" class="hash-link" aria-label="Direct link to Method 2: check monitor-brokers output" title="Direct link to Method 2: check monitor-brokers output"></a></h4><p>You can use the <a href="/docs/3.2.x/reference-cli-tools/">pulsar-perf tool</a> to start a broker monitor. </p><p>Different load managers have different outputs. This output is the same as the output of the <a href="#method-1-check-zookeeper-load-report">Method 1: check ZooKeeper load report</a>, but it is well formatted for better readability.</p><div class="tabs-container tabList__CuJ"><ul role="tablist" aria-orientation="horizontal" class="tabs"><li role="tab" tabindex="0" aria-selected="true" class="tabs__item tabItem_LNqP tabs__item--active">Simple</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">Modular</li><li role="tab" tabindex="-1" aria-selected="false" class="tabs__item tabItem_LNqP">Extensible</li></ul><div class="margin-top--md"><div role="tabpanel" class="tabItem_Ymn6"><p><strong>Input</strong></p><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">pulsar-perf monitor-brokers --connect-string </span><span class="token operator">&lt;</span><span class="token plain">zookeeper host:port</span><span class="token operator">&gt;</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 class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path 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 class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p><strong>Output</strong></p><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">=</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token operator">||</span><span class="token plain">COUNT </span><span class="token operator">|</span><span class="token plain">TOPIC </span><span class="token operator">|</span><span class="token plain">BUNDLE </span><span class="token operator">|</span><span class="token plain">PRODUCER </span><span class="token operator">|</span><span class="token plain">CONSUMER </span><span class="token operator">|</span><span class="token plain">BUNDLE + </span><span class="token operator">|</span><span class="token plain">BUNDLE - </span><span class="token operator">||</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token operator">||</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">4</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">4</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">0</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">2</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">0</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">0</span><span class="token plain"> </span><span class="token operator">||</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token operator">||</span><span class="token plain">RAW SYSTEM </span><span class="token operator">|</span><span class="token plain">CPU % </span><span class="token operator">|</span><span class="token plain">MEMORY % </span><span class="token operator">|</span><span class="token plain">DIRECT % </span><span class="token operator">|</span><span class="token plain">BW IN % </span><span class="token operator">|</span><span class="token plain">BW OUT % </span><span class="token operator">|</span><span class="token plain">MAX % </span><span class="token operator">||</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token operator">||</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">0.25</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">47.94</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">0.01</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">0.00</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">0.00</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">47.94</span><span class="token plain"> </span><span class="token operator">||</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token operator">||</span><span class="token plain">ALLOC SYSTEM </span><span class="token operator">|</span><span class="token plain">CPU % </span><span class="token operator">|</span><span class="token plain">MEMORY % </span><span class="token operator">|</span><span class="token plain">DIRECT % </span><span class="token operator">|</span><span class="token plain">BW IN % </span><span class="token operator">|</span><span class="token plain">BW OUT % </span><span class="token operator">|</span><span class="token plain">MAX % </span><span class="token operator">||</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token operator">||</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">0.20</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">1.89</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">1.27</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">3.21</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">3.21</span><span class="token plain"> </span><span class="token operator">||</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token operator">||</span><span class="token plain">RAW MSG </span><span class="token operator">|</span><span class="token plain">MSG/S IN </span><span class="token operator">|</span><span class="token plain">MSG/S OUT </span><span class="token operator">|</span><span class="token plain">TOTAL </span><span class="token operator">|</span><span class="token plain">KB/S IN </span><span class="token operator">|</span><span class="token plain">KB/S OUT </span><span class="token operator">|</span><span class="token plain">TOTAL </span><span class="token operator">||</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token operator">||</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">0.00</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">0.00</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">0.00</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">0.01</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">0.01</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">0.01</span><span class="token plain"> </span><span class="token operator">||</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token operator">||</span><span class="token plain">ALLOC MSG </span><span class="token operator">|</span><span class="token plain">MSG/S IN </span><span class="token operator">|</span><span class="token plain">MSG/S OUT </span><span class="token operator">|</span><span class="token plain">TOTAL </span><span class="token operator">|</span><span class="token plain">KB/S IN </span><span class="token operator">|</span><span class="token plain">KB/S OUT </span><span class="token operator">|</span><span class="token plain">TOTAL </span><span class="token operator">||</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token operator">||</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">54.84</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">134.48</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">189.31</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">126.54</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">320.96</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">447.50</span><span class="token plain"> </span><span class="token operator">||</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">=</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 class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path 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 class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><p><strong>Input</strong></p><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">pulsar-perf monitor-brokers --connect-string </span><span class="token operator">&lt;</span><span class="token plain">zookeeper host:port</span><span class="token operator">&gt;</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 class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path 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 class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p><strong>Output</strong></p><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">=</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token operator">||</span><span class="token plain">SYSTEM </span><span class="token operator">|</span><span class="token plain">CPU % </span><span class="token operator">|</span><span class="token plain">MEMORY % </span><span class="token operator">|</span><span class="token plain">DIRECT % </span><span class="token operator">|</span><span class="token plain">BW IN % </span><span class="token operator">|</span><span class="token plain">BW OUT % </span><span class="token operator">|</span><span class="token plain">MAX % </span><span class="token operator">||</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token operator">||</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">0.00</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">48.33</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">0.01</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">0.00</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">0.00</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">48.33</span><span class="token plain"> </span><span class="token operator">||</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token operator">||</span><span class="token plain">COUNT </span><span class="token operator">|</span><span class="token plain">TOPIC </span><span class="token operator">|</span><span class="token plain">BUNDLE </span><span class="token operator">|</span><span class="token plain">PRODUCER </span><span class="token operator">|</span><span class="token plain">CONSUMER </span><span class="token operator">|</span><span class="token plain">BUNDLE + </span><span class="token operator">|</span><span class="token plain">BUNDLE - </span><span class="token operator">||</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token operator">||</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">4</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">4</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">0</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">2</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">4</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">0</span><span class="token plain"> </span><span class="token operator">||</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token operator">||</span><span class="token plain">LATEST </span><span class="token operator">|</span><span class="token plain">MSG/S IN </span><span class="token operator">|</span><span class="token plain">MSG/S OUT </span><span class="token operator">|</span><span class="token plain">TOTAL </span><span class="token operator">|</span><span class="token plain">KB/S IN </span><span class="token operator">|</span><span class="token plain">KB/S OUT </span><span class="token operator">|</span><span class="token plain">TOTAL </span><span class="token operator">||</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token operator">||</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">0.00</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">0.00</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">0.00</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">0.00</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">0.00</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">0.00</span><span class="token plain"> </span><span class="token operator">||</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token operator">||</span><span class="token plain">SHORT </span><span class="token operator">|</span><span class="token plain">MSG/S IN </span><span class="token operator">|</span><span class="token plain">MSG/S OUT </span><span class="token operator">|</span><span class="token plain">TOTAL </span><span class="token operator">|</span><span class="token plain">KB/S IN </span><span class="token operator">|</span><span class="token plain">KB/S OUT </span><span class="token operator">|</span><span class="token plain">TOTAL </span><span class="token operator">||</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token operator">||</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">0.00</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">0.00</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">0.00</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">0.00</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">0.00</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">0.00</span><span class="token plain"> </span><span class="token operator">||</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token operator">||</span><span class="token plain">LONG </span><span class="token operator">|</span><span class="token plain">MSG/S IN </span><span class="token operator">|</span><span class="token plain">MSG/S OUT </span><span class="token operator">|</span><span class="token plain">TOTAL </span><span class="token operator">|</span><span class="token plain">KB/S IN </span><span class="token operator">|</span><span class="token plain">KB/S OUT </span><span class="token operator">|</span><span class="token plain">TOTAL </span><span class="token operator">||</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token operator">||</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">0.00</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">0.00</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">0.00</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">0.00</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">0.00</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">0.00</span><span class="token plain"> </span><span class="token operator">||</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">=</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 class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path 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 class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div></div><div role="tabpanel" class="tabItem_Ymn6" hidden=""><p><strong>Input</strong></p><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token plain">pulsar-perf monitor-brokers --connect-string pulsar://</span><span class="token operator">&lt;</span><span class="token plain">host:port</span><span class="token operator">&gt;</span><span class="token plain"> --extensions </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 class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path 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 class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p><strong>Output</strong></p><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#F8F8F2;--prism-background-color:#282A36"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#F8F8F2"><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">=</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token operator">||</span><span class="token plain">SYSTEM </span><span class="token operator">|</span><span class="token plain">CPU % </span><span class="token operator">|</span><span class="token plain">MEMORY % </span><span class="token operator">|</span><span class="token plain">DIRECT % </span><span class="token operator">|</span><span class="token plain">BW IN % </span><span class="token operator">|</span><span class="token plain">BW OUT % </span><span class="token operator">|</span><span class="token plain">MAX % </span><span class="token operator">||</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token operator">||</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">17.24</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">12.40</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">26.95</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">0.00</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">0.00</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">26.95</span><span class="token plain"> </span><span class="token operator">||</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token operator">||</span><span class="token plain">COUNT </span><span class="token operator">|</span><span class="token plain">TOPIC </span><span class="token operator">|</span><span class="token plain">BUNDLE </span><span class="token operator">|</span><span class="token plain">PRODUCER </span><span class="token operator">|</span><span class="token plain">CONSUMER </span><span class="token operator">|</span><span class="token plain">BUNDLE + </span><span class="token operator">|</span><span class="token plain">BUNDLE - </span><span class="token operator">||</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token operator">||</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">4</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token operator">|</span><span class="token plain"> </span><span class="token operator">||</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token operator">||</span><span class="token plain">LATEST </span><span class="token operator">|</span><span class="token plain">MSG/S IN </span><span class="token operator">|</span><span class="token plain">MSG/S OUT </span><span class="token operator">|</span><span class="token plain">TOTAL </span><span class="token operator">|</span><span class="token plain">KB/S IN </span><span class="token operator">|</span><span class="token plain">KB/S OUT </span><span class="token operator">|</span><span class="token plain">TOTAL </span><span class="token operator">||</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token operator">||</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">100.02</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">0.02</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">100.03</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">103.89</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">0.01</span><span class="token plain"> </span><span class="token operator">|</span><span class="token number">103.90</span><span class="token plain"> </span><span class="token operator">||</span><span class="token plain"></span><br></span><span class="token-line" style="color:#F8F8F2"><span class="token plain"></span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">==</span><span class="token operator">=</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 class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path 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 class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div></div></div></div>````</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/pulsar-site/edit/main/versioned_docs/version-3.2.x/develop-load-manager.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/3.2.x/developing-binary-protocol/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Binary protocol</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/docs/3.2.x/develop-plugin/"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Plugin</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_jeP5 thin-scrollbar theme-doc-toc-desktop"><div class="border"><div style="color:var(--ifm-toc-link-color)">Was this helpful?</div><div style="border-width:1px;padding:3px;display:flex"><div style="justify-content:center;display:flex;border-radius:99999px;width:2.5rem;height:2.5rem;cursor:pointer;background:;color:"><svg style="width:initial;height:initial" width="12" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M10.086 1.594A1 1 0 0 1 11 1a4 4 0 0 1 4 4v3h4.655a3 3 0 0 1 2.994 3.45l-1.38 9A3.002 3.002 0 0 1 18.275 23H4a3 3 0 0 1-3-3v-7a3 3 0 0 1 3-3h2.35l3.736-8.406ZM8 11.212l3.608-8.117A2 2 0 0 1 13 5v4a1 1 0 0 0 1 1h5.671a1 1 0 0 1 1 1.15l-1.38 9a1 1 0 0 1-1 .85H8v-9.788ZM6 21v-9H4a1 1 0 0 0-1 1v7a1 1 0 0 0 1 1h2Z" fill="currentColor"></path></svg></div><div style="justify-content:center;display:flex;border-radius:99999px;width:2.5rem;height:2.5rem;cursor:pointer;background:;color:"><svg style="width:initial;height:initial" width="12" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M20.563 3.316A1.31 1.31 0 0 0 19.687 3h-1.688v9h1.688a1.31 1.31 0 0 0 1.312-1.077V4.077a1.31 1.31 0 0 0-.436-.761ZM16 12.788l-3.608 8.117A1.999 1.999 0 0 1 11 19v-4a1 1 0 0 0-1-1H4.328a1.002 1.002 0 0 1-1-1.15l1.38-9a1 1 0 0 1 1-.85h10.291v9.788ZM19.661 1a3.31 3.31 0 0 1 3.329 2.866c.006.044.01.09.01.134v7c0 .045-.004.09-.01.134A3.31 3.31 0 0 1 19.661 14h-2.012l-3.736 8.406a1 1 0 0 1-.914.594 4 4 0 0 1-4-4v-3H4.344a3 3 0 0 1-2.994-3.45l1.38-9A3.002 3.002 0 0 1 5.724 1h13.937Z" fill="currentColor"></path></svg></div></div><div class="Actions_uugI"><a target="_blank" class="Action_iBHd" href="https://github.com/apache/pulsar/issues/new?assignees=&amp;labels=doc-required&amp;projects=&amp;template=doc.yml&amp;title=%5BDoc%5D+">💡 Suggest changes</a><a target="_blank" class="Action_iBHd" href="https://github.com/apache/pulsar/discussions/new?category=q-a">🛟 Get support</a></div></div><ul class="table-of-contents table-of-contents__left-border"><li><a href="#concepts" class="table-of-contents__link toc-highlight">Concepts</a><ul><li><a href="#data" class="table-of-contents__link toc-highlight">Data</a></li><li><a href="#broker" class="table-of-contents__link toc-highlight">Broker</a></li><li><a href="#lead-broker" class="table-of-contents__link toc-highlight">Lead broker</a></li><li><a href="#local-broker-data" class="table-of-contents__link toc-highlight">Local broker data</a></li><li><a href="#historical-broker-data" class="table-of-contents__link toc-highlight">Historical broker data</a></li><li><a href="#bundle-data" class="table-of-contents__link toc-highlight">Bundle data</a></li><li><a href="#traffic-distribution" class="table-of-contents__link toc-highlight">Traffic distribution</a></li><li><a href="#least-long-term-message-rate-strategy" class="table-of-contents__link toc-highlight">Least long term message rate strategy</a></li></ul></li><li><a href="#enablement" class="table-of-contents__link toc-highlight">Enablement</a><ul><li><a href="#enable-simple-load-manager" class="table-of-contents__link toc-highlight">Enable simple load manager</a></li><li><a href="#enable-modular-load-manager" class="table-of-contents__link toc-highlight">Enable modular load manager</a></li><li><a href="#enable-extensible-load-manager" class="table-of-contents__link toc-highlight">Enable extensible load manager</a></li></ul></li><li><a href="#verification" class="table-of-contents__link toc-highlight">Verification</a><ul><li><a href="#step-1-check-loadmanagerclassname" class="table-of-contents__link toc-highlight">Step 1: check loadManagerClassName</a></li><li><a href="#step-2-verify-load-manager-optional" class="table-of-contents__link toc-highlight">Step 2: verify load manager (optional)</a></li></ul></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title"></div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://www.apache.org/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Foundation<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/events/current-event.html" target="_blank" rel="noopener noreferrer" class="footer__link-item">Events<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"></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">License<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" 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" 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 class="col footer__col"><div class="footer__title"></div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/security/">Security</a></li><li class="footer__item"><a href="https://www.apache.org/foundation/policies/privacy.html" target="_blank" rel="noopener noreferrer" class="footer__link-item">Privacy<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 class="footer__link-item" href="/contact/">Contact</a></li></ul></div><div class="col footer__col"><div class="footer__title"></div><ul class="footer__items clean-list"><li class="footer__item">
<div class="social-icons">
<a target="_blank" href="https://communityinviter.com/apps/apache-pulsar/apache-pulsar" aria-label="Join the Apache Pulsar Slack workspace">
<img alt="Slack logo" src="/img/slack-white.svg" width="26">
</a>
<a target="_blank" href="https://github.com/apache/pulsar/" aria-label="View the Apache Pulsar project on GitHub">
<img alt="GitHub logo" src="/img/github-white.svg" width="26">
</a>
</div>
</li></ul></div></div><div class="footer__bottom text--center"><div class="margin-bottom--sm"><a class="footerLogoLink_BH7S" href="/"><img src="/img/pulsar-white.svg" alt="Pulsar Logo" class="themedImage_ToTc themedImage--light_HNdA footer__logo"><img src="/img/pulsar-white.svg" alt="Pulsar Logo" class="themedImage_ToTc themedImage--dark_i4oU footer__logo"></a></div><div class="footer__copyright">
<div>
<img class="footer-apache-logo" src="/img/feather-logo-white.svg" alt="" width="20">
The Apache Software Foundation
</div>
<p>Apache Pulsar is available under the Apache License, version 2.0. Apache Pulsar is an open-source, distributed messaging and streaming platform built for the cloud.</p>
<p>Copyright © 2024 The Apache Software Foundation. All Rights Reserved. Apache, Pulsar, Apache Pulsar, and the Apache feather logo are trademarks or registered trademarks of The Apache Software Foundation.</p>
</div></div></div></footer></div>
<script src="/assets/js/runtime~main.1d0ed2a7.js"></script>
<script src="/assets/js/main.e07a0c68.js"></script>
</body>
</html>