升级Kakfa实例内核版本 本章节介绍如何将老的内核版本升级到最新的内核版本。 升级Kafka实例内核版本,指的是将老的内核版本升级到最新的内核版本,升级后,Kafka实例将支持一些新的特性(例如支持在控制台创建消费组、支持查看Topic详情等),并且修复老版本的一些问题。 升级Kafka实例内核版本并不会升级Kafka实例的大版本,例如升级前Kafka版本为2.7,升级内核版本后,Kafka版本还是2.7。 升级内核版本的影响 若Topic为单副本,升级期间无法对该Topic生产消息或消费消息,会造成业务中断。 若Topic为多副本,升级不会造成服务中断,但会逐个节点重启,负载会转移到剩余节点上,建议您在业务低峰期升级。 升级过程中会逐个节点升级,单个节点的升级包括两部分:升级软件包和数据同步。升级软件包耗时在5分钟左右,数据同步耗时取决于升级软件包过程中其他节点Leader副本的生产数据量,数据量越大,所需时间越久。升级总耗时每个节点升级软件包耗时+数据同步耗时。 升级过程中会逐个节点重启监控进程,导致监控数据断点,重启成功后,监控数据恢复。 升级过程中节点滚动重启造成分区Leader切换,会发生秒级连接闪断,在用户网络环境稳定的前提下,Leader切换时长一般为1分钟以内。多副本的Topic需要在生产客户端配置重试机制,方法如下: 生产客户端为Kafka开源客户端时,检查是否配置retries和retry.backoff.ms参数。建议参数值分别配置为:retries10,retry.backoff.ms1000。 生产客户端为Flink客户端时,检查是否配置重启策略,配置重启策略可以参考如下代码。 StreamExecutionEnvironment env StreamExecutionEnvironment.getExecutionEnvironment(); env.setRestartStrategy(RestartStrategies.fixedDelayRestart(10, Time.seconds(20)));