blob: eb05a16850bb6632bcbbddbe2459297c22811e8e [file] [log] [blame]
<!doctype html>
<html lang="en" dir="ltr" class="blog-wrapper blog-post-page plugin-blog plugin-id-default">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v2.4.0">
<title data-rh="true">What’s New in Apache Pulsar 2.10.1 | 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/blog/2022/07/12/Apache-Pulsar-2-10-1/"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:docusaurus_tag" content="default"><meta data-rh="true" property="og:title" content="What’s New in Apache Pulsar 2.10.1 | Apache Pulsar"><meta data-rh="true" name="description" content="The Apache Pulsar community releases version 2.10.1! 50 contributors provided improvements and bug fixes that delivered 200+ commits. Thanks for all your contributions."><meta data-rh="true" property="og:description" content="The Apache Pulsar community releases version 2.10.1! 50 contributors provided improvements and bug fixes that delivered 200+ commits. Thanks for all your contributions."><meta data-rh="true" property="og:type" content="article"><meta data-rh="true" property="article:published_time" content="2022-07-12T00:00:00.000Z"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://pulsar.apache.org/blog/2022/07/12/Apache-Pulsar-2-10-1/"><link data-rh="true" rel="alternate" href="https://pulsar.apache.org/blog/2022/07/12/Apache-Pulsar-2-10-1/" hreflang="en"><link data-rh="true" rel="alternate" href="https://pulsar.apache.org/blog/2022/07/12/Apache-Pulsar-2-10-1/" hreflang="x-default"><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 class="navbar__item navbar__link" 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 aria-current="page" class="dropdown__link dropdown__link--active" 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"><div class="container margin-top--lg"><div class="row"><main class="col col--12" itemscope="" itemtype="https://schema.org/Blog"><article class="BlogContainerPost_N_n1" itemprop="blogPost" itemscope="" itemtype="https://schema.org/BlogPosting"><header><div><h1 class="title_xvU1" itemprop="headline">What’s New in Apache Pulsar 2.10.1</h1><div class="row"><div class="col authorCol_q4o9"><div class="avatar"><div class="avatar__intro" itemprop="author" itemscope="" itemtype="https://schema.org/Person"><div class="avatar__name"><span itemprop="name">codelipenghui, momo-jun</span></div></div></div></div></div><div class="container_iJTo"><time datetime="2022-07-12T00:00:00.000Z" itemprop="datePublished">July 12, 2022</time> · <!-- -->4 min read</div></div></header><div id="post-content" class="markdown" itemprop="articleBody"><p>The Apache Pulsar community releases version 2.10.1! 50 contributors provided improvements and bug fixes that delivered 200+ commits. Thanks for all your contributions.</p><p>The highlight of the 2.10.1 release is introducing 30+ transaction fixes and improvements. Earlier-adoption users of Pulsar transactions have documented long-term use in their production environments and reported valuable findings in real applications. This provides the Pulsar community with the opportunity to make a difference. </p><p>This blog walks through the most noteworthy changes. For the complete list including all feature enhancements and bug fixes, check out the <a href="https://pulsar.apache.org/release-notes/versioned/pulsar-2.10.1/" target="_blank" rel="noopener noreferrer">Pulsar 2.10.1 Release Notes</a>.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="fixed-ineffective-load-manager-due-to-brokers-zero-resource-usage-pr-15314">Fixed ineffective load manager due to broker’s zero resource usage. <a href="https://github.com/apache/pulsar/pull/15314" target="_blank" rel="noopener noreferrer">PR-15314</a><a href="#fixed-ineffective-load-manager-due-to-brokers-zero-resource-usage-pr-15314" class="hash-link" aria-label="Direct link to fixed-ineffective-load-manager-due-to-brokers-zero-resource-usage-pr-15314" title="Direct link to fixed-ineffective-load-manager-due-to-brokers-zero-resource-usage-pr-15314"></a></h3><h4 class="anchor anchorWithStickyNavbar_LWe7" id="issue">Issue<a href="#issue" class="hash-link" aria-label="Direct link to Issue" title="Direct link to Issue"></a></h4><p>Introduced in 2.10.0, the leader broker’s resource usage (CPU, memory, direct memory…) was always 0 when performing load balance. The root cause is that deserializing the JSON data to ResourceUsage POJO didn’t use the constructor <code>ResourceUsage (double usage, double limit)</code>, so the percentage was always 0.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="allow-users-with-produceconsume-privileges-to-get-topic-schema-pr-15956">Allow users with produce/consume privileges to get topic schema. <a href="https://github.com/apache/pulsar/pull/15956" target="_blank" rel="noopener noreferrer">PR-15956</a><a href="#allow-users-with-produceconsume-privileges-to-get-topic-schema-pr-15956" class="hash-link" aria-label="Direct link to allow-users-with-produceconsume-privileges-to-get-topic-schema-pr-15956" title="Direct link to allow-users-with-produceconsume-privileges-to-get-topic-schema-pr-15956"></a></h3><h4 class="anchor anchorWithStickyNavbar_LWe7" id="issue-1">Issue<a href="#issue-1" class="hash-link" aria-label="Direct link to Issue" title="Direct link to Issue"></a></h4><p>In earlier versions, only users with admin privileges were able to get topic schema, which made schema inconvenient to use. </p><h4 class="anchor anchorWithStickyNavbar_LWe7" id="resolution">Resolution<a href="#resolution" class="hash-link" aria-label="Direct link to Resolution" title="Direct link to Resolution"></a></h4><p>Allow users who have metadata access privileges to get topic schema. Subscribers can be from different teams, and the producers and subscribers should be able to get the topic schema instead of asking tenant admin to do so before publishing and consuming messages.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="fixed-the-consumption-performance-regression-pr-15162">Fixed the consumption performance regression. <a href="https://github.com/apache/pulsar/pull/15162" target="_blank" rel="noopener noreferrer">PR-15162</a><a href="#fixed-the-consumption-performance-regression-pr-15162" class="hash-link" aria-label="Direct link to fixed-the-consumption-performance-regression-pr-15162" title="Direct link to fixed-the-consumption-performance-regression-pr-15162"></a></h3><h4 class="anchor anchorWithStickyNavbar_LWe7" id="issue-2">Issue<a href="#issue-2" class="hash-link" aria-label="Direct link to Issue" title="Direct link to Issue"></a></h4><p>This performance regression was introduced in 2.10.0, 2.9.1, and 2.8.3. You may find a significant performance drop with message listeners while using Java Client. The root cause is each message will introduce the thread switching from the external thread pool to the internal thread poll, and then to the external thread pool.</p><h4 class="anchor anchorWithStickyNavbar_LWe7" id="resolution-1">Resolution<a href="#resolution-1" class="hash-link" aria-label="Direct link to Resolution" title="Direct link to Resolution"></a></h4><p>2.10.1 is the first version to have this issue fixed by avoiding the thread switching for each message to improve consumption throughput.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="fixed-a-deadlock-issue-of-topic-creation-pr-15570">Fixed a deadlock issue of topic creation. <a href="https://github.com/apache/pulsar/pull/15570" target="_blank" rel="noopener noreferrer">PR-15570</a><a href="#fixed-a-deadlock-issue-of-topic-creation-pr-15570" class="hash-link" aria-label="Direct link to fixed-a-deadlock-issue-of-topic-creation-pr-15570" title="Direct link to fixed-a-deadlock-issue-of-topic-creation-pr-15570"></a></h3><h4 class="anchor anchorWithStickyNavbar_LWe7" id="issue-3">Issue<a href="#issue-3" class="hash-link" aria-label="Direct link to Issue" title="Direct link to Issue"></a></h4><p>This deadlock issue occurred during topic creation by trying to re-acquire the same <code>StampedLock</code> from the same thread when removing it. This will cause the topic to stop service for a long time, and ultimately with a failure in the deduplication or geo-replication check. The workaround is restarting the broker.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="fixed-key-shared-delivery-of-messages-with-interleaved-delays-pr-15409">Fixed key-shared delivery of messages with interleaved delays. <a href="https://github.com/apache/pulsar/pull/15409" target="_blank" rel="noopener noreferrer">PR-15409</a><a href="#fixed-key-shared-delivery-of-messages-with-interleaved-delays-pr-15409" class="hash-link" aria-label="Direct link to fixed-key-shared-delivery-of-messages-with-interleaved-delays-pr-15409" title="Direct link to fixed-key-shared-delivery-of-messages-with-interleaved-delays-pr-15409"></a></h3><h4 class="anchor anchorWithStickyNavbar_LWe7" id="issue-4">Issue<a href="#issue-4" class="hash-link" aria-label="Direct link to Issue" title="Direct link to Issue"></a></h4><p>This is a regression issue introduced in 2.10.0. When delayed messages with interleaved delays occurred on a shared/key-shared subscription, many of the messages were not delivered but stayed in the backlog. The reason was that when peeking into <code>getMessagesToReplayNow()</code>, we could not discard the returned set due to untracked message IDs in the delayed message controller.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="optimized-the-memory-usage-of-brokers">Optimized the memory usage of brokers.<a href="#optimized-the-memory-usage-of-brokers" class="hash-link" aria-label="Direct link to Optimized the memory usage of brokers." title="Direct link to Optimized the memory usage of brokers."></a></h3><h4 class="anchor anchorWithStickyNavbar_LWe7" id="issue-5">Issue<a href="#issue-5" class="hash-link" aria-label="Direct link to Issue" title="Direct link to Issue"></a></h4><p>Pulsar has some internal data structures, such as <code>ConcurrentLongLongPairHashMap</code>, and <code>ConcurrentLongPairHashMap</code>, which can reduce the memory usage rather than using the Boxing type. However, in earlier versions, the data structures were not supported for shrinking even if the data was removed, which wasted a certain amount of memory in certain situations.</p><p><strong>Pull requests</strong></p><ul><li><a href="https://github.com/apache/pulsar/pull/15354" target="_blank" rel="noopener noreferrer">https://github.com/apache/pulsar/pull/15354</a></li><li><a href="https://github.com/apache/pulsar/pull/15342" target="_blank" rel="noopener noreferrer">https://github.com/apache/pulsar/pull/15342</a></li><li><a href="https://github.com/apache/pulsar/pull/14663" target="_blank" rel="noopener noreferrer">https://github.com/apache/pulsar/pull/14663</a></li><li><a href="https://github.com/apache/pulsar/pull/14515" target="_blank" rel="noopener noreferrer">https://github.com/apache/pulsar/pull/14515</a></li><li><a href="https://github.com/apache/pulsar/pull/14497" target="_blank" rel="noopener noreferrer">https://github.com/apache/pulsar/pull/14497</a></li></ul><h4 class="anchor anchorWithStickyNavbar_LWe7" id="resolution-2">Resolution<a href="#resolution-2" class="hash-link" aria-label="Direct link to Resolution" title="Direct link to Resolution"></a></h4><p>Support the shrinking of the internal data structures, such as <code>ConcurrentSortedLongPairSet</code>, <code>ConcurrentOpenHashMap</code>, and so on.</p><h1>What’s Next?</h1><p>If you are interested in learning more about Pulsar 2.10.1, you can <a href="https://pulsar.apache.org/en/versions/" target="_blank" rel="noopener noreferrer">download</a> and try it out now! </p><p><strong>Pulsar Summit San Francisco 2022</strong> will take place on August 18th, 2022. <a href="https://pulsar-summit.org/" target="_blank" rel="noopener noreferrer">Register now</a> and help us make it an even bigger success by spreading the word on social media!</p><p>For more information about the Apache Pulsar project and current progress, visit
the <a href="https://pulsar.apache.org" target="_blank" rel="noopener noreferrer">Pulsar website</a>, follow the project on Twitter
<a href="https://twitter.com/apache_pulsar" target="_blank" rel="noopener noreferrer">@apache_pulsar</a>, and join <a href="https://apache-pulsar.herokuapp.com/" target="_blank" rel="noopener noreferrer">Pulsar Slack</a>!</p></div><footer class="row docusaurus-mt-lg blogPostFooterDetailsFull_Wr5y"><div class="col margin-top--sm"><a href="https://github.com/apache/pulsar-site/edit/main/blog/2022-07-12-Apache-Pulsar-2-10-1.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></footer></article><nav class="pagination-nav blog-post-pagination-nav docusaurus-mt-lg" aria-label="Blog post page navigation"><div><a class="pagination-nav__link pagination-nav__link--prev" href="/blog/2022/07/15/pulsar-summit-san-francisco/"><div class="pagination-nav__sublabel">Newer Post</div><div class="pagination-nav__label">Speakers and Sponsorship Prospectus Announced for Pulsar Summit San Francisco 2022</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/blog/2022/05/11/Apache-Pulsar-2-10-0/"><div class="pagination-nav__sublabel">Older Post</div><div class="pagination-nav__label">What’s New in Apache Pulsar 2.10</div></a><div class="blog-post-pagination-nav-more"><a href="/blog">Show All</a></div></div></nav></main></div></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>