关于 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 周边哦!
技术干货
- Impact of Apache Pulsar 2.7 release on the development of Infinitic
- Cloud-Native Apache Pulsar 2.7 Supports Transactions and Azure Blob Storage Offloader
- Work-Bench Snapshot: Augmenting Streaming and Batch Processing Workflows
- How Apache Pulsar is Helping Iterable Scale its Customer Engagement Platform
- Using Apache Pulsar With Kotlin -- Gilles Barbier
- Pulsar 2.7.0 新特性
- Pulsar Flink Connector 2.7.0 新特性
以上就是 2020 年 12 月份的脉动之旅。Apache Pulsar 正在快速成长,感谢来自大家的支持!
Apache Pulsar 社区鼓励大家积极参与开源社区,无论是文档、代码、翻译,还是技术博客,都欢迎大家积极参与,早日成为 Pulsar contributor,一起加油鸭。
如果你对 Pulsar Contribute 的流程不太熟练,也可以参考我们这篇小教程,让你熟悉如何通过 GitHub 对 Pulsar 进行贡献:新手向|非技术人员如何参与 Pulsar 项目进行贡献。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。