1. Upgrade Without Downtime

  • 升级Kafka相当简单(fairly simple),共五个步骤,每个步骤
    都需滚动重新启动(rolling restart),如从v2.1升级到v3.0;

  • 将inter broker和日志版本设置为当前Kafka版本;

  • 若现在使用v2.1,只需输入broker属性:

inter.broker.protocol.version = 2.1

log.message.format.version = 2.1
  • 一次一个broker:stop broker,将二进制文件升级到v3.0,然后启动broker,
    等待集群稳定(stabilize)下来(所有分区都处于同步复制副本(ISR)中);

  • 在此阶段,所有broker都在运行v3.0的较新的二进制文件,
    但使用inter.broker.procol.version=2.1
    和log.message.format.version=2.1

  • 请确保集群在此形式下是稳定的(stable),若想降级(downgrade),
    仍可选择在此处降级,因日志消息格式尚未升级;

  • 一次一个broker:stop broker,使用inter.broker.procol.version=3.0
    更改该broker的broker protocol版本,然后启动该broker,
    等待集群stabilize(所有分区都处于同步复制副本(ISR)中);

  • 在此阶段结束时,所有broker都使用新的inter broker protocol版本运行,
    但它们还没有使用新的日志消息格式;

  • 若文档指定,请升级kafka客户端:全部或大部分客户端,以避免上下切换,可能影响性能;
    avoid up and down conversion;

  • 一次一个broker,stop broker,升级消息协议版本log.message.format.version=3.0
    并启动broker,等待集群stabilize(所有分区都处于同步复制副本(ISR)中);

  • 在此阶段:所有broker都升级到最新的二进制文件,运行最新的inter-broker
    protocol,并使用最新的日志消息格式(log message format)版本;