Apache Pulsar 发布 2.4.1 版本_Aache Pulsar ????️阅读本文需 10 分钟

 

2019 年 8 月 30 日,Apache Pulsar 发布了 2.4.1 版本。 

 

2.4.1 版本合并了社区的 100 个 PR,修复了大量漏洞,覆盖 Broker、客户端、Pulsar Functions 和 connectors 等,进一步丰富和完善了 Pulsar 作为一个云原生流数据平台的能力。 

 

以下是 2.4.1 版本的详细信息

 


 

Apache Pulsar 发布 2.4.1 版本_Aache Pulsar _02

 

???? 漏洞修复

 

  • 修复使用 get-partitioned-topic 命令返回错误 topic domain 的问题 [#4613]

  •  修复 Rest API 中 get-status 请求出现死锁的问题 [#4616]

  •  修复在 fetch reader 的 internal-stats 命令中 ManagedLedger 遇到空指针的问题 [#4615]

  •  修复检查 schema 兼容性时,没有处理好已删除 schema 的问题 [#4669]

  •  在 Rest API 中,把 topic-loading 请求的超时时间设置为 zooKeeperOperationTimeoutSeconds [#4805]

  • 修复了默认 retention 策略没有上传保存到 ZooKeeper 的问题 [#4810]

  • 修复 retention size 错误 [#4825]

  • 修复 ManagedLedger 中 first position 的计算错误 [#4853]

  • 修复 ManagedLedgerImpl.asyncOpenCursor 中的并发访问错误 [#4837]

  • 修复 Pulsar Proxy 中 getSchema 的逻辑错误 [#4975]

  • 修复清理 namespace zookeeper node 中空指针的问题 [#4965]

  • 升级 jackson-databind 版本[#5011]

  • 增加对删除 Schema 的特殊判断处理,避免在添加 Schema 时发生错误 [#4731]

     

????优化改进

 

  • 在 Pulsar Admin 中,支持给动态配置添加特殊转义字符 [#4611]

  • 在动态配置中添加删除操作的 API [#4614]

  • 添加 Replication mtls 的配置 [#4609]

  • 在 Pulsar Admin 中,为 partitioned-stats API 添加 perPartition 参数,控制 partition 的内容输出 [#4639]

  • 添加 allowAutoTopicCreation,支持用户设置是否自动创建 topic [#4694]

  • 在 Kerberos 认证中,支持用户指定 Server Type [#4758]

  • 支持用户创建只包含一个分区的分区 Topic [#4764]

  • 为 PulsarService 和 BrokerService 的成员变量添加获取和设置的接口,方便外部调用 [#4709]

  • 添加设置 ack-timeout tick time 接口,减少因为使用固定值造成的内存占用 [#4760]

  • 支持 KeyValue Schema 使用 AUTO_CONSUME 作为 key/value 的 schema  [#4839]

  • 在 Proxy 的 /metrics REST 端点,支持用户选择开启或不开启认证 [#4921]

     


 

Apache Pulsar 发布 2.4.1 版本_Aache Pulsar _03

 

????‍???? C++

???? 漏洞修复

 

  • 修复 ProducerConfigurationData 中将 setBatcherBuilder设置为空值的错误 [#4620]

  • 修复 Admin API 在注册 Schema 时,丢失 SchemaInfo 信息的问题 [#4617]

  • 修复 Consumer 中,单分区 Topic 的分区下标错误 [#4591]

  • 修复 Admin 中默认 http/https 端口的问题 [#4623]

  • 为 Proxy 添加匿名用户的设置接口 [#4733]

  • 在 consumer/producer 中能正确捕获 Throwable 类型。之前的版本捕获的是 Exception 类型 [#4860]

  • 修复 Geo-replication 中消息复制地址没被处理的问题  [#4930]

  • 修复 StructSchema 中 loadReader 类型不匹配的问题 [#4962]


????优化改进

 

  • 为 Producer 添加设置时钟接口,用户可以添加时钟来服务消息的发布时间 [#4562]

  • 减少 Consumer 中不必要的 unack Message 追踪 [#4595]

  • 支持 Consumer 获取 Producer 中设置的消息序列号 [#4645]

  • 给 Pulsar Admin 添加读取超时的用户设置 [#4762]

  • 支持 SchemaInfoProvider 异步获取 schema [#4836]

 

????‍???? GO

???? 漏洞修复

 

  • 修复了分区 Topic 中消息超时的发送机制,现已修改为消息超时后会触发重发 [#4653]

     


 

Apache Pulsar 发布 2.4.1 版本_Aache Pulsar _04

 

????‍???? Java

???? 漏洞修复

 

  • 修复在使用文件链接接口上传 Functions NAR 文件时的错误 [#4577]
  • 修复因为 Kubernetes namespace 设置的不同,导致 Function 实例不能正常获取 status/stats 的问题 [#4701]
  • 修复因为没有设置 output topic 导致消息不能正常 ack 的问题 [#4815]
  • 修复 FunctionActioner.downloadFile 中文件句柄泄露的问题 [#4970]
  • 修复在 Pulsar Functions 中使用外部管理的 runtimes 时,在节点之间移动 Functions,出现部分组件重新初始化遇到异常情况的问题 [#5007]
  • 修复 Pulsar Sink/Source 中 State 初始化太晚造成的问题 [#5046]

????优化改进

 

  • 重构 Functions 模块 [#4541]

  • 给 functions/source/sink 配置添加空值检查 [#4627]

  • 支持给 Functions Worker 的REST API 添加角色认证 [#4628]

  • 支持给 Functions 的上传和下载添加角色认证 [#4644]

  • 支持使用 classloaders 加载 Pulsar Functions [#4685]

????‍???? GO

???? 漏洞修复

 

  • 修复 Pulsar go function 中遗漏掉的 log 目录 [#4736]

  • 修复 Pulsar go function 包不能执行的问题 [#4743]

  • 修复 Pulsar go function 处理 configure 的问题 [#4746]

  • 修复提交 function 时没有检查 jar/py/go 包配置的问题 [#4814]

  • 添加检查,确保 functions 实现正确的接口 [#4844]

????‍???? Python

???? 漏洞修复

 

  • 修复 Python Function 中 custom_object_function.py 示例中字符串转换错误 [#4946]

 

 


Apache Pulsar 发布 2.4.1 版本_Aache Pulsar _05

 

????Overview

???? 漏洞修复

 

  • 在发布版本中增加 pulsar-iOS-influxdb [#4678]

  • 修复为 publish_time 字段申明 pushdown 时出现 Pulsar SQL NPE 问题 [#4744]

  • 修复 Pulsar SQL 中 schema 的处理逻辑 [#4890]

  • 在 pulsar-iOS-jdbc 中,如果没有操作类型提供,默认为插入操作 [#4862]

 

????优化改进

 

  • 支持删除和更新 JDBC Sink 中的 record [#4358]

  • 把 Pulsar SQL 中的 publish_time 字段改为 timestamp 类型 [#4757]

  • 支持用户在 Pulsar SQL 中配置 namespace 分隔符 [#4749]

  • 在 Pulsar SQL 添加对 Pulsar 原生 Schema 的支持 [#4728]

  • 为 Pulsar SQL 添加基础认证支持 [#4779]

  • 在 Pulsar SQL 中,把 partition 作为内部列,方便用户查找 [#4888]

 

 

????Tools

???? 漏洞修复

 

  • 修复 dashboard 中 bundles 数目计算出错的问题 [#4637]

  • 修复 subscribeAsync 示例中的死锁问题 [#4649]

  • 修复 docker/publish.sh 脚本不能正常发布 pulsar-all 和 pulsar-standalone 的问题 [#4705]

  • 修复 integration-test 中 pip3 install pulsar_client 的错误 [#4754]

  • 修复 PulsarKafkaProducer 多线程不安全的问题 [#4745]

  • 修复 dashboard 中环境变量 no_proxy 不起作用的问题 [#4867]

  • 修复 dashboard 中 peek message API 消息解析错误 [#4918]

  • 添加默认的加载器,修复 pyyaml 中加载的问题  [#4974]

  • 添加相关依赖,修复 docker 中缺少依赖的问题 [#5034]

  • 修复 Broker metrics 中重复的 Prometheus TYPE 问题 [#4183]

 

????优化改进

 

  • 在 Pulsar Kafka Client Wrapper 中添加 Pulsar Schema 的支持 [#4534]

 

 

 

作者 | Jia

审校 | Jennifer+Sylvia

编辑 | Sylvia

 


 

 

 

Apache Pulsar 鼓励大家积极参与开源社区,欢迎大家积极提交 PR

Apache Pulsar 发布 2.4.1 版本_Aache Pulsar _06