脉冲星 8 月脉动 | Pulsar Summit 亚洲峰会 2021 议题征集中!

关于 Apache Pulsar

Apache Pulsar 是 Apache 软件基金会顶级项目,是下一代云原生分布式消息流平台,集消息、存储、轻量化函数式计算为一体,采用计算与存储分离架构设计,支持多租户、持久化存储、多机房跨区域数据复制,具有强一致性、高吞吐、低延时及高可扩展性等流数据存储特性。
GitHub 地址:http://github.com/apache/pulsar/

导语

各位小伙伴们,2021 年 8 月 Pulsar 社区月报来啦!

感谢以下各位社区成员本月对 Pulsar 项目的支持,让 Apache Pulsar 继续发光发热!(排名不分先后,仅限于 GitHub 代码仓库提交记录,看看你有没有上榜 🏆🏆):

@codelipenghui, @Sunny-Island, @gaoran10, @Demogorgon314, @Technoboy-, @frankxieke, @urfreespace, @lhotari, @aloyszhang, @HugoPelletier, @MarvinCai, @massakam, @WJL3333, @equanz, @congbobo184, @goldstar611, @galrose, @tuteng, @liangyepianzhou, @hangc0276, @tspannhw, @dlg99, @oversearch, @freeznet, @Jennifer88huang, @timmyyuan, @Anonymitaet,@ kaushik-develop, @eolivelli, @vroyer, @315157973, @gaozhangmin,@jerrypeng, @BewareMyPower, @rdhabalia,@wuzhanpeng, @sanjivr, @Jason918, @leizhiyuan, @JipeiWang, @sijie, @sijia-w, @merlimat, @wongxingjun, @abhilashmandaliya, @bharanic-dev, @Shoothzj, @ivankelly, @michaeljmarshall, @Nicklee007, @nemecec, @dave2wave, @nicoloboschi

重要进展

Admin

[Admin] 避免重复删除 schema。
https://github.com/apache/pulsar/pull/11640

[Admin] 允许用户通过 pulsar-admin 使用 package URL 创建 function。
https://github.com/apache/pulsar/pull/11666

Broker

[Broker] broker 增加额外的 servlet 支持。
https://github.com/apache/pulsar/pull/11498

[Broker] 压缩 ManagedLedgerInfo。
https://github.com/apache/pulsar/pull/11490

[Broker] 为命名空间指标项增加 AddEntryWithReplicasBytesRate。
https://github.com/apache/pulsar/pull/11472

[Broker] 管理员 Topic 统计增加 ledger 分层存储信息。
https://github.com/apache/pulsar/pull/11465

[Broker] 跨集群复制 schema 信息。
https://github.com/apache/pulsar/pull/11441

[Broker] 添加指标统计游标读写数量。
https://github.com/apache/pulsar/pull/11500

[Broker] 在非持久化 topic 关闭 Reader 时,移除订阅。
https://github.com/apache/pulsar/pull/11731

[Broker] 支持禁用非 TLS 的服务端口。
https://github.com/apache/pulsar/pull/11681

[Broker] 允许 broker 以默认的 backlogquota 配置启动。
https://github.com/apache/pulsar/pull/11671

[Broker] 为 ManagedLedgerFactoryImpl 添加 shutdownGracefully。
https://github.com/apache/pulsar/pull/11517

[Broker] 将 Air Compressor 升级至 0.20 版本。
https://github.com/apache/pulsar/pull/11790

[Broker] 撤销 PR-11594,避免将数据复制到堆外缓冲区。
https://github.com/apache/pulsar/pull/11792

Client

[C++ Client] 简化了 C++ 客户端获取引用数的实现。
https://github.com/apache/pulsar/pull/11535

[Python Client] Python schema 支持与 Record 配合的 Array、Map 类型。
https://github.com/apache/pulsar/pull/11530

[Python Client] 向 Python 客户端的 Reader API 添加 CryptoKeyReader 支持。
https://github.com/apache/pulsar/pull/11447

