blob: b748efbec5db9de0c2334c7e4d811e096d2f64db [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.7.5 | 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/09/09/Apache-Pulsar-2-7-5/"><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.7.5 | Apache Pulsar"><meta data-rh="true" name="description" content="The Apache Pulsar community releases version 2.7.5! 23 contributors provided improvements and bug fixes that delivered 89 commits. Thanks for all your contributions."><meta data-rh="true" property="og:description" content="The Apache Pulsar community releases version 2.7.5! 23 contributors provided improvements and bug fixes that delivered 89 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-09-09T00: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/09/09/Apache-Pulsar-2-7-5/"><link data-rh="true" rel="alternate" href="https://pulsar.apache.org/blog/2022/09/09/Apache-Pulsar-2-7-5/" hreflang="en"><link data-rh="true" rel="alternate" href="https://pulsar.apache.org/blog/2022/09/09/Apache-Pulsar-2-7-5/" 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.7.5</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">Jason918, momo-jun</span></div></div></div></div></div><div class="container_iJTo"><time datetime="2022-09-09T00:00:00.000Z" itemprop="datePublished">September 9, 2022</time> · <!-- -->3 min read</div></div></header><div id="post-content" class="markdown" itemprop="articleBody"><p>The Apache Pulsar community releases version 2.7.5! 23 contributors provided improvements and bug fixes that delivered 89 commits. Thanks for all your contributions.</p><p>The highlight of the 2.7.5 release is that it fixes some critical bugs on broker, proxy, and storage, including message/data loss, broker deadlock, and connection leak. Note that 2.7.5 is the last release of 2.7.x.</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.7.5/" target="_blank" rel="noopener noreferrer">Pulsar 2.7.5 Release Notes</a>.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="fixed-the-deadlock-on-metadata-cache-missing-while-checking-replications-pr-16889">Fixed the deadlock on metadata cache missing while checking replications. <a href="https://github.com/apache/pulsar/pull/16889" target="_blank" rel="noopener noreferrer">PR-16889</a><a href="#fixed-the-deadlock-on-metadata-cache-missing-while-checking-replications-pr-16889" class="hash-link" aria-label="Direct link to fixed-the-deadlock-on-metadata-cache-missing-while-checking-replications-pr-16889" title="Direct link to fixed-the-deadlock-on-metadata-cache-missing-while-checking-replications-pr-16889"></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>After the changes in <a href="https://github.com/apache/pulsar/pull/12340" target="_blank" rel="noopener noreferrer">#12340</a>, there are still a couple of places making blocking calls. These calls occupy all the ordered scheduler threads preventing the callbacks from completing until the 30 seconds timeout expires.</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>Change the blocking calls to async mode on the metadata callback thread.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="fixed-the-deadlock-when-using-the-key_shared-mode-pr-11965">Fixed the deadlock when using the key_shared mode. <a href="https://github.com/apache/pulsar/pull/11965" target="_blank" rel="noopener noreferrer">PR-11965</a><a href="#fixed-the-deadlock-when-using-the-key_shared-mode-pr-11965" class="hash-link" aria-label="Direct link to fixed-the-deadlock-when-using-the-key_shared-mode-pr-11965" title="Direct link to fixed-the-deadlock-when-using-the-key_shared-mode-pr-11965"></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>When the key_shared mode is used in consumers, deadlock may happen in the broker due to some race conditions and result in a lot of <code>CLOSE_WAIT</code> status connections.</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>Change unlock before the callback in the <code>asyncDelete</code> function of <code>ManagedCursorImpl</code>.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="fixed-the-message-loss-issue-due-to-ledger-rollover-pr-14703">Fixed the message loss issue due to ledger rollover. <a href="https://github.com/apache/pulsar/pull/14703" target="_blank" rel="noopener noreferrer">PR-14703</a><a href="#fixed-the-message-loss-issue-due-to-ledger-rollover-pr-14703" class="hash-link" aria-label="Direct link to fixed-the-message-loss-issue-due-to-ledger-rollover-pr-14703" title="Direct link to fixed-the-message-loss-issue-due-to-ledger-rollover-pr-14703"></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>If users config <code>managedLedgerMaxLedgerRolloverTimeMinutes &gt; 0</code>, and the rollover happens when the ManagedLedger state is <code>CreatingLedger</code>, the messages written during that time are lost.</p><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>Rollover only when the ledger state is <code>LedgerOpened</code>. </p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="fixed-the-port-exhaustion-and-connection-issues-in-pulsar-proxy-pr-14078">Fixed the port exhaustion and connection issues in Pulsar Proxy. <a href="https://github.com/apache/pulsar/pull/14078" target="_blank" rel="noopener noreferrer">PR-14078</a><a href="#fixed-the-port-exhaustion-and-connection-issues-in-pulsar-proxy-pr-14078" class="hash-link" aria-label="Direct link to fixed-the-port-exhaustion-and-connection-issues-in-pulsar-proxy-pr-14078" title="Direct link to fixed-the-port-exhaustion-and-connection-issues-in-pulsar-proxy-pr-14078"></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>Pulsar Proxy can get into a state where it stops proxying Broker connections while Admin API proxying keeps working.</p><h4 class="anchor anchorWithStickyNavbar_LWe7" id="resolution-3">Resolution<a href="#resolution-3" class="hash-link" aria-label="Direct link to Resolution" title="Direct link to Resolution"></a></h4><p>Optimize the proxy connection to fail-fast when the target broker isn&#x27;t active.
Fix the race conditions in Pulsar Proxy when establishing a connection, leading to invalid states and hanging connections.
Add connection timeout handling to proxy connections.
Add read timeout handling to incoming connections and proxied connections.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="fixed-the-compaction-data-loss-due-to-missed-compaction-properties-during-cursor-reset-pr-16404">Fixed the compaction data loss due to missed compaction properties during cursor reset. <a href="https://github.com/apache/pulsar/pull/16404" target="_blank" rel="noopener noreferrer">PR-16404</a><a href="#fixed-the-compaction-data-loss-due-to-missed-compaction-properties-during-cursor-reset-pr-16404" class="hash-link" aria-label="Direct link to fixed-the-compaction-data-loss-due-to-missed-compaction-properties-during-cursor-reset-pr-16404" title="Direct link to fixed-the-compaction-data-loss-due-to-missed-compaction-properties-during-cursor-reset-pr-16404"></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>The compaction reader seeks the earliest position to read data from the topic, but the compaction properties are missed during cursor reset, which leads to the initialized compaction subscribe without a compaction horizon, so the compaction reader skips the last compacted data. It only happens when initializing the compaction subscription and can be introduced by the load balance or topic unloading manually.</p><h4 class="anchor anchorWithStickyNavbar_LWe7" id="resolution-4">Resolution<a href="#resolution-4" class="hash-link" aria-label="Direct link to Resolution" title="Direct link to Resolution"></a></h4><p>Keep the properties for resetting the cursor while the cursor is for data compaction.
Copy the properties to the new mark delete entry while advancing the cursor, which is triggered by the managed ledger internal. It&#x27;s not only for the compacted topic, and the internal task should not lose the properties when trimming the cursor.</p><h1>What’s Next?</h1><p>If you are interested in learning more about Pulsar 2.7.5, you can <a href="https://pulsar.apache.org/en/versions/" target="_blank" rel="noopener noreferrer">download</a> and try it out now! </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-09-09-Apache-Pulsar-2-7-5.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/11/04/pulsar-summit-asia-2022-schedule-announced/"><div class="pagination-nav__sublabel">Newer Post</div><div class="pagination-nav__label">Announcing Conference Schedule for Pulsar Summit Asia 2022</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/blog/2022/08/22/pulsar-summit-asia-2022-cfp/"><div class="pagination-nav__sublabel">Older Post</div><div class="pagination-nav__label">Pulsar Summit Asia 2022: CFP Is Open Now!</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>