关于 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/pul...

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

https://github.com/apache/pul...

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

https://github.com/apache/pul...

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

https://github.com/apache/pul...

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

https://github.com/apache/pul...

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

https://github.com/apache/pul...

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

https://github.com/apache/pul...

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

https://github.com/apache/pul...

Package management

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

https://github.com/apache/pul...

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

https://github.com/apache/pul...

Tiered storage

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

https://github.com/apache/pul...

Test

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

https://github.com/apache/pul...

Java Client

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

https://github.com/apache/pul...

Java Client: 实现 producer 内存限制。

https://github.com/apache/pul...

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

https://github.com/apache/pul...

Schema

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

https://github.com/apache/pul...

KoP

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

https://github.com/apache/pul...

Websocket

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

https://github.com/apache/pul...

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

https://github.com/apache/pul...

C++

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

https://github.com/apache/pul...

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

https://github.com/apache/pul...

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

https://github.com/apache/pul...

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

https://github.com/apache/pul...

Broker

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

https://github.com/apache/pul...

Broker: 导出 messageTTL 的 Prometheus 指标。

https://github.com/apache/pul...

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

https://github.com/apache/pul...

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

https://github.com/apache/pul...

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

https://github.com/apache/pul...

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

https://github.com/apache/pul...

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

https://github.com/apache/pul...

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

https://github.com/apache/pul...

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

https://github.com/apache/pul...

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

https://github.com/apache/pul...

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

https://github.com/apache/pul...

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

https://github.com/apache/pul...

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

https://github.com/apache/pul...

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

https://github.com/apache/pul...

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

https://github.com/apache/pul...

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

https://github.com/apache/pul...

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

https://github.com/apache/pul...

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

https://github.com/apache/pul...

Broker:为 SubscriptionBusyException 添加 if 分支。

https://github.com/apache/pul...

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

https://github.com/apache/pul...

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

https://github.com/apache/pul...

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

https://github.com/apache/pul...

其他

引入 Pulsar 的的连续偏移量。

https://github.com/apache/pul...

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

https://github.com/apache/pul...

SQL:为 SQL 测试添加重试。

https://github.com/apache/pul...

Bug 修复

Broker

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

https://github.com/apache/pul...

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

https://github.com/apache/pul...

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

https://github.com/apache/pul...

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

https://github.com/apache/pul...

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

https://github.com/apache/pul...

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

https://github.com/apache/pul...

Broker:修复 PersistentStickyKeyDispatcherMultipleConsumers 中的 NPE。

https://github.com/apache/pul...

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

https://github.com/apache/pul...

Broker: 更新 Maven 工件版本。

https://github.com/apache/pul...

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

https://github.com/apache/pul...

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

https://github.com/apache/pul...

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

https://github.com/apache/pul...

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

https://github.com/apache/pul...

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

https://github.com/apache/pul...

Function

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

https://github.com/apache/pul...

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

https://github.com/apache/pul...

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

https://github.com/apache/pul...

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

https://github.com/apache/pul...

Client

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

https://github.com/apache/pul...

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

https://github.com/apache/pul...

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

https://github.com/apache/pul...

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

https://github.com/apache/pul...

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

https://github.com/apache/pul...

Admin

Admin: 修复 AdminApiTest2.testMaxSubPerTopicApi 的 Flaky test。

https://github.com/apache/pul...

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

https://github.com/apache/pul...

Pulsar CI

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

https://github.com/apache/pul...

其他

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

https://github.com/apache/pul...

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

https://github.com/apache/pul...

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

https://github.com/apache/pul...

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

https://github.com/apache/pul...

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

https://github.com/apache/pul...

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

https://github.com/apache/pul...

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

https://github.com/apache/pul...

社区动态

  • Pulsar User Survey 2020

点击“阅读原文”或扫码下方二维码,参与 Pulsar 2020 用户调查,填写问卷有机会获得新版 Pulsar 周边哦!

技术干货


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

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

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


ApachePulsar
192 声望939 粉丝

Apache软件基金会顶级项目,下一代云原生分布式消息系统