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

关于 Apache Pulsar

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

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++: 优化批消息缓存分配。

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

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

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

社区动态

技术干货

————————

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

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

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

posted on 2021-01-05 18:27  Apache-Pulsar  阅读(422)  评论(0)    收藏  举报