写点什么

Apache Pulsar 12 月月报:Pulsar 2.7.0 发布!

用户头像
Apache Pulsar
关注
发布于: 2021 年 01 月 05 日
Apache Pulsar 12月月报:Pulsar 2.7.0 发布!

关于 Apache Pulsar

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

GitHub 地址:http://github.com/apache/pulsar/

本月报由 StreamNative 团队整理。


导语


各位小伙伴们,2020 年 12 月 Pulsar 社区月报来啦!首先给大家一个迟到的 2021 新年祝福!


本月 Pulsar 社区完善和更新很多产品细节,遍布方方面面。感谢以下各位社区成员本月对 Pulsar 项目的支持,让 Apache Pulsar 继续发光发热!(排名不分先后,看看你有没有上榜 🏆🏆):


@jeames00、@congbobo184、@Renkai、@reswqa 、@lhotari、@codelipenghui、@jerrypeng、@eolivelli、@wolfstudy、@nodece、@erobot、@315157973、@gaoran10、@zymap、@eolivelli、@reswqa、@RobertIndie、@Gjiangtao、@erobot、 @mkozioro、@massakam、@k2la、@Renkai、 @Jennifer88huang、@tuteng、@zsh0139、@Huanli-Meng、@aahmed-se、@sijie、@sijia-w、@rathipry、@hangc0276、@BewareMyPower、@jianyun8023、@merlimat、@aloyszhang、@MarvinCai、@dockerzhang、@rdhabalia、@flowchartsman、@aloyszhang、@jerrypeng、@massakam、@sijie、@jiazhai、@cimura、@zzzming、@codelipenghui、@rdhabalia、@zymap、@saosir、@massakam、@dockerzhang、@Shoothzj、@eolivelli、@gaoran10、@milos-matijasevic、@k2la、@deonvdv、@wangjialing218、@astifter、@yufan022


产品动态

Function

Function: 在 Go Function builder 中支持 key-based 批处理 。

https://github.com/apache/pulsar/pull/8761


Function:为表示 function 状态的 openTable() 调用添加超时。

https://github.com/apache/pulsar/pull/9006


Function: 提供 Function worker 服务的接口。

https://github.com/apache/pulsar/pull/8560


Function:在 Function 中允许修改状态不阻塞 function 运行。

https://github.com/apache/pulsar/pull/9005


Function: 使源 topic 的 schema 信息可用于下游 sinks。

https://github.com/apache/pulsar/pull/8854


Function: 在 Pulsar Functions 中添加 --retain-key-ordering 标识。

https://github.com/apache/pulsar/pull/8886


Function: 支持通过配置 URL 获取 Go 和 Python function。

https://github.com/apache/pulsar/pull/8808


Function Worker: 拆分 Function Worker 和客户端的身份验证逻辑。

https://github.com/apache/pulsar/pull/8824


Package management

Package management: 将包管理服务添加到 Pulsar 启动进程中。

https://github.com/apache/pulsar/pull/8764


Package management: 包管理服务支持 BookKeeper 存储。

https://github.com/apache/pulsar/pull/8744


Tiered storage

Tiered storage: 初始化 offloader 时,只初始化一次即可。

https://github.com/apache/pulsar/pull/8739


Test


Test: pulsar-perf 支持多 consumer 订阅。

https://github.com/apache/pulsar/pull/8837


Java Client

Java Client: Java 客户端支持设置 reader 的订阅名。

https://github.com/apache/pulsar/pull/8801


Java Client: 实现 producer 内存限制。

https://github.com/apache/pulsar/pull/8965


Java Client: 支持 producer 的 WaitForExclusive 创建模式。

https://github.com/apache/pulsar/pull/8992


Schema

Schema: 为 SchemaInfoBuilder 中的属性添加默认值。

https://github.com/apache/pulsar/pull/8952


KoP

KoP: 支持使用指定统计数据更新统计数据。

https://github.com/apache/pulsar/pull/8951


Websocket


Websocket: 支持 WebSocket producer 的 deliveryAt deliverAfter 属性。

https://github.com/apache/pulsar/pull/8945


WebSocket:根据 PulsarClientException 的类型返回状态代码。

https://github.com/apache/pulsar/pull/9031


C++

C++ Client: 为 reader 添加 consumer 配置,用于解密加密的消息。

