升级Kafka实例内核版本
升级Kafka实例内核版本指的是将老的内核版本升级到最新的内核版本,升级后,Kafka实例将支持一些新的特性(例如支持在控制台创建消费组、支持查看Topic详情等),并且修复老版本的一些问题。
升级Kafka实例内核版本并非升级Kafka实例的版本,例如升级前Kafka版本为2.7,升级内核版本后,Kafka版本还是2.7。
升级内核版本的影响
- 若Topic为单副本,升级期间无法对该Topic生产消息或消费消息,会造成业务中断。
- 若Topic为多副本,升级不会造成服务中断,但可能会导致消费的分区消息发生乱序,请谨慎评估业务影响,建议您在业务低峰期升级。
- 升级过程中会逐个节点升级,单个节点的升级包括两部分:升级软件包和数据同步。升级软件包耗时在5分钟左右,数据同步耗时取决于升级软件包过程中其他节点Leader副本的生产数据量,数据量越大,所需时间越久。升级总耗时=每个节点升级软件包耗时+数据同步耗时。
- 升级过程中会逐个节点重启监控进程,导致监控数据断点,重启成功后,监控数据恢复。
- 升级过程中节点滚动重启造成分区Leader切换,会发生秒级连接闪断,在用户网络环境稳定的前提下,Leader切换时长一般为1分钟以内。多副本的Topic需要在生产客户端配置重试机制,方法如下:
- 生产客户端为Kafka开源客户端时,检查是否配置retries参数,建议此参数值设置为3~5。
- 生产客户端为Flink客户端时,检查是否配置重启策略,配置重启策略可以参考如下代码。
StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); env.setRestartStrategy(RestartStrategies.fixedDelayRestart(3, Time.seconds(20)));
前提条件
- Kafka实例的状态为“运行中”时,才能升级Kafka实例内核版本。
- Kafka实例内核版本不是最新时,控制台才显示“升级”功能。
升级Kafka实例内核版本
- 登录管理控制台。
- 在管理控制台左上角单击,选择区域。
请选择Kafka实例所在的区域。
- 在管理控制台左上角单击,选择“应用中间件 > 分布式消息服务Kafka版”,进入分布式消息服务Kafka专享版页面。
- 在左侧导航栏单击“Kafka实例”,进入Kafka实例列表页面。
- 在待升级内核版本的Kafka实例所在行,选择“更多 > 升级”,弹出“版本升级”对话框。
- 选择执行时间,支持“立即执行”和“定时执行”。
如果选择“定时执行”,还需要指定执行时间。
- 在“风险检查”区域,查看升级前的检查项是否正常。
如果检查项有异常,请先根据提示信息修改,然后单击“重新检查”。如果确认异常的检查项无需修改,请勾选“我已知晓风险。”。
- 单击“确定”。
立即执行和定时执行查看升级是否完成的方法不同,具体如下:
表1 查看升级结果 执行方式
升级结果
立即执行
- 单击升级实例名称,进入实例详情页。
- 在左侧导航栏单击“后台任务管理”,进入“后台任务管理”页面。
- 在“后台任务”页签中,查看升级任务的状态。
- 当任务的“状态”为“成功”时,表示升级完成。
- 当任务的“状态”为“失败”时,表示升级失败,请联系客服处理。
定时执行
- 单击升级实例名称,进入实例详情页。
- 在左侧导航栏单击“后台任务管理”,进入“后台任务管理”页面。
- 在“定时任务”页签中,查看升级任务是否开始执行。
- 当“状态”为“待执行”时,表示升级任务未执行。
- 当“状态”为“成功”时,表示升级任务开始执行。
- 在“后台任务”页签中,查看升级任务的状态。
- 当任务的“状态”为“成功”时,表示升级完成。
- 当任务的“状态”为“失败”时,表示升级失败,请联系客服处理。
修改定时升级任务
- 在“后台任务管理”页面的“定时任务”页签中,单击页面左上角下拉框,选择时间段,在搜索对话框中输入“版本升级”,按“Enter”,快速查找定时升级任务。
- 在待修改的定时升级任务后,单击“修改”。
- 在弹出的“修改定时任务”对话框中,您可以修改定时升级任务的时间,还可以取消定时升级任务,具体操作如下。
- 修改定时升级任务的时间:修改时间,单击“确定”。
- 取消定时升级任务:选择“取消”,单击“确定”。