[Java Client] 移除 Pulsar 实现类运行时的反射。
https://github.com/apache/pulsar/pull/11636

Functions

[Functions] 支持 protobuf schema。
https://github.com/apache/pulsar/pull/11709

[Functions] 修复 terminateFunction 未清理 batch source intermediate topics 导致的 topic 泄露问题。
https://github.com/apache/pulsar/pull/11679

[Function] 支持基于 Java 的 function 与 source 的 KEY_BASED 批处理生成器。
https://github.com/apache/pulsar/pull/11706

网站

[Website] 自动化生成 pulsar 子命令 websocket 文档。
https://github.com/apache/pulsar/pull/11364

[Website] 自动化生成 pulsar 子命令 discovery 文档。
https://github.com/apache/pulsar/pull/11358

[Website] 自动化生成子命令 initialize-cluster-metadata 文档。
https://github.com/apache/pulsar/pull/11327

[Website] 自动化生成子命令 functions-worker 文档。
https://github.com/apache/pulsar/pull/11326

[Website] 升级 Pulsar 网站初始框架。
https://github.com/apache/pulsar/pull/11770

其他

[Build] 将Ubuntu:20.04 做为基础镜像用来制作 Pulsar 容器镜像。
https://github.com/apache/pulsar/pull/11026

[Transaction] 修复 Pulsar 2.8.0 在单机模式下,开启 transaction 时无法正常工作的问题。
https://github.com/apache/pulsar/pull/11494

[PIP 83] 允许 Reader API 读取和发布池化消息。
https://github.com/apache/pulsar/pull/11725

[Pulsar IO] 将 client builder 传递给 debezium 数据库历史记录。
https://github.com/apache/pulsar/pull/11293

[Java] 调整结构化日志的接口。
https://github.com/apache/pulsar/pull/11800

[Test] 使用 TestRetrySupport 作为 BaseMetadataStoreTests 清理重试之间的状态。
https://github.com/apache/pulsar/pull/11771

Bug 修复

Broker

[Broker] 修复删除命名空间时所有 web 线程被卡住的问题。
https://github.com/apache/pulsar/pull/11596

[Broker] 引入回退设置来修复一些主题策略操作问题。
https://github.com/apache/pulsar/pull/11560

[Broker] 修复当使用最早位置订阅主题时数据丢失的问题。
https://github.com/apache/pulsar/pull/11547

[Broker] 将 orElse 替换为 orElseGet。
https://github.com/apache/pulsar/pull/11542

[Broker] 修复基于时间 backlog 配额问题。
https://github.com/apache/pulsar/pull/11509

[Broker] 完善 OffloadPolicysImplBuilder 缺少 OffloadPolicies.Builder 未实现的方法。
https://github.com/apache/pulsar/pull/11453

[Broker] 修复当 preciseTopicPublishRateLimiterEnable=true 时生产消息的问题。
https://github.com/apache/pulsar/pull/11442

[Broker] 修复远端生产者已关闭时复制订阅无法复制新订阅的问题。
https://github.com/apache/pulsar/pull/11382

[Broker] 使用二进制查找服务验证 GetTopicsOfNamespace。
https://github.com/apache/pulsar/pull/11172

[Broker] 修复使用 preciseTopicPublishRateLimiterEnable=true 时 set-publish-rate 的问题。
https://github.com/apache/pulsar/pull/10384

[Broker] 利用 getIfValid 方法来避免 handleMetadataStoreNotification 吞并异常。
https://github.com/apache/pulsar/pull/11656

[Broker] 修复在启用 topic 元数据压缩时,java.nio.ByteBuffer.position(I)Ljava/nio/ByteBuffer出现的 java.lang.NoSuchMethodError 异常。
https://github.com/apache/pulsar/pull/11594

[Broker] 修复 getPreviousPosition 的空指针异常。
https://github.com/apache/pulsar/pull/11621

[Broker] 避免从 offloader 获取 offload 策略时的重复调用。
https://github.com/apache/pulsar/pull/11629

[Broker] 使用 get 代替 join 来避免阻塞。
https://github.com/apache/pulsar/pull/11597

