Apache Pulsar 2.8.2 新版发布,有哪些亮点和更新?
- 内容介绍
- 文章标签
- 相关推荐
本文共计5207个文字,预计阅读时间需要21分钟。
Apache Pulsar云原生消息队列和融合系统,提供统一消费模型,支持消息队列和流两种场景,既可为队列场景提供企业级读写服务质量和强一致性保障,又可为流场景提供高吞吐率。
关于 Apache Pulsar
云原生时代消息队列和流融合系统,提供统一的消费模型,支持消息队列和流两种场景,既能为队列场景提供企业级读写服务质量和强一致性保障,又能为流场景提供高吞吐、低延迟;采用存储计算分离架构,支持大集群、多租户、百万级 Topic、跨地域数据复制、持久化存储、分层存储、高可扩展性等企业级和金融级功能。
GitHub 地址:github.com/apache/pulsar/
近期,Apache Pulsar 社区发布了 Pulsar 2.8.2 版本!一起来看一下新版本的 release note,有哪些值得关注的升级吧。
安全增强
PR - 13392[1]:将 log4j 升级至 2.17.0 版本 -CVE-2021-45105[2]。
PR - 13328[3]:将 Netty 升级至 4.1.72 版本 -CVE-2021-43797[4]。
PR - 13133[5]:恢复新的AuthorizationProvider方法。
PR - 12963[6]:在启用认证后,支持CLEAR_BACKLOGnamespace 操作。
PR - 11681[7]:支持禁用非 TLS 的服务端口。
PR - 11660[8]:将 Jetty 升级到 9.4.43 版本(v20210629)。
Broker
PR - 13069[9]:修复和提高 topic ownership 的调派。
PR - 13066[10]:修复LeaderElectionService.getCurrentLeader,并在MockZooKeeper中添加对empheralOwner的支持。
PR - 12993[11]:不再重复使用导致 bundle 超时卸载的错误 OpAddEntry 对象。
PR - 12873[12]:当SystemTopicBasedTopicPoliciesService出现异常时,移除 readerCaches,并关闭 reader。
PR - 12773[13]:修复TopicPoliciesCacheNotInitException问题。
PR - 12742[14]:在启用认证后,支持取消对命名空间的订阅操作。
PR - 12729[15]:修复PersistentTopic#addReplicationCluster竞争条件。
PR - 12721[16]:解决即使始终设置兼容也不能创建 consumer 的问题。
PR - 12714[17]:当启用BrokerEntryMetadata时,修复不正确的总体占用空间。
PR - 12698[18]:在重置游标时,修复由于压缩属性丢失而导致的压缩数据丢失问题。
PR - 12675[19]:修复TestRunMain的测试。
PR - 12656[20]:在启用认证后,支持GET_METADATAtopic 选项。
PR - 12650[21]:修复OwnershipCache#checkOwnership中的错误的肯定所有权检验。
PR - 12647[22]:优化 schema 的异常信息。
PR - 12640[23]:为测试方法添加@test[24]注释。
PR - 12622[25]:在创建 TopicPolicies reader 时,支持重试。
PR - 12619[26]:修复 “应该使用 =而不是 == ” 的字符串。
PR - 12615[27]:修复 PR - 12614 问题,使用 volatile 修改waitingForPingResponse并发感知。
PR - 12607[28]:清理ProxyPublishConsumeTest。
PR - 12606[29]:避免在asyncAddEntry中跨越线程边界传递OpAddEntry。
PR - 12602[30]:当 topic 压缩且关闭 ledger 时,不移动非持久性指针位置。
PR - 12600[31]:允许具有consume权限的GetTopicsOfNamespace操作。
PR - 12598[32]:允许为系统 topic 配置 schema 兼容性策略。
PR - 12597[33]:清理已经删除的 namespace topic。
PR - 12585[34]:修复可能被提取到空目录的额外服务程序 NAR。
PR - 12582[35]:修复NamespaceService#checkHeartbeatNamespace中的日志拼写错误。
PR - 12570[36]:确认状态后,将OpAddEntry加入到pendingAddEntries中。
PR - 12565[37]:在删除ManagedLedgerImpl后,取消调度任务。
PR - 12541[38]:为 PulsarVersion 加入 git 分支信息。
PR - 12539[39]:Websocket 应该将加密的上下文传递给 consumer。
PR - 12527[40]:如果 bundle 上的 topics 数少于2,将跳过 split 操作。
PR - 12522[41]:修复原始 ledger 已被删除的 reader,使其跳过压缩数据。
PR - 12493[42]:修复messageDedup,并删除不活跃的 producer 名字。
PR - 12470[43]:优化代码,即删除多余的空格。
PR - 12362[44]:以impl.MLPendingAckStore#closeAsync模式两次完成 Future。
PR - 12240[45]:修复取消订阅的竞态,并删除 topic。
PR - 12217[46]:禁用内置 Pulsar Client 的统计存储器。
PR - 12215[47]:当删除 topic 时,修复删除认证规则的漏洞。
PR - 12045[48]:优化 Cache Eviction 的内存使用。
PR - 12018[49]:避免重复添加BrokerEntryMetadata。
PR - 12015[50]:修复更新的 ledger 清单至 z-node 版本及 ledger 未删除问题。
PR - 11928[51]:修复 TopicPolicies 中的消息永远不会被清除的问题。
PR - 12212[52]:修复返回 consumer 错误的哈希阈值且名称重复的 consumer 问题。
PR - 11839[53]:将 Key_Shared metadata加入至 topic 统计中。
PR - 11795[54]:修复从子模块的构建问题(代理、事务协调器)。
PR - 11934[55]:增加清理事务缓冲区快照的方法。
PR - 11541[56]:提高transactionTest的稳定性。
PR - 13248[57]:增加maven.restlet.org代码仓库。
PR - 13117[58]:修正并改进 topic 所有权分配问题#13069[59]。
PR - 13045[60]:仅评估CURRENT_PROTOCOL_VERSION一次。
PR - 12941[61]:恢复“设置默认 root 日志级别为调试”,并将PULSAR_LOG_ROOT_LEVEL默认为PULSAR_LOG_LEVEL。
PR - 12853[62]:捕获调度任务中的异常,防止意外清除。
PR - 12846[63]:修复 topic 中 的producers映射中被错误移除的 producer 问题。
PR - 12820[64]:同步更新 MessageD 中的inactiveProducers映射。
PR - 12780[65]:在收到异常SendCommand时,关闭连接。
PR - 12699[66]:在创建订阅时,修复被覆盖忽略的命名空间策略。
PR - 12466[67]:将 lombok 更新至 1.18.22 版本。
PR - 12464[68]:修复跳过压缩数据的 reader/consumer 问题。
PR - 12456[69]:移除MultiTopicsConsumerImpl中的数据竞争,以保证正确的消息顺序。
PR - 12451[70]:修复重试 topic 中的REAL_TOPIC和ORIGIN_MESSAGE_ID属性问题。
PR - 12447[71]:更改 producer 防护墙错误日志为调试级别。
PR - 12444[72]:减少readFailureBackoff次数。
PR - 12433[73]:修复NamespaceIsolationDataImpl#secondary中的错误属性名。
PR - 12431[74]:优化 SecurityUtility 代码流。
PR - 12429[75]:修复压缩器问题,使其跳过来自上一个被压缩 ledger 的数据。
PR - 12424[76]:移除冗余代码。
PR - 12417[77]:修复部分未在集成测试中启用的测试。
PR - 12409[78]:对超时任务ClientConnection使用弱引用。
PR - 12397[79]:修复 cherry-pick 问题。
PR - 12367[80]:修复删除系统 topic policy 导致的空点问题。
PR - 12350[81]:更新删除不活跃的 topic 配置文档。
PR - 12345[82]:将日志添加到输出有异常的堆栈。
PR - 12339[83]:避免在关键线程上潜在阻塞对元数据的调用。
PR - 12297[84]:当移除 Cursor 时,修正 NPE 问题。
PR - 12280[85]:当配置加载失败时,输出日志。
PR - 12277[86]:当lastConfirmedEntry带有错误的 entry ID 时,修复错误返回的最后消息 ID 问题。
PR - 12266[87]:修复过期 TTL 不生效的问题。
PR - 12252[88]:负载均衡器应该避免卸载 heartbeat namespace。
PR - 12237[89]:当最后一个消息 ID 来自压缩 ledger 时,修复返回的最后一个消息 ID 拼写错误的问题。
PR - 12225[90]:在 Prometheus 中,添加对 topic 分割和分区标签的支持。
PR - 12223[91]:修复丢失消息的问题# 12221[92]。
PR - 12200[93]:在内存策略范围之外,允许配置 Pulsar 客户端分配器。
PR - 12188[94]:移除冗余参数。
PR - 12168[95]:修复测试中不正确的 logger 编号。
PR - 12161[96]:当原始数据已被删除时,返回最近一次压缩数据的位置。
PR - 12155[97]:在处理 schema 资源时,完善异常抛出问题。
PR - 12132[98]:修复 JWT 中的前缀设置问题,避免多次调用 getProperty。
PR - 12103[99]:修复OpAddEntry回收问题后的被使用问题。
PR - 12097[100]:修复rackAwarePlacementPolicy初始化错误的问题。
PR - 12035[101]:在所有之前的 consumer 断开连接之后,修复用于新的 consumer 的错误 key-hash 选择器问题。
PR - 11982[102]:修复 2.8 分支的 cherry-pick 问题。
PR - 11975[103]:删除NamespaceBundleFactory中未使用的变量和不必要的框。
PR - 11969[104]:在找不到下一个有效位置时,输出位置信息。
PR - 11947[105]:修复 NPE ZkBookieRackAffinityMapping问题。
PR - 11937[106]:避免无限分割 bundle。
PR - 11922[107]:在没有流量时,完善暂停复制的订阅快照的逻辑。
PR - 11886[108]:修复ZKSessionTest.testReacquireLocksAfterSessionLost的问题。
PR - 11856[109]:在 Broker 级别中添加 Schema 兼容策略。
PR - 11771[110]:为BaseMetadataStoreTests使用TestRetrySupport,以在重试时清理状态。
PR - 11718[111]:移除replace_maven-wagon-github.com/apache/pulsar/pull/13392
[2]CVE-2021-45105:github.com/advisories/GHSA-p6xc-xr62-6r2g
[3]PR - 13328:github.com/apache/pulsar/pull/13328
[4]CVE-2021-43797:github.com/advisories/GHSA-wx5j-54mm-rqqq
[5]PR - 13133:github.com/apache/pulsar/pull/13133
[6]PR - 12963:github.com/apache/pulsar/pull/12963
[7]PR - 11681:github.com/apache/pulsar/pull/11681
[8]PR - 11660:github.com/apache/pulsar/pull/11660
[9]PR - 13069:github.com/apache/pulsar/pull/13069
[10]PR - 13066:github.com/apache/pulsar/pull/13066
[11]PR - 12993:github.com/apache/pulsar/pull/12993
[12]PR - 12873:github.com/apache/pulsar/pull/12873
[13]PR - 12773:github.com/apache/pulsar/pull/12773
[14]PR - 12742:github.com/apache/pulsar/pull/12742
[15]PR - 12729:github.com/apache/pulsar/pull/12729
[16]PR - 12721:github.com/apache/pulsar/pull/12721
[17]PR - 12714:github.com/apache/pulsar/pull/12714
[18]PR - 12698:github.com/apache/pulsar/pull/12698
[19]PR - 12675:github.com/apache/pulsar/pull/12675
[20]PR - 12656:github.com/apache/pulsar/pull/12656
[21]PR - 12650:github.com/apache/pulsar/pull/12650
[22]PR - 12647:github.com/apache/pulsar/pull/12647
[23]PR - 12640:github.com/apache/pulsar/pull/12640
[24]@test:github.com/test
[25]PR - 12622:github.com/apache/pulsar/pull/12622
[26]PR - 12619:github.com/apache/pulsar/pull/12619
[27]PR - 12615:github.com/apache/pulsar/pull/12615
[28]PR - 12607:github.com/apache/pulsar/pull/12607
[29]PR - 12606:github.com/apache/pulsar/pull/12606
[30]PR - 12602:github.com/apache/pulsar/pull/12602
[31]PR - 12600:github.com/apache/pulsar/pull/12600
[32]PR - 12598:github.com/apache/pulsar/pull/12598
[33]PR - 12597:github.com/apache/pulsar/pull/12597
[34]PR - 12585:github.com/apache/pulsar/pull/12585
[35]PR - 12582:github.com/apache/pulsar/pull/12582
[36]PR - 12570:github.com/apache/pulsar/pull/12570
[37]PR - 12565:github.com/apache/pulsar/pull/12565
[38]PR - 12541:github.com/apache/pulsar/pull/12541
[39]PR - 12539:github.com/apache/pulsar/pull/12539
[40]PR - 12527:github.com/apache/pulsar/pull/12527
[41]PR - 12522:github.com/apache/pulsar/pull/12522
[42]PR - 12493:github.com/apache/pulsar/pull/12493
[43]PR - 12470:github.com/apache/pulsar/pull/12470
[44]PR - 12362:github.com/apache/pulsar/pull/12362
[45]PR - 12240:github.com/apache/pulsar/pull/12240
[46]PR - 12217:github.com/apache/pulsar/pull/12217
[47]PR - 12215:github.com/apache/pulsar/pull/12215
[48]PR - 12045:github.com/apache/pulsar/pull/12045
[49]PR - 12018:github.com/apache/pulsar/pull/12018
[50]PR - 12015:github.com/apache/pulsar/pull/12015
[51]PR - 11928:github.com/apache/pulsar/pull/11928
[52]PR - 12212:github.com/apache/pulsar/pull/12212
[53]PR - 11839:github.com/apache/pulsar/pull/11839
[54]PR - 11795:github.com/apache/pulsar/pull/11795
[55]PR - 11934:github.com/apache/pulsar/pull/11934
[56]PR - 11541:github.com/apache/pulsar/pull/11541
[57]PR - 13248:github.com/apache/pulsar/pull/13248
[58]PR - 13117:github.com/apache/pulsar/pull/13117
[59]#13069:github.com/apache/pulsar/pull/13069
[60]PR - 13045:github.com/apache/pulsar/pull/13045
[61]PR - 12941:github.com/apache/pulsar/pull/12941
[62]PR - 12853:github.com/apache/pulsar/pull/12853
[63]PR - 12846:github.com/apache/pulsar/pull/12846
[64]PR - 12820:github.com/apache/pulsar/pull/12820
[65]PR - 12780:github.com/apache/pulsar/pull/12780
[66]PR - 12699:github.com/apache/pulsar/pull/12699
[67]PR - 12466:github.com/apache/pulsar/pull/12466
[68]PR - 12464:github.com/apache/pulsar/pull/12464
[69]PR - 12456:github.com/apache/pulsar/pull/12456
[70]PR - 12451:github.com/apache/pulsar/pull/12451
[71]PR - 12447:github.com/apache/pulsar/pull/12447
[72]PR - 12444:github.com/apache/pulsar/pull/12444
[73]PR - 12433:github.com/apache/pulsar/pull/12433
[74]PR - 12431:github.com/apache/pulsar/pull/12431
[75]PR - 12429:github.com/apache/pulsar/pull/12429
[76]PR - 12424:github.com/apache/pulsar/pull/12424
[77]PR - 12417:github.com/apache/pulsar/pull/12417
[78]PR - 12409:github.com/apache/pulsar/pull/12409
[79]PR - 12397:github.com/apache/pulsar/pull/12397
[80]PR - 12367:github.com/apache/pulsar/pull/12367
[81]PR - 12350:github.com/apache/pulsar/pull/12350
[82]PR - 12345:github.com/apache/pulsar/pull/12345
[83]PR - 12339:github.com/apache/pulsar/pull/12339
[84]PR - 12297:github.com/apache/pulsar/pull/12297
[85]PR - 12280:github.com/apache/pulsar/pull/12280
[86]PR - 12277:github.com/apache/pulsar/pull/12277
[87]PR - 12266:github.com/apache/pulsar/pull/12266
[88]PR - 12252:github.com/apache/pulsar/pull/12252
[89]PR - 12237:github.com/apache/pulsar/pull/12237
[90]PR - 12225:github.com/apache/pulsar/pull/12225
[91]PR - 12223:github.com/apache/pulsar/pull/12223
[92]# 12221:github.com/apache/pulsar/issues/12221
[93]PR - 12200:github.com/apache/pulsar/pull/12200
[94]PR - 12188:github.com/apache/pulsar/pull/12188
[95]PR - 12168:github.com/apache/pulsar/pull/12168
[96]PR - 12161:github.com/apache/pulsar/pull/12161
[97]PR - 12155:github.com/apache/pulsar/pull/12155
[98]PR - 12132:github.com/apache/pulsar/pull/12132
[99]PR - 12103:github.com/apache/pulsar/pull/12103
[100]PR - 12097:github.com/apache/pulsar/pull/12097
[101]PR - 12035:github.com/apache/pulsar/pull/12035
[102]PR - 11982:github.com/apache/pulsar/pull/11982
[103]PR - 11975:github.com/apache/pulsar/pull/11975
[104]PR - 11969:github.com/apache/pulsar/pull/11969
[105]PR - 11947:github.com/apache/pulsar/pull/11947
[106]PR - 11937:github.com/apache/pulsar/pull/11937
[107]PR - 11922:github.com/apache/pulsar/pull/11922
[108]PR - 11886:github.com/apache/pulsar/pull/11886
[109]PR - 11856:github.com/apache/pulsar/pull/11856
[110]PR - 11771:github.com/apache/pulsar/pull/11771
[111]PR - 11718:github.com/apache/pulsar/pull/11718
[112]PR - 11655:github.com/apache/pulsar/pull/11655
[113]PR - 11640:github.com/apache/pulsar/pull/11640
[114]PR - 11614:github.com/apache/pulsar/pull/11614
[115]PR - 11606:github.com/apache/pulsar/pull/11606
[116]PR - 11597:github.com/apache/pulsar/pull/11597
[117]PR - 11513:github.com/apache/pulsar/pull/11513
[118]PR - 10837:github.com/apache/pulsar/pull/10837
[119]PR - 10754:github.com/apache/pulsar/pull/10754
[120]PR - 12292:github.com/apache/pulsar/pull/12292
[121]PR - 13112:github.com/apache/pulsar/pull/13112
[122]PR - 12769:github.com/apache/pulsar/pull/12769
[123]PR - 12586:github.com/apache/pulsar/pull/12586
[124]PR - 12492:github.com/apache/pulsar/pull/12492
[125]PR - 12372:github.com/apache/pulsar/pull/12372
[126]PR - 12341:github.com/apache/pulsar/pull/12341
[127]PR - 12335:github.com/apache/pulsar/pull/12335
[128]PR - 12305:github.com/apache/pulsar/pull/12305
[129]PR - 11958:github.com/apache/pulsar/pull/11958
[130]PR - 11954:github.com/apache/pulsar/pull/11954
[131]PR - 11919:github.com/apache/pulsar/pull/11919
[132]PR - 11762:github.com/apache/pulsar/pull/11762
[133]PR - 11668:github.com/apache/pulsar/pull/11668
[134]PR - 11630:github.com/apache/pulsar/pull/11630
[135]PR - 11570:github.com/apache/pulsar/pull/11570
[136]PR - 12504:github.com/apache/pulsar/pull/12504
[137]PR - 12065:github.com/apache/pulsar/pull/12065
[138]PR - 11868:github.com/apache/pulsar/pull/11868
[139]PR - 11831:github.com/apache/pulsar/pull/11831
[140]PR - 10631:github.com/apache/pulsar/pull/10631
[141]PR - 12080:github.com/apache/pulsar/pull/12080
[142]PR - 12457:github.com/apache/pulsar/pull/12457
[143]PR - 11990:github.com/apache/pulsar/pull/11990
[144]PR - 11853:github.com/apache/pulsar/pull/11853
[145]PR - 12973:github.com/apache/pulsar/pull/12973
[146]PR - 12246:github.com/apache/pulsar/pull/12246
[147]PR - 11820:github.com/apache/pulsar/pull/11820
[148]PR - 11706:github.com/apache/pulsar/pull/11706
[149]PR - 12709:github.com/apache/pulsar/pull/12709
[150]PR - 12581:github.com/apache/pulsar/pull/12581
[151]PR - 11683:github.com/apache/pulsar/pull/11683
[152]PR - 12315:github.com/apache/pulsar/pull/12315
[153]PR - 12915:github.com/apache/pulsar/pull/12915
[154]PR - 12436:github.com/apache/pulsar/pull/12436
[155]PR - 12349:github.com/apache/pulsar/pull/12349
[156]PR - 12452:github.com/apache/pulsar/pull/12452
[157]PR - 12443:github.com/apache/pulsar/pull/12443
[158]PR - 12309:github.com/apache/pulsar/pull/12309
[159]PR - 12123:github.com/apache/pulsar/pull/12123
[160]PR - 12809:github.com/apache/pulsar/pull/12809
[161]PR - 12448:github.com/apache/pulsar/pull/12448
[162]PR - 12530:github.com/apache/pulsar/pull/12530
[163]PR - 12458:github.com/apache/pulsar/pull/12458
[164]PR - 11459:github.com/apache/pulsar/pull/11459
[165]PR - 11784:github.com/apache/pulsar/pull/11784
[166]PR - 11809:github.com/apache/pulsar/pull/11809
[167]PR - 11931:github.com/apache/pulsar/pull/11931
[168]PR - 13176:github.com/apache/pulsar/pull/13176
[169]PR - 13161:github.com/apache/pulsar/pull/13161
[170]PR - 12781:github.com/apache/pulsar/pull/12781
[171]PR - 12779:github.com/apache/pulsar/pull/12779
[172]PR - 12673:github.com/apache/pulsar/pull/12673
[173]PR - 12652:github.com/apache/pulsar/pull/12652
[174]PR - 12620:github.com/apache/pulsar/pull/12620
[175]PR - 12588:github.com/apache/pulsar/pull/12588
[176]PR - 12500:github.com/apache/pulsar/pull/12500
[177]PR - 12308:github.com/apache/pulsar/pull/12308
[178]PR - 12259:github.com/apache/pulsar/pull/12259
[179]PR - 12170:github.com/apache/pulsar/pull/12170
[180]PR - 12044:github.com/apache/pulsar/pull/12044
[181]PR - 11988:github.com/apache/pulsar/pull/11988
[182]PR - 11906:github.com/apache/pulsar/pull/11906
[183]PR - 11884:github.com/apache/pulsar/pull/11884
[184]PR - 11828:github.com/apache/pulsar/pull/11828
[185]PR - 11826:github.com/apache/pulsar/pull/11826
[186]PR - 11802:github.com/apache/pulsar/pull/11802
[187]PR - 12469:github.com/apache/pulsar/pull/12469
[188]PR - 12467:github.com/apache/pulsar/pull/12467
[189]PR - 12348:github.com/apache/pulsar/pull/12348
[190]PR - 12148:github.com/apache/pulsar/pull/12148
[191]PR - 11939:github.com/apache/pulsar/pull/11939
[192]PR - 12641:github.com/apache/pulsar/pull/12641
[193]PR - 12108:github.com/apache/pulsar/pull/12108
[194]PR - 12084:github.com/apache/pulsar/pull/12084
[195]PR - 12090:github.com/apache/pulsar/pull/12090
[196]PR - 12642:github.com/apache/pulsar/pull/12642
[197]PR - 12427:github.com/apache/pulsar/pull/12427
[198]PR - 12175:github.com/apache/pulsar/pull/12175
[199]PR - 12058:github.com/apache/pulsar/pull/12058
[200]PR - 11840:github.com/apache/pulsar/pull/11840
[201]PR - 12516:github.com/apache/pulsar/pull/12516
[202]PR - 12092:github.com/apache/pulsar/pull/12092
[203]PR - 12593:github.com/apache/pulsar/pull/12593
[204]PR - 12232:github.com/apache/pulsar/pull/12232
[205]PR - 12130:github.com/apache/pulsar/pull/12130
[206]PR - 11955:github.com/apache/pulsar/pull/11955
[207]PR - 12438:github.com/apache/pulsar/pull/12438
[208]PR - 12398:github.com/apache/pulsar/pull/12398
[209]PR - 12329:github.com/apache/pulsar/pull/12329
[210]PR - 12143:github.com/apache/pulsar/pull/12143
[211]PR - 12666:github.com/apache/pulsar/pull/12666
[212]PR - 12311:github.com/apache/pulsar/pull/12311
[213]PR - 12594:github.com/apache/pulsar/pull/12594
[214]PR - 11971:github.com/apache/pulsar/pull/11971
[215]PR - 12299:github.com/apache/pulsar/pull/12299
[216]PR - 12245:github.com/apache/pulsar/pull/12245
[217]PR - 12111:github.com/apache/pulsar/pull/12111
[218]PR - 12057:github.com/apache/pulsar/pull/12057
[219]下载:pulsar.apache.org/download
[220]提 issue:github.com/apache/pulsar/issues
[221]Apache Pulsar 官方贡献指南:pulsar.apache.org/en/contributing/
▼ 关注「Apache Pulsar」,获取更多技术干货 ▼
???????? 加入 Apache Pulsar 中文交流群 ????????
本文共计5207个文字,预计阅读时间需要21分钟。
Apache Pulsar云原生消息队列和融合系统,提供统一消费模型,支持消息队列和流两种场景,既可为队列场景提供企业级读写服务质量和强一致性保障,又可为流场景提供高吞吐率。
关于 Apache Pulsar
云原生时代消息队列和流融合系统,提供统一的消费模型,支持消息队列和流两种场景,既能为队列场景提供企业级读写服务质量和强一致性保障,又能为流场景提供高吞吐、低延迟;采用存储计算分离架构,支持大集群、多租户、百万级 Topic、跨地域数据复制、持久化存储、分层存储、高可扩展性等企业级和金融级功能。
GitHub 地址:github.com/apache/pulsar/
近期,Apache Pulsar 社区发布了 Pulsar 2.8.2 版本!一起来看一下新版本的 release note,有哪些值得关注的升级吧。
安全增强
PR - 13392[1]:将 log4j 升级至 2.17.0 版本 -CVE-2021-45105[2]。
PR - 13328[3]:将 Netty 升级至 4.1.72 版本 -CVE-2021-43797[4]。
PR - 13133[5]:恢复新的AuthorizationProvider方法。
PR - 12963[6]:在启用认证后,支持CLEAR_BACKLOGnamespace 操作。
PR - 11681[7]:支持禁用非 TLS 的服务端口。
PR - 11660[8]:将 Jetty 升级到 9.4.43 版本(v20210629)。
Broker
PR - 13069[9]:修复和提高 topic ownership 的调派。
PR - 13066[10]:修复LeaderElectionService.getCurrentLeader,并在MockZooKeeper中添加对empheralOwner的支持。
PR - 12993[11]:不再重复使用导致 bundle 超时卸载的错误 OpAddEntry 对象。
PR - 12873[12]:当SystemTopicBasedTopicPoliciesService出现异常时,移除 readerCaches,并关闭 reader。
PR - 12773[13]:修复TopicPoliciesCacheNotInitException问题。
PR - 12742[14]:在启用认证后,支持取消对命名空间的订阅操作。
PR - 12729[15]:修复PersistentTopic#addReplicationCluster竞争条件。
PR - 12721[16]:解决即使始终设置兼容也不能创建 consumer 的问题。
PR - 12714[17]:当启用BrokerEntryMetadata时,修复不正确的总体占用空间。
PR - 12698[18]:在重置游标时,修复由于压缩属性丢失而导致的压缩数据丢失问题。
PR - 12675[19]:修复TestRunMain的测试。
PR - 12656[20]:在启用认证后,支持GET_METADATAtopic 选项。
PR - 12650[21]:修复OwnershipCache#checkOwnership中的错误的肯定所有权检验。
PR - 12647[22]:优化 schema 的异常信息。
PR - 12640[23]:为测试方法添加@test[24]注释。
PR - 12622[25]:在创建 TopicPolicies reader 时,支持重试。
PR - 12619[26]:修复 “应该使用 =而不是 == ” 的字符串。
PR - 12615[27]:修复 PR - 12614 问题,使用 volatile 修改waitingForPingResponse并发感知。
PR - 12607[28]:清理ProxyPublishConsumeTest。
PR - 12606[29]:避免在asyncAddEntry中跨越线程边界传递OpAddEntry。
PR - 12602[30]:当 topic 压缩且关闭 ledger 时,不移动非持久性指针位置。
PR - 12600[31]:允许具有consume权限的GetTopicsOfNamespace操作。
PR - 12598[32]:允许为系统 topic 配置 schema 兼容性策略。
PR - 12597[33]:清理已经删除的 namespace topic。
PR - 12585[34]:修复可能被提取到空目录的额外服务程序 NAR。
PR - 12582[35]:修复NamespaceService#checkHeartbeatNamespace中的日志拼写错误。
PR - 12570[36]:确认状态后,将OpAddEntry加入到pendingAddEntries中。
PR - 12565[37]:在删除ManagedLedgerImpl后,取消调度任务。
PR - 12541[38]:为 PulsarVersion 加入 git 分支信息。
PR - 12539[39]:Websocket 应该将加密的上下文传递给 consumer。
PR - 12527[40]:如果 bundle 上的 topics 数少于2,将跳过 split 操作。
PR - 12522[41]:修复原始 ledger 已被删除的 reader,使其跳过压缩数据。
PR - 12493[42]:修复messageDedup,并删除不活跃的 producer 名字。
PR - 12470[43]:优化代码,即删除多余的空格。
PR - 12362[44]:以impl.MLPendingAckStore#closeAsync模式两次完成 Future。
PR - 12240[45]:修复取消订阅的竞态,并删除 topic。
PR - 12217[46]:禁用内置 Pulsar Client 的统计存储器。
PR - 12215[47]:当删除 topic 时,修复删除认证规则的漏洞。
PR - 12045[48]:优化 Cache Eviction 的内存使用。
PR - 12018[49]:避免重复添加BrokerEntryMetadata。
PR - 12015[50]:修复更新的 ledger 清单至 z-node 版本及 ledger 未删除问题。
PR - 11928[51]:修复 TopicPolicies 中的消息永远不会被清除的问题。
PR - 12212[52]:修复返回 consumer 错误的哈希阈值且名称重复的 consumer 问题。
PR - 11839[53]:将 Key_Shared metadata加入至 topic 统计中。
PR - 11795[54]:修复从子模块的构建问题(代理、事务协调器)。
PR - 11934[55]:增加清理事务缓冲区快照的方法。
PR - 11541[56]:提高transactionTest的稳定性。
PR - 13248[57]:增加maven.restlet.org代码仓库。
PR - 13117[58]:修正并改进 topic 所有权分配问题#13069[59]。
PR - 13045[60]:仅评估CURRENT_PROTOCOL_VERSION一次。
PR - 12941[61]:恢复“设置默认 root 日志级别为调试”,并将PULSAR_LOG_ROOT_LEVEL默认为PULSAR_LOG_LEVEL。
PR - 12853[62]:捕获调度任务中的异常,防止意外清除。
PR - 12846[63]:修复 topic 中 的producers映射中被错误移除的 producer 问题。
PR - 12820[64]:同步更新 MessageD 中的inactiveProducers映射。
PR - 12780[65]:在收到异常SendCommand时,关闭连接。
PR - 12699[66]:在创建订阅时,修复被覆盖忽略的命名空间策略。
PR - 12466[67]:将 lombok 更新至 1.18.22 版本。
PR - 12464[68]:修复跳过压缩数据的 reader/consumer 问题。
PR - 12456[69]:移除MultiTopicsConsumerImpl中的数据竞争,以保证正确的消息顺序。
PR - 12451[70]:修复重试 topic 中的REAL_TOPIC和ORIGIN_MESSAGE_ID属性问题。
PR - 12447[71]:更改 producer 防护墙错误日志为调试级别。
PR - 12444[72]:减少readFailureBackoff次数。
PR - 12433[73]:修复NamespaceIsolationDataImpl#secondary中的错误属性名。
PR - 12431[74]:优化 SecurityUtility 代码流。
PR - 12429[75]:修复压缩器问题,使其跳过来自上一个被压缩 ledger 的数据。
PR - 12424[76]:移除冗余代码。
PR - 12417[77]:修复部分未在集成测试中启用的测试。
PR - 12409[78]:对超时任务ClientConnection使用弱引用。
PR - 12397[79]:修复 cherry-pick 问题。
PR - 12367[80]:修复删除系统 topic policy 导致的空点问题。
PR - 12350[81]:更新删除不活跃的 topic 配置文档。
PR - 12345[82]:将日志添加到输出有异常的堆栈。
PR - 12339[83]:避免在关键线程上潜在阻塞对元数据的调用。
PR - 12297[84]:当移除 Cursor 时,修正 NPE 问题。
PR - 12280[85]:当配置加载失败时,输出日志。
PR - 12277[86]:当lastConfirmedEntry带有错误的 entry ID 时,修复错误返回的最后消息 ID 问题。
PR - 12266[87]:修复过期 TTL 不生效的问题。
PR - 12252[88]:负载均衡器应该避免卸载 heartbeat namespace。
PR - 12237[89]:当最后一个消息 ID 来自压缩 ledger 时,修复返回的最后一个消息 ID 拼写错误的问题。
PR - 12225[90]:在 Prometheus 中,添加对 topic 分割和分区标签的支持。
PR - 12223[91]:修复丢失消息的问题# 12221[92]。
PR - 12200[93]:在内存策略范围之外,允许配置 Pulsar 客户端分配器。
PR - 12188[94]:移除冗余参数。
PR - 12168[95]:修复测试中不正确的 logger 编号。
PR - 12161[96]:当原始数据已被删除时,返回最近一次压缩数据的位置。
PR - 12155[97]:在处理 schema 资源时,完善异常抛出问题。
PR - 12132[98]:修复 JWT 中的前缀设置问题,避免多次调用 getProperty。
PR - 12103[99]:修复OpAddEntry回收问题后的被使用问题。
PR - 12097[100]:修复rackAwarePlacementPolicy初始化错误的问题。
PR - 12035[101]:在所有之前的 consumer 断开连接之后,修复用于新的 consumer 的错误 key-hash 选择器问题。
PR - 11982[102]:修复 2.8 分支的 cherry-pick 问题。
PR - 11975[103]:删除NamespaceBundleFactory中未使用的变量和不必要的框。
PR - 11969[104]:在找不到下一个有效位置时,输出位置信息。
PR - 11947[105]:修复 NPE ZkBookieRackAffinityMapping问题。
PR - 11937[106]:避免无限分割 bundle。
PR - 11922[107]:在没有流量时,完善暂停复制的订阅快照的逻辑。
PR - 11886[108]:修复ZKSessionTest.testReacquireLocksAfterSessionLost的问题。
PR - 11856[109]:在 Broker 级别中添加 Schema 兼容策略。
PR - 11771[110]:为BaseMetadataStoreTests使用TestRetrySupport,以在重试时清理状态。
PR - 11718[111]:移除replace_maven-wagon-github.com/apache/pulsar/pull/13392
[2]CVE-2021-45105:github.com/advisories/GHSA-p6xc-xr62-6r2g
[3]PR - 13328:github.com/apache/pulsar/pull/13328
[4]CVE-2021-43797:github.com/advisories/GHSA-wx5j-54mm-rqqq
[5]PR - 13133:github.com/apache/pulsar/pull/13133
[6]PR - 12963:github.com/apache/pulsar/pull/12963
[7]PR - 11681:github.com/apache/pulsar/pull/11681
[8]PR - 11660:github.com/apache/pulsar/pull/11660
[9]PR - 13069:github.com/apache/pulsar/pull/13069
[10]PR - 13066:github.com/apache/pulsar/pull/13066
[11]PR - 12993:github.com/apache/pulsar/pull/12993
[12]PR - 12873:github.com/apache/pulsar/pull/12873
[13]PR - 12773:github.com/apache/pulsar/pull/12773
[14]PR - 12742:github.com/apache/pulsar/pull/12742
[15]PR - 12729:github.com/apache/pulsar/pull/12729
[16]PR - 12721:github.com/apache/pulsar/pull/12721
[17]PR - 12714:github.com/apache/pulsar/pull/12714
[18]PR - 12698:github.com/apache/pulsar/pull/12698
[19]PR - 12675:github.com/apache/pulsar/pull/12675
[20]PR - 12656:github.com/apache/pulsar/pull/12656
[21]PR - 12650:github.com/apache/pulsar/pull/12650
[22]PR - 12647:github.com/apache/pulsar/pull/12647
[23]PR - 12640:github.com/apache/pulsar/pull/12640
[24]@test:github.com/test
[25]PR - 12622:github.com/apache/pulsar/pull/12622
[26]PR - 12619:github.com/apache/pulsar/pull/12619
[27]PR - 12615:github.com/apache/pulsar/pull/12615
[28]PR - 12607:github.com/apache/pulsar/pull/12607
[29]PR - 12606:github.com/apache/pulsar/pull/12606
[30]PR - 12602:github.com/apache/pulsar/pull/12602
[31]PR - 12600:github.com/apache/pulsar/pull/12600
[32]PR - 12598:github.com/apache/pulsar/pull/12598
[33]PR - 12597:github.com/apache/pulsar/pull/12597
[34]PR - 12585:github.com/apache/pulsar/pull/12585
[35]PR - 12582:github.com/apache/pulsar/pull/12582
[36]PR - 12570:github.com/apache/pulsar/pull/12570
[37]PR - 12565:github.com/apache/pulsar/pull/12565
[38]PR - 12541:github.com/apache/pulsar/pull/12541
[39]PR - 12539:github.com/apache/pulsar/pull/12539
[40]PR - 12527:github.com/apache/pulsar/pull/12527
[41]PR - 12522:github.com/apache/pulsar/pull/12522
[42]PR - 12493:github.com/apache/pulsar/pull/12493
[43]PR - 12470:github.com/apache/pulsar/pull/12470
[44]PR - 12362:github.com/apache/pulsar/pull/12362
[45]PR - 12240:github.com/apache/pulsar/pull/12240
[46]PR - 12217:github.com/apache/pulsar/pull/12217
[47]PR - 12215:github.com/apache/pulsar/pull/12215
[48]PR - 12045:github.com/apache/pulsar/pull/12045
[49]PR - 12018:github.com/apache/pulsar/pull/12018
[50]PR - 12015:github.com/apache/pulsar/pull/12015
[51]PR - 11928:github.com/apache/pulsar/pull/11928
[52]PR - 12212:github.com/apache/pulsar/pull/12212
[53]PR - 11839:github.com/apache/pulsar/pull/11839
[54]PR - 11795:github.com/apache/pulsar/pull/11795
[55]PR - 11934:github.com/apache/pulsar/pull/11934
[56]PR - 11541:github.com/apache/pulsar/pull/11541
[57]PR - 13248:github.com/apache/pulsar/pull/13248
[58]PR - 13117:github.com/apache/pulsar/pull/13117
[59]#13069:github.com/apache/pulsar/pull/13069
[60]PR - 13045:github.com/apache/pulsar/pull/13045
[61]PR - 12941:github.com/apache/pulsar/pull/12941
[62]PR - 12853:github.com/apache/pulsar/pull/12853
[63]PR - 12846:github.com/apache/pulsar/pull/12846
[64]PR - 12820:github.com/apache/pulsar/pull/12820
[65]PR - 12780:github.com/apache/pulsar/pull/12780
[66]PR - 12699:github.com/apache/pulsar/pull/12699
[67]PR - 12466:github.com/apache/pulsar/pull/12466
[68]PR - 12464:github.com/apache/pulsar/pull/12464
[69]PR - 12456:github.com/apache/pulsar/pull/12456
[70]PR - 12451:github.com/apache/pulsar/pull/12451
[71]PR - 12447:github.com/apache/pulsar/pull/12447
[72]PR - 12444:github.com/apache/pulsar/pull/12444
[73]PR - 12433:github.com/apache/pulsar/pull/12433
[74]PR - 12431:github.com/apache/pulsar/pull/12431
[75]PR - 12429:github.com/apache/pulsar/pull/12429
[76]PR - 12424:github.com/apache/pulsar/pull/12424
[77]PR - 12417:github.com/apache/pulsar/pull/12417
[78]PR - 12409:github.com/apache/pulsar/pull/12409
[79]PR - 12397:github.com/apache/pulsar/pull/12397
[80]PR - 12367:github.com/apache/pulsar/pull/12367
[81]PR - 12350:github.com/apache/pulsar/pull/12350
[82]PR - 12345:github.com/apache/pulsar/pull/12345
[83]PR - 12339:github.com/apache/pulsar/pull/12339
[84]PR - 12297:github.com/apache/pulsar/pull/12297
[85]PR - 12280:github.com/apache/pulsar/pull/12280
[86]PR - 12277:github.com/apache/pulsar/pull/12277
[87]PR - 12266:github.com/apache/pulsar/pull/12266
[88]PR - 12252:github.com/apache/pulsar/pull/12252
[89]PR - 12237:github.com/apache/pulsar/pull/12237
[90]PR - 12225:github.com/apache/pulsar/pull/12225
[91]PR - 12223:github.com/apache/pulsar/pull/12223
[92]# 12221:github.com/apache/pulsar/issues/12221
[93]PR - 12200:github.com/apache/pulsar/pull/12200
[94]PR - 12188:github.com/apache/pulsar/pull/12188
[95]PR - 12168:github.com/apache/pulsar/pull/12168
[96]PR - 12161:github.com/apache/pulsar/pull/12161
[97]PR - 12155:github.com/apache/pulsar/pull/12155
[98]PR - 12132:github.com/apache/pulsar/pull/12132
[99]PR - 12103:github.com/apache/pulsar/pull/12103
[100]PR - 12097:github.com/apache/pulsar/pull/12097
[101]PR - 12035:github.com/apache/pulsar/pull/12035
[102]PR - 11982:github.com/apache/pulsar/pull/11982
[103]PR - 11975:github.com/apache/pulsar/pull/11975
[104]PR - 11969:github.com/apache/pulsar/pull/11969
[105]PR - 11947:github.com/apache/pulsar/pull/11947
[106]PR - 11937:github.com/apache/pulsar/pull/11937
[107]PR - 11922:github.com/apache/pulsar/pull/11922
[108]PR - 11886:github.com/apache/pulsar/pull/11886
[109]PR - 11856:github.com/apache/pulsar/pull/11856
[110]PR - 11771:github.com/apache/pulsar/pull/11771
[111]PR - 11718:github.com/apache/pulsar/pull/11718
[112]PR - 11655:github.com/apache/pulsar/pull/11655
[113]PR - 11640:github.com/apache/pulsar/pull/11640
[114]PR - 11614:github.com/apache/pulsar/pull/11614
[115]PR - 11606:github.com/apache/pulsar/pull/11606
[116]PR - 11597:github.com/apache/pulsar/pull/11597
[117]PR - 11513:github.com/apache/pulsar/pull/11513
[118]PR - 10837:github.com/apache/pulsar/pull/10837
[119]PR - 10754:github.com/apache/pulsar/pull/10754
[120]PR - 12292:github.com/apache/pulsar/pull/12292
[121]PR - 13112:github.com/apache/pulsar/pull/13112
[122]PR - 12769:github.com/apache/pulsar/pull/12769
[123]PR - 12586:github.com/apache/pulsar/pull/12586
[124]PR - 12492:github.com/apache/pulsar/pull/12492
[125]PR - 12372:github.com/apache/pulsar/pull/12372
[126]PR - 12341:github.com/apache/pulsar/pull/12341
[127]PR - 12335:github.com/apache/pulsar/pull/12335
[128]PR - 12305:github.com/apache/pulsar/pull/12305
[129]PR - 11958:github.com/apache/pulsar/pull/11958
[130]PR - 11954:github.com/apache/pulsar/pull/11954
[131]PR - 11919:github.com/apache/pulsar/pull/11919
[132]PR - 11762:github.com/apache/pulsar/pull/11762
[133]PR - 11668:github.com/apache/pulsar/pull/11668
[134]PR - 11630:github.com/apache/pulsar/pull/11630
[135]PR - 11570:github.com/apache/pulsar/pull/11570
[136]PR - 12504:github.com/apache/pulsar/pull/12504
[137]PR - 12065:github.com/apache/pulsar/pull/12065
[138]PR - 11868:github.com/apache/pulsar/pull/11868
[139]PR - 11831:github.com/apache/pulsar/pull/11831
[140]PR - 10631:github.com/apache/pulsar/pull/10631
[141]PR - 12080:github.com/apache/pulsar/pull/12080
[142]PR - 12457:github.com/apache/pulsar/pull/12457
[143]PR - 11990:github.com/apache/pulsar/pull/11990
[144]PR - 11853:github.com/apache/pulsar/pull/11853
[145]PR - 12973:github.com/apache/pulsar/pull/12973
[146]PR - 12246:github.com/apache/pulsar/pull/12246
[147]PR - 11820:github.com/apache/pulsar/pull/11820
[148]PR - 11706:github.com/apache/pulsar/pull/11706
[149]PR - 12709:github.com/apache/pulsar/pull/12709
[150]PR - 12581:github.com/apache/pulsar/pull/12581
[151]PR - 11683:github.com/apache/pulsar/pull/11683
[152]PR - 12315:github.com/apache/pulsar/pull/12315
[153]PR - 12915:github.com/apache/pulsar/pull/12915
[154]PR - 12436:github.com/apache/pulsar/pull/12436
[155]PR - 12349:github.com/apache/pulsar/pull/12349
[156]PR - 12452:github.com/apache/pulsar/pull/12452
[157]PR - 12443:github.com/apache/pulsar/pull/12443
[158]PR - 12309:github.com/apache/pulsar/pull/12309
[159]PR - 12123:github.com/apache/pulsar/pull/12123
[160]PR - 12809:github.com/apache/pulsar/pull/12809
[161]PR - 12448:github.com/apache/pulsar/pull/12448
[162]PR - 12530:github.com/apache/pulsar/pull/12530
[163]PR - 12458:github.com/apache/pulsar/pull/12458
[164]PR - 11459:github.com/apache/pulsar/pull/11459
[165]PR - 11784:github.com/apache/pulsar/pull/11784
[166]PR - 11809:github.com/apache/pulsar/pull/11809
[167]PR - 11931:github.com/apache/pulsar/pull/11931
[168]PR - 13176:github.com/apache/pulsar/pull/13176
[169]PR - 13161:github.com/apache/pulsar/pull/13161
[170]PR - 12781:github.com/apache/pulsar/pull/12781
[171]PR - 12779:github.com/apache/pulsar/pull/12779
[172]PR - 12673:github.com/apache/pulsar/pull/12673
[173]PR - 12652:github.com/apache/pulsar/pull/12652
[174]PR - 12620:github.com/apache/pulsar/pull/12620
[175]PR - 12588:github.com/apache/pulsar/pull/12588
[176]PR - 12500:github.com/apache/pulsar/pull/12500
[177]PR - 12308:github.com/apache/pulsar/pull/12308
[178]PR - 12259:github.com/apache/pulsar/pull/12259
[179]PR - 12170:github.com/apache/pulsar/pull/12170
[180]PR - 12044:github.com/apache/pulsar/pull/12044
[181]PR - 11988:github.com/apache/pulsar/pull/11988
[182]PR - 11906:github.com/apache/pulsar/pull/11906
[183]PR - 11884:github.com/apache/pulsar/pull/11884
[184]PR - 11828:github.com/apache/pulsar/pull/11828
[185]PR - 11826:github.com/apache/pulsar/pull/11826
[186]PR - 11802:github.com/apache/pulsar/pull/11802
[187]PR - 12469:github.com/apache/pulsar/pull/12469
[188]PR - 12467:github.com/apache/pulsar/pull/12467
[189]PR - 12348:github.com/apache/pulsar/pull/12348
[190]PR - 12148:github.com/apache/pulsar/pull/12148
[191]PR - 11939:github.com/apache/pulsar/pull/11939
[192]PR - 12641:github.com/apache/pulsar/pull/12641
[193]PR - 12108:github.com/apache/pulsar/pull/12108
[194]PR - 12084:github.com/apache/pulsar/pull/12084
[195]PR - 12090:github.com/apache/pulsar/pull/12090
[196]PR - 12642:github.com/apache/pulsar/pull/12642
[197]PR - 12427:github.com/apache/pulsar/pull/12427
[198]PR - 12175:github.com/apache/pulsar/pull/12175
[199]PR - 12058:github.com/apache/pulsar/pull/12058
[200]PR - 11840:github.com/apache/pulsar/pull/11840
[201]PR - 12516:github.com/apache/pulsar/pull/12516
[202]PR - 12092:github.com/apache/pulsar/pull/12092
[203]PR - 12593:github.com/apache/pulsar/pull/12593
[204]PR - 12232:github.com/apache/pulsar/pull/12232
[205]PR - 12130:github.com/apache/pulsar/pull/12130
[206]PR - 11955:github.com/apache/pulsar/pull/11955
[207]PR - 12438:github.com/apache/pulsar/pull/12438
[208]PR - 12398:github.com/apache/pulsar/pull/12398
[209]PR - 12329:github.com/apache/pulsar/pull/12329
[210]PR - 12143:github.com/apache/pulsar/pull/12143
[211]PR - 12666:github.com/apache/pulsar/pull/12666
[212]PR - 12311:github.com/apache/pulsar/pull/12311
[213]PR - 12594:github.com/apache/pulsar/pull/12594
[214]PR - 11971:github.com/apache/pulsar/pull/11971
[215]PR - 12299:github.com/apache/pulsar/pull/12299
[216]PR - 12245:github.com/apache/pulsar/pull/12245
[217]PR - 12111:github.com/apache/pulsar/pull/12111
[218]PR - 12057:github.com/apache/pulsar/pull/12057
[219]下载:pulsar.apache.org/download
[220]提 issue:github.com/apache/pulsar/issues
[221]Apache Pulsar 官方贡献指南:pulsar.apache.org/en/contributing/
▼ 关注「Apache Pulsar」,获取更多技术干货 ▼
???????? 加入 Apache Pulsar 中文交流群 ????????

