脉冲星 3 月脉动 | Pulsar 2.7.1 版本发布!

300 阅读6分钟

关于 Apache Pulsar

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

导语

各位小伙伴们,2021 年 3 月 Pulsar 社区月报来啦!新年伊始,Pulsar 有哪些新年新气象呢?和我们一起来看看吧。

感谢以下各位社区成员本月对 Pulsar 项目的支持,让 Apache Pulsar 继续发光发热!(排名不分先后,看看你有没有上榜 🏆🏆):

congbobo184、hangc0276、eolivelli 、Huanli-Meng、 lhotari、zymap、 jerrypeng、david-streamlio、michaeljmarshall、Anonymitaet、kandersen82、klwilson227、freeznet、MarvinCai、RobertIndie、rdhabalia、fmiguelez、315157973、sijia-w、sakurafly123、tuteng、congbobo184、dlg99、timmyyuan、Jennifer88huang、yangl、aahmed-se、BewareMyPower、caladogan、gaoran10、csthomas1、wuzhanpeng、linlinnn、mauza、xiaotongwang1、limingnihao、murong00、merlimat、codelipenghui、fanjeff、patricklucas、golden-yang、mlyahmed、limingnihao 、BewareMyPower、HugeSkull、hnail、massakam、wolfstudy、bithavoc

重要进展

Broker

Broker:支持获取应用的 BlacklogQuota
github.com/apache/puls…

Broker:支持获取应用的 SubscriptionDispatchRate
github.com/apache/puls…

Broker:将待处理的读订阅指标添加到 stats-internal。
github.com/apache/puls…

Broker:为 PulsarService#getAdminClient 添加 NPE 检查。
github.com/apache/puls…

Broker:防止使用无效的 broker 或 proxy configuration 设置授权。
github.com/apache/puls…

Broker:将 getWorkerService 方法更改为抛出 UnsupportedOperationException
github.com/apache/puls…

Broker:如果响应已经提交,则不添加 broker-address 标头。
github.com/apache/puls…

Broker:验证 /offload 请求的参数。
github.com/apache/puls…

Broker:支持获取已应用的 PersistencePolicies
github.com/apache/puls…

Broker:支持获取已应用的 clusterSubscribeRate
github.com/apache/puls…

Broker:支持获取已应用 dispatchRate
github.com/apache/puls…

Broker:支持获取压缩阀值。
github.com/apache/puls…

Build

Build:从 Pulsar docker 镜像中删除 .deb包。
github.com/apache/puls…

Build:将 pulsar-io-kafka-connect-adaptor 拆分为 JAR 和 NAR 模块。
github.com/apache/puls…

Build:启用详细的 Java 编译器告警。
github.com/apache/puls…

Build:设置项目版本时,更新 terraform 文件中的 Pulsar 版本。
github.com/apache/puls…

C++

C++ client:从 C++ 库中删除 gtest 文件。
github.com/apache/puls…

C++ Client:实现 C++ producer 中内存限制。
github.com/apache/puls…

CI

CI:在重试或继续执行下一测试之前,清除测试失败的状态。
github.com/apache/puls…

CI:在CI测试中添加 apache-rat check。
github.com/apache/puls…

CI:将集成测试命令重构为 run_integration_group.sh 脚本。
github.com/apache/puls…

CI:使用 DiagnosticCommand JMX MBean 实现线程转储。
github.com/apache/puls…

CI:通过仅涵盖选定的 connectors 来减小集成测试镜像的大小。
github.com/apache/puls…

Client

Go client:将 JWT-Go 版本更新为 v4。
github.com/apache/puls…

Pulsar Client:支持输出GenericRecord 内容。
github.com/apache/puls…

WebSocket Client:支持浏览器客户端进行 token 身份验证。
github.com/apache/puls…

Pulsar-client:Pulsar REST API、pulsar-admin 和 pulsar-client CLI 工具增加获取 Pulsar 版本的命令。
github.com/apache/puls…

Client: 支持为 MultiTopicsReaderImpl 设置多 topic。
github.com/apache/puls…

Client:使用不同的 listener-threads 处理不同分区 topic 的消息。
github.com/apache/puls…

Transaction

Transactions:对 End transaction 操作进行重试。
github.com/apache/puls…

Transactions:支持检查 transaction 状态。
github.com/apache/puls…

Transactions:实现 transaction 缓冲区快照。
github.com/apache/puls…

Transactions:清除 transaction buffer 中取消的 transaction。
github.com/apache/puls…

其他

Common:优化 ConcurrentOpenHashMap,缩短读锁死的持续时间。
github.com/apache/puls…

WebSocket:在 WebSocket 服务器中支持 pong 逻辑。
github.com/apache/puls…

WebSocket:允许 WebSocket proxy 在不解密的情况下将消息传递给客户端消费。
github.com/apache/puls…

Authentication: 在AuthenticationTls 中支持序列化 stream-provider 字段。
github.com/apache/puls…

