关于 Apache Pulsar
Apache Pulsar 是 Apache 软件基金会顶级项目,是下一代云原生分布式消息流平台,集消息、存储、轻量化函数式计算为一体,采用计算与存储分离架构设计,支持多租户、持久化存储、多机房跨区域数据复制,具有强一致性、高吞吐、低延时及高可扩展性等流数据存储特性。
GitHub 地址:http://github.com/apache/pulsar/
导语
各位小伙伴们,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
。
https://github.com/apache/pul...
Broker:支持获取应用的 SubscriptionDispatchRate
。
https://github.com/apache/pul...
Broker:将待处理的读订阅指标添加到 stats-internal。
https://github.com/apache/pul...
Broker:为 PulsarService#getAdminClient
添加 NPE 检查。
https://github.com/apache/pul...
Broker:防止使用无效的 broker 或 proxy configuration 设置授权。
https://github.com/apache/pul...
Broker:将 getWorkerService
方法更改为抛出 UnsupportedOperationException
。
https://github.com/apache/pul...
Broker:如果响应已经提交,则不添加 broker-address 标头。
https://github.com/apache/pul...
Broker:验证 /offload
请求的参数。
https://github.com/apache/pul...
Broker:支持获取已应用的 PersistencePolicies
。
https://github.com/apache/pul...
Broker:支持获取已应用的 clusterSubscribeRate
。
https://github.com/apache/pul...
Broker:支持获取已应用 dispatchRate
。
https://github.com/apache/pul...
Broker:支持获取压缩阀值。
https://github.com/apache/pul...
Build
Build:从 Pulsar docker 镜像中删除 .deb
包。
https://github.com/apache/pul...
Build:将 pulsar-io-kafka-connect-adaptor
拆分为 JAR 和 NAR 模块。
https://github.com/apache/pul...
Build:启用详细的 Java 编译器告警。
https://github.com/apache/pul...
Build:设置项目版本时,更新 terraform 文件中的 Pulsar 版本。
https://github.com/apache/pul...
C++
C++ client:从 C++ 库中删除 gtest
文件。
https://github.com/apache/pul...
C++ Client:实现 C++ producer 中内存限制。
https://github.com/apache/pul...
CI
CI:在重试或继续执行下一测试之前,清除测试失败的状态。
https://github.com/apache/pul...
CI:在CI测试中添加 apache-rat check。
https://github.com/apache/pul...
CI:将集成测试命令重构为 run_integration_group.sh
脚本。
https://github.com/apache/pul...
CI:使用 DiagnosticCommand
JMX MBean 实现线程转储。
https://github.com/apache/pul...
CI:通过仅涵盖选定的 connectors 来减小集成测试镜像的大小。
https://github.com/apache/pul...
Client
Go client:将 JWT-Go 版本更新为 v4。
https://github.com/apache/pul...
Pulsar Client:支持输出GenericRecord
内容。
https://github.com/apache/pul...
WebSocket Client:支持浏览器客户端进行 token 身份验证。
https://github.com/apache/pul...
Pulsar-client:Pulsar REST API、pulsar-admin 和 pulsar-client CLI 工具增加获取 Pulsar 版本的命令。
https://github.com/apache/pul...
Client: 支持为 MultiTopicsReaderImpl
设置多 topic。
https://github.com/apache/pul...
Client:使用不同的 listener-threads 处理不同分区 topic 的消息。
https://github.com/apache/pul...
Transaction
Transactions:对 End transaction 操作进行重试。
https://github.com/apache/pul...
Transactions:支持检查 transaction 状态。
https://github.com/apache/pul...
Transactions:实现 transaction 缓冲区快照。
https://github.com/apache/pul...
Transactions:清除 transaction buffer 中取消的 transaction。
https://github.com/apache/pul...
其他
Common:优化 ConcurrentOpenHashMap,缩短读锁死的持续时间。
https://github.com/apache/pul...
WebSocket:在 WebSocket 服务器中支持 pong
逻辑。
https://github.com/apache/pul...
WebSocket:允许 WebSocket proxy 在不解密的情况下将消息传递给客户端消费。
https://github.com/apache/pul...
Authentication: 在AuthenticationTls
中支持序列化 stream-provider 字段。
https://github.com/apache/pul...
Kafka:在 KafkaBytesSource
中支持 KeyValue
。
https://github.com/apache/pul...
Pulsar SQL:支持查询大写的 topic。
https://github.com/apache/pul...
Utils:转储 pulsar-perf 的 JVM 信息。
https://github.com/apache/pul...
Deployment:更新 Ansible 的部署配置中 Pulsar 的版本至 2.7.0。
https://github.com/apache/pul...
Pulsar-admin:添加命令以获取 leader broker 的 service URL。
https://github.com/apache/pul...
Pulsar-Discovery:在 discoveryservice
中将 ZooKeeper 替换为 MetadataStore
。
https://github.com/apache/pul...
Schema:将 Apache Avro 升级到 1.10.2 版本。
https://github.com/apache/pul...
Metrics:添加 broker 连接指标。
https://github.com/apache/pul...
Pulsar IO:Kafka source connector 支持管理 Avro 编码的消息。
https://github.com/apache/pul...
Test::将 TestNG
组添加到 Pulsar broker。
https://github.com/apache/pul...
Bug 修复
Broker
Broker:修复 2.7 分支上 Topic 为空时 hasMessageAvailable()
导致的错误。
https://github.com/apache/pul...
Broker:修复 2.7 分支上获取 topic 应用策略时未检查 topic 所有权的问题。
https://github.com/apache/pul...
Broker:修复主分支上获取 topic 应用策略时未检查 topic 所有权的问题。
https://github.com/apache/pul...
Broker:修复PersistentReplicator
中的 NPE 和线程安全问题。
https://github.com/apache/pul...
Broker:修复如果达到最大订阅限制,consumer 无法使用较旧的订阅来消费消息的问题。
https://github.com/apache/pul...
Broker:即使 Web 服务无法关闭,也可以继续正常关闭 broker 服务。
https://github.com/apache/pul...
Broker:记录在 ExecutorProvider 中超时后,在关闭时未终止的线程栈轨迹的日志。
https://github.com/apache/pul...
Broker:支持在 broker.conf
文件中禁用 tenants/namespaces 强制删除。
https://github.com/apache/pul...
Broker:允许 broker 发现并解锁卡住的订阅。
https://github.com/apache/pul...
Broker:修复 zkBookieRackAffinityMapping
漏洞,支持 BookKeeper 的 dnsResolver
。
https://github.com/apache/pul...
Broker:修复在 key_shared 订阅模式下无法消费非持久消息的问题。
https://github.com/apache/pul...
Broker:修复更新 lastLedgerCreationInitiationTimestamp
时出现的时间单位错误的问题。
https://github.com/apache/pul...
C++
C++:修复已暂停的零队列 consumer 仍预取消息的问题。
https://github.com/apache/pul...
C++:支持简单地配置调试级别的日志。
https://github.com/apache/pul...
C++:修复从接收到的消息 ID 中获取 topic 名称时的分割错误。
https://github.com/apache/pul...
Client
Java client:修复 ClientCnx
中的 NPE。
https://github.com/apache/pul...
Go client:修复 lookup service 中的 socket 泄漏的问题。
https://github.com/apache/pul...
Client:确保可以关闭单 topic 的 consumer。
https://github.com/apache/pul...
Client:修复从字节数组反序列化时未设置批处理大小的问题。
https://github.com/apache/pul...
Client:修复当达到最大订阅数时执行的无用重试的问题。
https://github.com/apache/pul...
Functions
Functions:启用服务器端路由以存储状态。
https://github.com/apache/pul...
Functions:传递来自 Pulsar source 的记录属性。
https://github.com/apache/pul...
Schema
Schema:暴露 struct schema 的原始记录。
https://github.com/apache/pul...
Schema:修复当 consumer 订阅没有 shcema 的空 topic 时,未添加 schema 的问题。
https://github.com/apache/pul...
Schema:添加 schema 类型验证。
https://github.com/apache/pul...
Schema:修复因 SchemaInfo 属性为空而引起的 NPE 问题。
https://github.com/apache/pul...
Schema:修复由 topic 使用 schema KeyValue <GenericRecord, GenericRecord> 引起的 OutOfMemoryError
错误。
https://github.com/apache/pul...
其他
Maven:添加 jersey-client
作为 pulsar-client-auth-sasl
的依赖。
https://github.com/apache/pul...
Build:修复在 Docker 中构建 wheel 文件时可能出现的名称不匹配的错误。
https://github.com/apache/pul...
Flaky test:修复 CurrentLedgerRolloverIfFullTest
flaky test。
https://github.com/apache/pul...
Transactions:修复 transaction 日志的追加同步问题。
https://github.com/apache/pul...
Topic:当禁用自动创建功能时,仍可以自动创建 topic partition。
https://github.com/apache/pul...
Consumer:删除断开连接的 consumer,以进行自动发现。
https://github.com/apache/pul...
Pulsar-perf:修复 pulsar-perf CLI 工具,确保与以前版本的兼容。
https://github.com/apache/pul...
CI:修复 transaction flaky test。
https://github.com/apache/pul...
Build:修复 ahc-default.properties
文件的阴影。
https://github.com/apache/pul...
技术干货
- Taking an In-Depth Look at How to Achieve Isolation in Pulsar
- How To Get Started With Apache Pulsar On Docker
- 译文 | Apache Pulsar 集群如何确保消息不丢
- Apache Pulsar 在能源互联网领域的落地实践
- StreamNative 宣布开源 AWS SQS Connector
- Apache BookKeeper 4.13.0发布
- 博文推荐|Pulsar 存储空间不释放的问题分析与解决方法
- 译文|选择 Apache Pulsar 而非 Kafka 的 10 个理由
以上就是 2021 年 3 月份的脉动之旅。Apache Pulsar 正在快速成长,感谢来自大家的支持!
Apache Pulsar 社区鼓励大家积极参与开源社区,无论是文档、代码、翻译,还是技术博客,都欢迎大家积极参与,早日成为 Pulsar contributor,一起加油鸭。
如果你对 Pulsar Contribute 的流程不太熟练,也可以参考我们这篇小教程,让你熟悉如何通过 GitHub 对 Pulsar 进行贡献:新手向|非技术人员如何参与 Pulsar 项目进行贡献。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。