https://github.com/apache/pulsar/pull/8905


C++ Client: C++ 客户端支持为设置 reader 的内部订阅名称设置添加 setter。

https://github.com/apache/pulsar/pull/8823


C++: 优化批消息缓存分配。<br>

https://github.com/apache/pulsar/pull/8749


C++:更正订阅 API 的参数名称。<br>

https://github.com/apache/pulsar/pull/9037


Broker


Broker: 支持在 topic 级别配置每个 topic 的最大订阅数。

https://github.com/apache/pulsar/pull/8948


Broker: 导出 messageTTL 的 Prometheus 指标。

https://github.com/apache/pulsar/pull/8871


Broker: 实现软件包管理的管理者操作。

https://github.com/apache/pulsar/pull/8816


Broker: 引入轻量级 broker 元数据。

https://github.com/apache/pulsar/pull/8618


Broker: 添加用于包管理服务的 REST API。

https://github.com/apache/pulsar/pull/8858


Broker: 将软件包管理服务添加到 Pulsar 启动进程过程中。

https://github.com/apache/pulsar/pull/8764


Broker: 将 getWebServiceUrl 方法更改为异步。

https://github.com/apache/pulsar/pull/8746


Broker: 支持客户端软件包管理命令。

https://github.com/apache/pulsar/pull/8817


Broker:引入 Pulsar 的连续偏移量。

https://github.com/apache/pulsar/pull/9039


Broker:为 KoP 添加 updateRates 方法,采集发布速率。

https://github.com/apache/pulsar/pull/9049


Broker:支持配置 Netty Acceptor 线程池大小。

https://github.com/apache/pulsar/pull/9061


Broker:支持查看 broker entry 元数据。

https://github.com/apache/pulsar/pull/9067


Broker: 支持限制每个 namespace 的最大 topic 数量。

https://github.com/apache/pulsar/pull/8942


Broker: 暴露不连续的已删除消息的统计数据。

https://github.com/apache/pulsar/pull/8936


Broker: 添加 beforeSendMessage 方法,在将 entry 发送给 consumer 之前拦截 entry。

https://github.com/apache/pulsar/pull/8932


Broker: 支持在 namespace 级别配置每个 topic 的最大订阅数量。

https://github.com/apache/pulsar/pull/8924


Broker:改进 broker 不信任客户端证书时的错误处理。

https://github.com/apache/pulsar/pull/8998


Broker:使 namespace 隔离策略更新及时生效。

https://github.com/apache/pulsar/pull/8976


Broker:为 SubscriptionBusyException 添加 if 分支。

https://github.com/apache/pulsar/pull/9017


Broker:删除重复的 broker Prometheus 指标类型。

https://github.com/apache/pulsar/pull/8995


Broker:添加原始 Prometheus 指标提供者。

https://github.com/apache/pulsar/pull/9021


Broker:支持 Pulsar-admin 自动刷新证书。

https://github.com/apache/pulsar/pull/8831a


其他

引入 Pulsar 的的连续偏移量。

https://github.com/apache/pulsar/pull/9039


Perf: pulsar-perf 支持从 conf 文件加载 WebSocket 服务 URL。

https://github.com/apache/pulsar/pull/9000


SQL:为 SQL 测试添加重试。

https://github.com/apache/pulsar/pull/9010


Bug 修复


Broker


Broker: 使用新的线程删除非持久化订阅,以避免在删除不活跃订阅时出现死锁。

https://github.com/apache/pulsar/pull/8820


Broker: 支持在删除给定 namespace 时删除其所有 topic。

https://github.com/apache/pulsar/pull/8806


Broker: 删除从不同线程中删除 topic 的非持久永久订阅,从而避免在删除非活动订阅时出现死锁。

https://github.com/apache/pulsar/pull/8820


Broker: 修复了因无效的日志记录配置导致的性能问题。

https://github.com/apache/pulsar/pull/8908


Broker: 检查消息到期时复制订阅列表,避免死锁。

https://github.com/apache/pulsar/pull/8877


Broker: 修复因消息保留而导致空 topic 无法获取 lastMessageId 的问题。

https://github.com/apache/pulsar/pull/8725


Broker:修复 PersistentStickyKeyDispatcherMultipleConsumers 中的 NPE。

https://github.com/apache/pulsar/pull/8969