[Broker] 修复集群在抛出 InterceptException 时不返回错误消息的问题。
https://github.com/apache/pulsar/pull/11650

[Broker] 在 ResourceGroupPublishLimiter 内将 executor 传给 RateLimiter.
https://github.com/apache/pulsar/pull/11582

[Broker] 修复处于隔离状态的 topic 无法恢复的问题。
https://github.com/apache/pulsar/pull/11737

[Broker] 丢弃 entry 时调用 .release() 以防止直接内存泄漏。
https://github.com/apache/pulsar/pull/11748

[Broker] 修复关闭 producer 会触发从 map 中移除的问题。
https://github.com/apache/pulsar/pull/11804

[Broker] 发送消息超时时释放内存。
https://github.com/apache/pulsar/pull/11761

Client

[Java Client] 避免为已配置的 reader 创建新的订阅名称。
https://github.com/apache/pulsar/pull/11586

[C++ Client] 修复 Base64 padding 的错误。
https://github.com/apache/pulsar/pull/11578

[Python Client] 增加 record 是否为 None 检查。
https://github.com/apache/pulsar/pull/11559

[C++/Python] 修复 CI 测试 bug.
https://github.com/apache/pulsar/pull/11557

[Java Client] 修复消费者监听响应没有队列大小的问题。
https://github.com/apache/pulsar/pull/11455

[Python Client] 修复忽略所需 key 参数的字段。
https://github.com/apache/pulsar/pull/11508

[C++ Client] 修复 UnAckedMessageTrackerEnabled 中对象释放重用和构造器的相关问题。
https://github.com/apache/pulsar/pull/11630

[Java Client] 修复值为 Null 的 MessageId 可能传递给 compareTo() 方法的问题。
https://github.com/apache/pulsar/pull/11607

[Client] 在 Message.getTopicName() API 中设置并返回 Topic 名称。
https://github.com/apache/pulsar/pull/11743

[Client] 为 rejected 的响应添加 Timeout 配置参数。
https://github.com/apache/pulsar/pull/11688

[Client] 修复在用户队列中排队后方可访问 MessageImpl 的问题。
https://github.com/apache/pulsar/pull/11824

[Client] 修复了多 topic consumer 的竞争条件。
https://github.com/apache/pulsar/pull/11764

其他

[Admin] 修复当更新的 topic 名称包含在已存在的 topic 中时,topic 无法更新的问题。
https://github.com/apache/pulsar/pull/11686

[Admin] 删除命名空间时清理 Znode 数据。
https://github.com/apache/pulsar/pull/11791

[Build] 修复 java_test_functions 构建失败的问题。
https://github.com/apache/pulsar/pull/11829

[Build] 修复在 pulsar/pulsarbroker 和 pulsar/pulsartransaction/coordinator 运行 mvn install -DskipTests 失败的问题。
https://github.com/apache/pulsar/pull/11795

[WebSocket] 在禁用死信队列情况下让查询参数 NegativeAcryDeliveryDelay 生效。
https://github.com/apache/pulsar/pull/11495

[Flaky test] 修复 ManagedLedgerTest.testLedgerReachMaximumRolloverTime。
https://github.com/apache/pulsar/pull/11670

[Tests] 修复 testReacquireLocksAfterSessionLost flaky test 。
https://github.com/apache/pulsar/pull/11815

[Security] 将 Jetty 升级至 9.4.43.v20210629 版本。
https://github.com/apache/pulsar/pull/11660

[Transaction] 修复当 topic 或者 sub 被删除后,transaction buffer client 处理 endTxn 操作时的问题。
https://github.com/apache/pulsar/pull/11304

[Python Schema] 修复 Python Schema 重新定义 Record/Enum 的问题。
https://github.com/apache/pulsar/pull/11595

[Function] 修复 Function/Source/Sink 类型是 ByteBuffer 时出现的类型转换异常。
https://github.com/apache/pulsar/pull/11611

