17.3. 升级客户端的策略


升级 Kafka 客户端可确保它们从新版本的 Kafka 中引入的功能、修复和改进中受益。升级的客户端维护与其他升级的 Kafka 组件的兼容性。客户端的性能和稳定性也可能得到改进。

考虑升级 Kafka 客户端和服务器的最佳方法,以确保平稳过渡。所选升级策略取决于您是否先升级代理或客户端。从 Kafka 3.0 开始,您可以独立和顺序升级代理和客户端。决定升级客户端或代理首先取决于几个因素,如需要升级的应用程序数量以及可容忍的停机时间。

如果您在代理前升级客户端,一些新功能可能无法工作,因为代理尚不支持它们。但是,代理可以处理使用不同版本运行的制作者和消费者,并支持不同的日志消息版本。

当使用 Kafka 3.0 旧的 Kafka 版本时升级客户端

在 Kafka 3.0 之前,您可以使用 log.message.format.version 属性(或主题级别的 message.format.version 属性)为代理配置特定的消息格式。这允许代理支持使用过时消息格式的旧的 Kafka 客户端。否则,代理需要从旧的客户端转换信息,这会显著提高性能成本。

自 0.11 版以来,Apache Kafka Java 客户端支持最新的消息格式版本。如果所有客户端都使用最新的消息版本,您可以在升级代理时删除 log.message.format.versionmessage.format.version 覆盖。

但是,如果您仍然有使用较旧的消息格式版本的客户端,我们建议首先升级您的客户端。从消费者开始,在升级代理时,在删除 log.message.format.versionmessage.format.version 前升级制作者。这将确保所有客户端都可以支持最新的消息格式版本,并且升级过程可以平稳进行。

您可以使用此指标跟踪 Kafka 客户端名称和版本:

  • kafka.server:type=socket-server-metrics,clientSoftwareName=<name>,clientSoftwareVersion=<version>,listener=<listener>,networkProcessor=<processor>
提示

以下 Kafka 代理指标帮助监控消息 down-conversion 的性能:

  • kafka.network:type=RequestMetrics,name=MessageConversionsTimeMs,request={Produce|Fetch} 提供执行消息转换所需时间的指标。
  • kafka.server:type=BrokerTopicMetrics,name={Produce|Fetch}MessageConversionsPerSec,topic=([-.\w]+) 提供一段时间内转换的消息数量的指标。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat