关于 Apache Pulsar导语Apache Pulsar 是 Apache 软件基金会顶级项目,是下一代云原生分布式消息流平台,集消息、存储、轻量化函数式计算为一体,采用计算与存储分离架构设计,支持多租户、持久化存储、多机房跨区域数据复制,具有强一致性、高吞吐、低延时及高可扩展性等流数据存储特性。
GitHub 地址:http://github.com/apache/pulsar/
各位小伙伴们,2021 年 7 月 Pulsar 社区月报来啦!
感谢以下各位社区成员本月对 Pulsar 项目的支持,让 Apache Pulsar 继续发光发热!(排名不分先后,仅限于 GitHub 代码仓库提交记录,看看你有没有上榜 ????????):
重要进展Technoboy-、ericsyh、merlimat、codelipenghui、wangjialing218、sursingh、yangl、cimura、mattisonchao、hangc0276、urfreespace、yonyong、newur、wuzhanpeng、sh05、bem3、murong00、linlinnn、kaushik-develop、aloyszhang、tuteng、wolfstudy、abhilashmandaliya、wuzhanpeng、Jason918、GabrielNicolasAvellaneda、aahmed-se、danielorf、congbobo184、massakam、ravi-vaidyanathan、danielsinai、BewareMyPower、liangyepianzhou、lhotari、315157973、Anonymitaet、freeznet、zliang-min、rfigueroa、Demogorgon314、jerrypeng、eolivelli、RobertIndie、kaushik-develop、equanz、kaushik-develop、gaoran10、nlu90、Shoothzj、horizonzy、rdhabalia、Demogorgon314、zymap、rfigueroa
Admin
Admin:开启 batch 消息加密窥视。
https://github.com/apache/pulsar/pull/11244
Admin:使用 peekMessage
或 getMessageById
向 Admin CLI 暴露更多消息属性来获取消息信息。
https://github.com/apache/pulsar/pull/11279
Broker
Broker:增加 Broker 一阶段压缩循环时间超时配置项。
https://github.com/apache/pulsar/pull/11206
Broker:调整 getDynamicConfigurationDouble
和 DynamicConfigurationBoolean
的实现方式。
https://github.com/apache/pulsar/pull/11171
Broker:清理部分冗余代码。
https://github.com/apache/pulsar/pull/11071
Broker/Bookie:给 Pulsar 进程设置 Dio.netty.tryReflectionSetAccessible=true
。
https://github.com/apache/pulsar/pull/11138
Broker:删除集群时关闭复制器和复制客户端。
https://github.com/apache/pulsar/pull/11342
Broker:支持设置多个角色进行授权。
https://github.com/apache/pulsar/pull/11341
Broker:删除 Pulsar 集群时关闭 replicator 和 replication client。
https://github.com/apache/pulsar/pull/11342
C++
C++:添加 transaction Admin API getPendingAckInternalStats
。
https://github.com/apache/pulsar/pull/10725
C++:设置 socket 选项时避免抛出异常。
https://github.com/apache/pulsar/pull/11329
C++:支持在 Windows 操作系统上构建 Pulsar C++ 调试库。
https://github.com/apache/pulsar/pull/11302
Policy
Policy:支持将 Null
设置为命名空间级订阅 TTL。
https://github.com/apache/pulsar/pull/11253
Policy:添加 Redis sink 的使用举例。
https://github.com/apache/pulsar/pull/11222
Go Functions
Go Functions:设置 Go function 运行时的订阅名称。
https://github.com/apache/pulsar/pull/11332
Go Functions:升级 Go 客户端至 0.5.0。
https://github.com/apache/pulsar/pull/11336
Pulsar IO
Pulsar IO:确保 AbstractKafkaSourceRecord
的 ack()
方法没有阻塞以避免死锁。
https://github.com/apache/pulsar/pull/11435
Pulsar IO:允许 Pulsar IO sink connector 使用原生 AVRO 和 JSON 格式。
https://github.com/apache/pulsar/pull/11322
Test
Test:使用 Awaitility
模块来替换 Thread.sleep
方法。
https://github.com/apache/pulsar/pull/11164
Test:给 MaxRequestSizeFilter
增加新的测试。
https://github.com/apache/pulsar/pull/11128
Test:给 ProcessHandlerFilter
增加新的测试。
https://github.com/apache/pulsar/pull/11133
其他
Connector:支持多个 Elasticsearch 主机。
https://github.com/apache/pulsar/pull/10973
NiFi:修复 NarUnpacker 中的并发问题。
https://github.com/apache/pulsar/pull/11343
Tiered-storage:移除不使用的监听器来减少线程池的创建。
https://github.com/apache/pulsar/pull/11215
Website:增加一个本地调试工具用于查阅 Pulsar 网站内容更新。
https://github.com/apache/pulsar/pull/11160
Pulsar Adapters:添加 Apache Pulsar Adapter 2.8.0 的下载链接到下载页面(仅限于源码压缩包)。
https://github.com/apache/pulsar/pull/11247
PIP 85:通过 Pulsar Functions 和 Pulsar connector 的 BaseContext
来暴露 Pulsar 客户端。
https://github.com/apache/pulsar/wiki/PIP-85%3A-Expose-Pulsar-Client-via-Function-Connector-BaseContext https://github.com/apache/pulsar/pull/11056
pulsar-perf:为 pulsar-perf CLI 命令添加缺少的参数。
https://github.com/apache/pulsar/pull/11337
BookKeeper:删除重复的配置。
https://github.com/apache/pulsar/pull/11283
Pulsar Dashboard:移除 Pulsar Dashboard。
https://github.com/apache/pulsar/pull/11284
Python Client:支持复杂的 schema。
https://github.com/apache/pulsar/pull/11400
Monitor: 将 storageLogicalSize
统计指标添加到 TopicStats
和 NamespaceStats
。
https://github.com/apache/pulsar/pull/11430
Broker
Broker:修复在使用 CommandSubscribe.getConsumerName()
时没有进行确认的问题。
https://github.com/apache/pulsar/pull/11199
Broker:修复 Broker 重启后 topic 保留策略不生效的问题。
https://github.com/apache/pulsar/pull/11136
Broker:修复在重置游标后,订阅权限不生效的问题。
https://github.com/apache/pulsar/pull/11132
Broker:修改 resetCursor
中 timestamp 的描述。
https://github.com/apache/pulsar/pull/11121
Broker:修复在没有配置 AppendBrokerTimestampMetadataInterceptor
并开启 BrokerEntryMetadata
时,出现 fix publish_time
没有设置的报错。
https://github.com/apache/pulsar/pull/11014
Broker:修复 2.7 分支的 broker 发送限流器。
https://github.com/apache/pulsar/pull/11249
Broker:修复卸载持久分区主题时发生的 NullPointerException 问题。
https://github.com/apache/pulsar/pull/11301
Broker:解决使用分区主题名称获取主题级策略的 issue。
https://github.com/apache/pulsar/pull/11294
Broker:解决压缩中保留密钥的 issue 。
https://github.com/apache/pulsar/pull/11287
Broker:修复使用复制订阅和 Key_Shared consumer 时,broker 泄漏直接内存的问题。
https://github.com/apache/pulsar/pull/11396
Broker:修复内置连接器不存在时发生的 NPE。
https://github.com/apache/pulsar/pull/11385
Broker:删除 topic 后删除 topic 级策略。
https://github.com/apache/pulsar/pull/11316
Client
Client:修复客户端在使用 hasMessageAvailableAsync
和 readNextAsync
时引起的死锁问题。
https://github.com/apache/pulsar/pull/11183
C++ client:移除客户端 namespace 中 std::regex
的使用以避免 C++ core dump 问题。
https://github.com/apache/pulsar/pull/11179
Client:修复 WebSocket 的 TLS 漏洞。
https://github.com/apache/pulsar/pull/11243
Client:修复由于 ConfigurationStoreServers
为空导致集群数据检索失败的问题。
https://github.com/apache/pulsar/pull/11234
Client:避免关闭 consumer 时无限等待。
https://github.com/apache/pulsar/pull/11347
C++ Client:在 ZTSClient
中使用相同的正则表达式代码。
https://github.com/apache/pulsar/pull/11323
Function
Function:降低缓存不一致的概率。
https://github.com/apache/pulsar/pull/11423
Python Function:修复 Python Functions 运行时不支持 tls_validate_hostname
的问题。
https://github.com/apache/pulsar/pull/11087
Functions:修复一些方法使用不准确的问题。
https://github.com/apache/pulsar/pull/11167
Functions:修复 getSinkInfo
没有正确返回 topic 列表的问题。
https://github.com/apache/pulsar/pull/11094
Test
Test:修复硬编码 token 导致鉴权测试失败的问题。
https://github.com/apache/pulsar/pull/11186
Test:对 ZookeeperServerTest
进行简单的重构。
https://github.com/apache/pulsar/pull/11181
Test:修复 PR 11118 中引入的一些错误。
https://github.com/apache/pulsar/pull/11176
Test:修复 LoadBalancerTest
的 flaky test 中 testBrokerRanking
方法偶尔失效的问题。
https://github.com/apache/pulsar/pull/11150
Test:将 ReplicatorTest
测试组修改为 broker,并修复测试问题。
https://github.com/apache/pulsar/pull/11134
Test:修复 TopicFromMessageTest
flaky test 中 testMultiTopicConsumerBatchShortName
方法偶尔失效的问题。
https://github.com/apache/pulsar/pull/11125
Test:修复客户端工具测试中 TimeUnit
设置问题。
https://github.com/apache/pulsar/pull/11118
Test:修复 testBrokerRanking
flaky test 的问题。
https://github.com/apache/pulsar/pull/11114
Test:修复 2.7 分支的测试用例。
https://github.com/apache/pulsar/pull/11254
Transaction
Transaction:修复在 MLTransactionLog
初始化时可能引起的死锁问题。
https://github.com/apache/pulsar/pull/11194
Transaction:修复与提交和中止标记相关的直接内存泄漏的问题。
https://github.com/apache/pulsar/pull/11407
其他
Compaction:修复从已压缩的 ledger
读取数据时抛出异常的问题。
https://github.com/apache/pulsar/pull/11175
Policy:修复因保留大小策略删除过多 ledgers 的问题。
https://github.com/apache/pulsar/pull/11242
Metrics:修复一些缺失的 replicator 的指标。
https://github.com/apache/pulsar/pull/11264
Ledger:修复了 2.7 分支中 ledger 的任务调度流转逻辑。
https://github.com/apache/pulsar/pull/11226
Build:在 internalGetMessageIdByTimestamp
方法中使用 entryTimestamp
进行到期检查。
https://github.com/apache/pulsar/pull/11220
Common:修复命名空间 bundle 缓存的不一致行为。
https://github.com/apache/pulsar/pull/11346
C++:修复某些编译器中缺少头文件引入的问题。
https://github.com/apache/pulsar/pull/11152
C++:修复 Dockerfile 中的启动下载链接问题。
https://github.com/apache/pulsar/pull/11129
Admin:修复查看消息时 batch size 小于 0 的错误。
https://github.com/apache/pulsar/pull/11301
Admin:修复在创建特定分区的订阅时仅列出为 Partition-0
创建的订阅的问题。
https://github.com/apache/pulsar/pull/11355
CLI:修复在验证批处理源配置时的 pulsar-admin CLI 工具中的问题。
https://github.com/apache/pulsar/pull/11378
活动
•Pulsar Virtual Summit Europe 2021 报名启动[1]•
以上就是 2021 年 7 月份的脉动之旅,在此感谢参与周报与博客翻译整理的社区志愿者们:ericsyh、侯盛鑫,本月报内容也是基于上述志愿者的贡献汇总而成,再次感谢!如果你也想参与我们的社区志愿工作,欢迎加入!
Apache Pulsar 社区鼓励大家积极参与开源社区,无论是文档、代码、翻译,还是技术博客,都欢迎大家积极参与,早日成为 Pulsar contributor,一起加油鸭。
引用链接
[1]
Pulsar Virtual Summit Europe 2021 报名启动: https://hopin.com/events/pulsar-summit-europe-2021[2]
Pulsar Summit 2021 北美峰会 -技术探究专场: https://www.bilibili.com/video/BV1C64y197Db[3]
Pulsar 2.8.0 新增特性概览:独占 Producer、事务等: https://www.bilibili.com/video/BV1zb4y1Q7gT