[C++] 修复 broker 无限制向 consumer 推消息导致 consumer 出现的内存使用的问题。
https://github.com/apache/pulsar/pull/11692

[C++] 使一些清理方法线程安全。
https://github.com/apache/pulsar/pull/11762

[Package Management] 修复 wrappedBuffer 始终使用相同内存块的问题。
https://github.com/apache/pulsar/pull/11782

活动与干货

活动

  • 公告
  • 欢迎新晋 Apache Pulsar Committer 成员付睿!
  • Apache Pulsar 生态项目 KoP 新增 Maintainer:吴展鹏
  • 欢迎 2 位新晋 Apache Pulsar PMC 成员:林琳与陈航
  • 中文社区
  • 截至 9 月 30 日:议题征集 | Pulsar Summit Asia 2021 正式启动,开启演讲议题征集!
  • 9 月 11 日:Apache Pulsar x Apache APISIX 线上直播
  • 英文社区
  • TGIP:Pulsar 及其生态系统[1]
  • 9 月 9 日: Webinar Series - Building Microservices with Pulsar[2]
  • 9 月 16 日: Apache Pulsar Deep Dive, an end-to-end view of the data flow[3]
  • 9 月 21-23 日: ApacheCon 2021[4]
  • 9 月 30 日: Apache Pulsar Meetup Japan[5]
  • 10 月 6 日: Pulsar Virtual Summit Europe 2021[6]

博文

  • 博文干货|5张图带你快速入门 Pulsar 的存储引擎 BookKeeper
  • 直播回顾|TGIP-CN 035: Apache Pulsar 动手实战第二期:容器部署实战
  • 博文推荐|有效管理数据安全性—— Pulsar Schema 管理
  • 优雅的故障处理:快速创建 Pulsar 重试队列
  • 在 Docker 环境配置 Pulsar Producer 与Consumer[7]
    -视频回顾|Apache Hudi x Apache Pulsar Meetup 杭州站

生态

-Pulsar 客户端更新 | Go Client 0.6、Node.js Client 1.4.0 版本发布

  • 项目动态 | Apache Pulsar 2.7.3 版本介绍

相关阅读

-脉冲星 7 月脉动
-脉冲星 6 月脉动
以上就是 2021 年 8 月份的脉动之旅,在此感谢参与周报与博客翻译整理的社区志愿者们:段嘉 Janus、姜吉宁 Jimmy,本月报内容也是基于上述志愿者的贡献汇总而成,再次感谢!如果你也想参与我们的社区志愿工作,欢迎加入!

Apache Pulsar 社区鼓励大家积极参与开源社区,无论是文档、代码、翻译,还是技术博客,都欢迎大家积极参与,早日成为 Pulsar contributor,一起加油鸭。

引用链接

[1] TGIP:Pulsar 及其生态系统: https://streamnative.io/resource#tgip
[2] Webinar Series - Building Microservices with Pulsar: https://streamnative.zoom.us/webinar/register/WN_0vVCCqGhQ4G1978pZvxwZg
[3] Apache Pulsar Deep Dive, an end-to-end view of the data flow: https://www.meetup.com/netherlands-apache-pulsar-meetup/events/280174947/
[4] ApacheCon 2021: https://www.apachecon.com/acah2021/
[5] Apache Pulsar Meetup Japan: https://japan-pulsar-user-group.connpass.com/event/222026/
[6] Pulsar Virtual Summit Europe 2021: https://hopin.com/events/pulsar-summit-europe-2021
[7] 在 Docker 环境配置 Pulsar Producer 与Consumer: https://www.lionbloggertech.com/setup-producer-consumer-for-apache-pulsar-running-on-docker/

ApachePulsar

Apache 软件基金会顶级项目,下一代云原生分布式消息流平台,集消息、存储、轻量化函数式计算为一体,采用计算与存储分离架构设计,支持多租户、持久化存储、多机房跨区域数据复制,具有强一致性、高吞吐、低延时及高可扩展性等流数据存储特性。

posted on 2021-09-13 10:22  Apache-Pulsar  阅读(263)  评论(0编辑  收藏  举报