Apache Pulsar 发布 2.3.2 版本_Apache Pulsar

 

 

Apache Pulsar 在 5 月 31 日正式发布了 2.3.2 版本!2.3.2 版本继续丰富和完善了 Apache Pulsar 作为一个云原生流数据平台的能力。

 

2.3.2 版本修复和改进了用户在使用 2.3.1 版本中反馈的问题,这些修复覆盖了从消息存储核心,多语言客户端,到 Pulsar Functions、Connectors 等多个方面。这篇文章会详细介绍 2.3.2 版本中修复和改进的特性。这其中包括:

 

在核心存储方面,把 BookKeeper 版本升级到 4.9.2,解决了 DbLedgerStorage 启动失败和用户在安装 BookKeeper 客户端依赖库时,需要安装 GCC 的问题。在 broker 方面,修复了死锁、认证和消息回退等问题。在安全方面,升级了认证版本。

在多语言客户端,修复了 Python 嵌套结构下无法进行序列化的问题,修复了 C++ 初始化错误,修复了 pulsar-client-go 构建时参数类型错误等。

在 Pulsar Functions 方面,丰富了 Functions Worker 的功能,优化了 Java Function,并在 Python 中增加了 Table service 接口。修复了提交功能,可以通过 URL 上传整个文件。

 

CORE

 

Storage

Pulsar 2.3.2 版本中,BookKeeper 版本从 4.9.1 升级到 4.9.2,修复和完善了以下功能。

 

  • BookKeeper 4.9.1 版本中没有设置 dbStorage_writeCacheMaxSizeMb 时,会导致 DbLedgerStorage 启动失败。该版本修复了这个问题。

 

  • 由于 PyPI 没有发布 mmh3 的依赖库,用户在安装 BookKeeper 客户端依赖库时,需要安装 GCC。BookKeeper 4.9.2 版本使用 Python 实现了 MurmurHash,用户不需要再安装 GCC。

 

Broker

  • 在之前的版本中,分割 bundle 时,大量的消费者或生产者重连会导致死锁。这是因为在确定 topic 的拥有者时,会同步检查 bundles 的元信息,如果元信息没有缓存,就会出现问题。2.3.2 版本中增加了对元信息的检查,如果元数据没有缓存,就放弃操作,这样就避免了死锁。

     

  • 如果两个 topic 在同一个 broker 上,客户端会复用同一个 future 来管理。但当其中一个 topic 被移动到其他 broker 时,移动到其他 broker 上的这个 topic 需要一条新的连接来访问,如果没有清除缓存的 future,服务会出错。2.3.2 版本中,当 topic 被移动到其他 broker 时,缓存的 future 会自动清除,确保再次请求时服务不会出错。

 

  • 修复了关闭认证时引发的空指针异常。

     

  • 修复了在创建租户时配置为空的情况。

     

  • 在之前的版本中,如果把消息回退时间设置在起始消费时间之前,结果为空。正常情况下,消息应该回退到第一条消息。2.3.2 版本修复了这个问题。

 

Security

  • 2.3.2 版本中 athenz 的版本升级到 1.8.17。

 

CLIENTS

Python

修复了在嵌套结构下无法进行序列化的问题。

C++

修复了由于没有连接导致 sendTimer_ 没有初始化的错误。

Go

修复了 pulsar-client-go 构建时参数类型错误的问题。

 

FUNCTIONS

 

Core

  • 当用户提交 Functions、Source 或者 Sink 的时候,Functions Worker 会对 Functions 做基本检查。当用户提交的代码里含有 static 代码块,检查时会将 static 执行一遍。2.3.2 版本中,通过不创建实例,可以保证用户代码的 static 代码块在检查中不被执行。

 

  • 修复了 namespace 的兼容性。

 

  • 支持 functions-worker 与 bookie 的认证。

 

  • 优化 Pulsar Functions archive 的下载性能 。

 

  • 在 Functions 和 Sinks 中,用户可以更新 output topic 的内容。

     

  • 2.3.2 版本之前,pulsar-admin API 中无法通过 functions-worker 正确获取 function-stats 命令。2.3.2 版本中修复了这个问题。

 

  • 修复了 functions metric 中有重复 #HELP 的问题。

 

Java

  • 2.3.2 版本中,用户可以从 Pulsar Functions 的返回值中获取到相应的属性和配置信息。

 

  • 在 Functions 中,用户启动 auth 功能后,不传递 token 程序也可以正常运行。正常情况下,传递 token 后,程序才能正常运行。该版本修复了这个逻辑。

 

Python

  • 增加了 Table service 接口。

 

CONNECTORS

 

  • 修复 Source、Sink 启动 localrun 模式时失败的问题。

 

  • 增加了 Sink 的接收队列大小的配置选项。

 

  • 支持 Source 和 Sink 嵌套配置。

 

  • 为 Source 和 Sink 提供默认的 tenant 和 namespace。

 

下载链接

 

Pulsar 2.3.2 的下载链接:

https://pulsar.incubator.apache.org/en/download/

Pulsar 项目链接:

https://pulsar.incubator.apache.org/

Pulsar Github 代码库:

https://github.com/apache/incubator-pulsar

Pulsar slack channel:

https://apache-pulsar.herokuapp.com/

Pulsar 邮件列表:

https://pulsar.incubator.apache.org/contact/

 

Apache Pulsar 发布 2.3.2 版本_Apache Pulsar _02