Kafka:在 KafkaBytesSource 中支持 KeyValue
github.com/apache/puls…

Pulsar SQL:支持查询大写的 topic。
github.com/apache/puls…

Utils:转储 pulsar-perf 的 JVM 信息。
github.com/apache/puls…

Deployment:更新 Ansible 的部署配置中 Pulsar 的版本至 2.7.0。
github.com/apache/puls…

Pulsar-admin:添加命令以获取 leader broker 的 service URL。
github.com/apache/puls…

Pulsar-Discovery:在 discoveryservice 中将 ZooKeeper 替换为 MetadataStore
github.com/apache/puls…

Schema:将 Apache Avro 升级到 1.10.2 版本。
github.com/apache/puls…

Metrics:添加 broker 连接指标。
github.com/apache/puls…

Pulsar IO:Kafka source connector 支持管理 Avro 编码的消息。
github.com/apache/puls…

Test::将 TestNG 组添加到 Pulsar broker。
github.com/apache/puls…

Bug 修复

Broker

Broker:修复 2.7 分支上 Topic 为空时 hasMessageAvailable() 导致的错误。
github.com/apache/puls…

Broker:修复 2.7 分支上获取 topic 应用策略时未检查 topic 所有权的问题。
github.com/apache/puls…

Broker:修复主分支上获取 topic 应用策略时未检查 topic 所有权的问题。
github.com/apache/puls…

Broker:修复PersistentReplicator 中的 NPE 和线程安全问题。
github.com/apache/puls…

Broker:修复如果达到最大订阅限制,consumer 无法使用较旧的订阅来消费消息的问题。
github.com/apache/puls…

Broker:即使 Web 服务无法关闭,也可以继续正常关闭 broker 服务。
github.com/apache/puls…

Broker:记录在 ExecutorProvider 中超时后,在关闭时未终止的线程栈轨迹的日志。
github.com/apache/puls…

Broker:支持在 broker.conf 文件中禁用 tenants/namespaces 强制删除。
github.com/apache/puls…

Broker:允许 broker 发现并解锁卡住的订阅。
github.com/apache/puls…

Broker:修复 zkBookieRackAffinityMapping 漏洞,支持 BookKeeper 的 dnsResolver
github.com/apache/puls…

Broker:修复在 key_shared 订阅模式下无法消费非持久消息的问题。
github.com/apache/puls…

Broker:修复更新 lastLedgerCreationInitiationTimestamp 时出现的时间单位错误的问题。
github.com/apache/puls…

C++

C++:修复已暂停的零队列 consumer 仍预取消息的问题。
github.com/apache/puls…

C++:支持简单地配置调试级别的日志。
github.com/apache/puls…

C++:修复从接收到的消息 ID 中获取 topic 名称时的分割错误。
github.com/apache/puls…

Client

Java client:修复 ClientCnx 中的 NPE。
github.com/apache/puls…

Go client:修复 lookup service 中的 socket 泄漏的问题。
github.com/apache/puls…

Client:确保可以关闭单 topic 的 consumer。
github.com/apache/puls…

Client:修复从字节数组反序列化时未设置批处理大小的问题。
github.com/apache/puls…

Client:修复当达到最大订阅数时执行的无用重试的问题。
github.com/apache/puls…

Functions

Functions:启用服务器端路由以存储状态。
github.com/apache/puls…

Functions:传递来自 Pulsar source 的记录属性。
github.com/apache/puls…

Schema

Schema:暴露 struct schema 的原始记录。
github.com/apache/puls…

Schema:修复当 consumer 订阅没有 shcema 的空 topic 时,未添加 schema 的问题。
github.com/apache/puls…

Schema:添加 schema 类型验证。
github.com/apache/puls…

Schema:修复因 SchemaInfo 属性为空而引起的 NPE 问题。
github.com/apache/puls…

Schema:修复由 topic 使用 schema KeyValue <GenericRecord, Gen​​ericRecord> 引起的 OutOfMemoryError 错误。
github.com/apache/puls…

其他

Maven:添加 jersey-client 作为 pulsar-client-auth-sasl 的依赖。
github.com/apache/puls…

Build:修复在 Docker 中构建 wheel 文件时可能出现的名称不匹配的错误。
github.com/apache/puls…

Flaky test:修复 CurrentLedgerRolloverIfFullTest flaky test。
github.com/apache/puls…

Transactions:修复 transaction 日志的追加同步问题。
github.com/apache/puls…

Topic:当禁用自动创建功能时,仍可以自动创建 topic partition。
github.com/apache/puls…

Consumer:删除断开连接的 consumer,以进行自动发现。
github.com/apache/puls…

Pulsar-perf:修复 pulsar-perf CLI 工具,确保与以前版本的兼容。
github.com/apache/puls…

CI:修复 transaction flaky test。
github.com/apache/puls…

Build:修复 ahc-default.properties 文件的阴影。
github.com/apache/puls…

技术干货


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

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

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

相关阅读