Broker: 清理无法从缓存中卸载的 topic。

https://github.com/apache/pulsar/pull/8968


Broker: 更新 Maven 工件版本。

https://github.com/apache/pulsar/pull/8966


Broker: 解决了元数据导致的兼容性的问题。

https://github.com/apache/pulsar/pull/8959


Broker: 修复了在没有分发速率限制的情况下卸载 topic 后,订阅的分发速率无法工作的问题。

https://github.com/apache/pulsar/pull/8947


Broker: 确保动态更新 rack 信息。

https://github.com/apache/pulsar/pull/8844


Broker: 修复 Pulsar broker 中项目的格式错误。

https://github.com/apache/pulsar/pull/8933


Broker:修复 DelayedDelivery 在 broker 层级有一个默认值的问题。

https://github.com/apache/pulsar/pull/9030


Function

Function: 修复添加到用户配置中的单引号的问题。

https://github.com/apache/pulsar/pull/8780


Function: 修复了 Go Function 丢弃消息触发的 panic。

https://github.com/apache/pulsar/pull/8776


C++ Client: 修复 BlockingQueue 中的竞态条件。

https://github.com/apache/pulsar/pull/8765


Schema: GenericJsonReader 将空值转换为字符串“null”。

https://github.com/apache/pulsar/pull/8883


Client

Java Client: 修复当 Pulsar 客户端收到来自已关闭 producer 发布的消息确认时出现的 NPE 问题。

https://github.com/apache/pulsar/pull/8979


Java Client: 在发送 TimeoutException 进行故障排除时添加更多信息。

https://github.com/apache/pulsar/pull/8931


Java Shade Client: 添加加密集成测试。

https://github.com/apache/pulsar/pull/8850


Pulsar Client: 修复带有加密字段(*****) 的 authParams 参数在日志中显示的问题。

https://github.com/apache/pulsar/pull/8910


Client:修复不可用的 Hash 范围条件。

https://github.com/apache/pulsar/pull/9041


Admin

Admin: 修复 AdminApiTest2.testMaxSubPerTopicApi 的 Flaky test。

https://github.com/apache/pulsar/pull/8970


Pulsar-managed-ledger-admin:修复删除多个 ledger。

https://github.com/apache/pulsar/pull/9009


Pulsar CI

Pulsar CI: 通过在 MAVEN_OPTS 环境变量中传递 -Dhttp.keepAlive = false -Dmaven.wagon.http.pool = false 来禁用 Maven 的 HTTP 连接池。

https://github.com/apache/pulsar/pull/8921


其他

Pulsar IO: 修复 pulsar-io.yaml 文件名和 sourceConfigClass 类。

https://github.com/apache/pulsar/pull/8941


Schema: 修复自定义 Avro schema 不适用于 consumer 的问题。

https://github.com/apache/pulsar/pull/8939


Pulsar Build: 使用绝对路径查找许可证和 checkstyle 插件配置。

https://github.com/apache/pulsar/pull/8918


Pulsar Package: 修复包无法上传的问题。

https://github.com/apache/pulsar/pull/8907


Common:修复查看压缩消息时引发异常的问题(Airlift 不支持只读缓冲区)。

https://github.com/apache/pulsar/pull/8990


Transaction:修复 transaction 消息顺序错误和去重错误。

https://github.com/apache/pulsar/pull/9024


Proxy:从代理服务器向客户端返回正确的 Authz 和 Auth 错误。

https://github.com/apache/pulsar/pull/9055


社区动态


- Pulsar Summit Asia 2020 视频回顾

- ApacheCon 2020 - Pulsar/ BookKeeper 专场


技术干货


————————


以上就是 2020 年 12 月份的脉动之旅。Apache Pulsar 正在快速成长,感谢来自大家的支持!


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


如果你对 Pulsar Contribute 的流程不太熟练,也可以参考我们这篇小教程,让你熟悉如何通过 GitHub 对 Pulsar 进行贡献:新手向|非技术人员如何参与 Pulsar 项目进行贡献


发布于: 2021 年 01 月 05 日阅读数: 58
用户头像

Apache Pulsar

关注

下一代云原生分布式消息流平台 2017.10.17 加入

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

评论

发布
暂无评论
Apache Pulsar 12月月报:Pulsar 2.7.0 发布!