共计 3046 个字符,预计需要花费 8 分钟才能阅读完成。
作者 StreamNative 文档工程师刘昱、软件工程师张勇。
对于 Apache Pulsar
Apache Pulsar 是 Apache 软件基金会顶级我的项目,是下一代云原生分布式音讯流平台,集音讯、存储、轻量化函数式计算为一体,采纳计算与存储拆散架构设计,反对多租户、长久化存储、多机房跨区域数据复制,具备强一致性、高吞吐、低延时及高可扩展性等流数据存储个性。
GitHub 地址:http://github.com/apache/pulsar/
在 Apache Pulsar 2.6.3 版本公布后的 2 个月,2021 年 3 月 18 日,Apache Pulsar 正式公布了 2.7.1 版本!
Apache Pulsar 2.7.1 版本新增诸多优化改良,修复大量破绽,笼罩 Broker、Proxy、Pulsar Perf、Transaction、Pulsar Admin、Pulsar SQL、Client、Function、Pulsar IO 和 Tiered Storage 等方面,进一步丰盛和欠缺 Apache Pulsar 作为云原生流数据平台的能力。
Apache Pulsar 2.7.1 版本总共承受了来自社区约 717 个 commits,合并社区约 210 个 PR,越来越多的小伙伴开始参加到 Pulsar 社区建设中,成为 contributor 的一员。不少代码和文档奉献来自于中国开发者,中国力量越发迅猛。
以下为你具体解读 Apache Pulsar 2.7.1 版本重要的 优化改良 和破绽修复。
Broker
优化 schema 比拟的逻辑
在 2.7.1 之前,Pulsar schema 通过将 schema 转换为 bytes 的形式比拟 schema 类型。上传 schema 时,如果 schema 含有空格或者换行符,会造成 schema 类型不兼容。在 2.7.1 版本中,Pulsar schema 应用 equals 来比拟 schema 类型,因而不会造成 schema 类型不兼容。
更多信息,查阅 PR-9612。
在 token 过期前发送报警
在 2.7.1 之前,token 行将过期时,Pulsar 没有相干报警,启用了 token 认证的客户端没有相干指标来查问它的连贯状态,而且无奈判断是否是 token 过期造成的问题。在 2.7.1 中,Pulsar 提供了 expiredTokenMetrics
和 expiringTokenMinutesMetrics
指标,监控行将过期的 token 状态。
更多信息,查阅 PR-9321。
修复 system topic 无奈主动创立
在 2.7.0 中,如果敞开了主动创立 topic,相应 namespace 下的 system topic 也无奈主动创立。Topic policy 性能依赖 system topic,所以会导致 topic policy 不能应用。在 2.7.1 中,system topic 不受控于 topic 的主动创立。
更多信息,查阅 PR-9272。
修复获取不存在 topic 分区信息时的报错信息
应用 pulsar-admin 获取一个不存在 topic 的分区信息时,broker 会返回 0 并且没有任何报错信息。在 2.7.1 中,获取一个不存在的 topic 时,Pulsar 会报错并告知该 topic 不存在。
更多信息,查阅 PR-8818。
反对革除 topic backlog 时革除提早音讯
在 2.7.1 之前,如果在发送带有提早音讯时革除 topic backlog,提早音讯不会被革除。2.7.1 修复了该问题。
更多信息,查阅 PR-8691。
Proxy
修复了 bindAddress
不失效的问题
在 2.7.1 之前,bindAddress
对 webPort 失效,但对 servicePort 不失效。2.7.1 修复了该问题,使 bindAddress
对两个端口都失效。
更多信息,查阅 PR-9068。
修复了认证错误信息不精确的问题
Proxy 在返回谬误给客户端时,会将所有谬误类型都以 ServiceNotReady
返回给客户端,客户端会将这个谬误转换成 LookupError
来解决,这会导致客户端收到的错误信息不精确,并造成客户端谬误的行为(因为 LookupError
是一个可重试的谬误,客户端会始终进行重连)。2.7.1 修复了该问题,将精确的错误信息返回给客户端,并保障客户端的错误处理失常。
更多信息,查阅 PR-9055。
反对 HAProxy 的代理协定
通常状况下,Pulsar 应用 Pulsar proxy 作为代理连贯客户端并解决申请。2.7.1 反对应用 HAProxy 代理协定,该协定更通用。
更多信息,查阅 PR-8686。
Client
反对 Pulsar Perf 获取 JVM 信息
在 2.7.1 中,Pulsar Perf 反对获取 JVM 信息,包含 Netty max memory、JVM command line arguments 和 Actual max heap size,这为应用 Pulsar Perf 调试提供了便当。
更多信息,查阅 PR-9769。
修复 Pulsar Admin expire-message 命令失败时没有告诉的问题
已发送 expire message 的申请或订阅已追赶上快过期的音讯时,expire message 命令会失败,并且不会告诉用户。2.7.1 修复了这一问题,在命令失败时会抛出异样。
更多信息,查阅 PR-9561。
为死信队列中的音讯退出原有信息
音讯发送到死信队列时,“原有信息”(例如,音讯 ID 和 topic)会失落。如果呈现问题,这不利于查找问题出处。2.7.1 为退出到死信队列的音讯增加了更多“原有信息”,不便在呈现问题时进行排查。
更多信息,查阅 PR-9655。
反对 Python 客户端的端对端加密性能
2.7.1 新增了 Python 客户端的端到端加密性能,有利于进步音讯的安全性。
更多信息,查阅 PR-9588。
反对为 C++ reader 设置订阅名称
应用 C++ reader 时,默认的订阅名称是随机生成的,不能指定订阅名称。2.7.1 反对了为 Reader 设置指定的订阅名称。
更多信息,查阅 PR-8823。
Function
修复应用 K8S runtime 时无奈定义下载目录的问题
在 2.7.1 之前,K8S runtime 没有正确应用用户在配置文件中定义的 downloadDirectory
,这会导致无奈定义下载目录。2.7.1 修复了这一问题。
更多信息,查阅 PR-9377。
修复日志信息没有正确输入到 log topic 的问题
在 2.7.1 之前,Java Function 中不同的 context 对象会导致日志信息无奈正确地生产到相应的 log topic 中,造成用户无奈获取日志信息。2.7.1 修复了该问题。
更多信息,查阅 PR-9299。
修复 broker 和 function 之间认证配置兼容的问题
在 broker 和 function 同时配置 brokerClientAuthenticationEnabled
时,会导致 Function Worker 无奈启动。2.7.1 修复了该问题。
更多信息,查阅 PR-9190。
反对将 source topic 中的 schema 信息裸露到上游 sink
2.7.1 反对 sink 能够获取 source 发送的音讯的 schema,并能持续在 sink 中解决。
更多信息,查阅 PR-8854。
参考信息
- 下载 Apache Pulsar 2.7.1。
- 查看 Apache Pulsar 2.7.1 残缺的版本阐明。
- 查看 Apache Pulsar 2.7.1 的 PR 列表。
- 退出 Apache Pulsar Slack channel。
- 订阅 Apache Pulsar 邮件列表。
期待你退出咱们,为 Apache Pulsar 的蓬勃发展添砖加瓦!