从 ZooKeeper 迁移到 KRaft 模式
从 Kafka 4.0 开始,将不再支持 ZooKeeper 模式。operator 也将在未来版本中移除对 ZooKeeper 模式的支持。建议尽快将您的 Kafka 实例迁移到 KRaft 模式。
迁移注意事项
- 服务中断:迁移过程中可能会导致短暂的服务中断。
- 连接变更:迁移后,pod 名称和服务(svc)名称将发生变化,可能导致连接地址发生变化。迁移完成后务必及时更新实例的访问地址。如果您通过 bootstrap 或 external-bootstrap 服务连接 Kafka 实例,访问地址将保持不变,无需更新。
- 不可回滚:一旦迁移到 KRaft,无法回滚到 ZooKeeper 模式。
前提条件
- Kafka 版本必须为 3.8 或更高
- 通知消费者/生产者可能出现的临时中断
- 确保 Kafka 集群健康且完全可用
迁移步骤
- 通过 patch 命令将 Kafka 实例切换到 KRaft 模式:
- 监控迁移状态:
状态将依次为:
Migrating:迁移中Active:迁移成功完成
迁移后步骤
迁移注意事项
如果您的应用未使用 bootstrap 或 external-bootstrap 服务(例如,无论是内部访问还是外部访问,均使用与 <name>-kafka-<i>.<namespace>.svc.cluster.local 关联的 IP 和端口),则必须更新其连接配置。
-
验证客户端连接和数据完整性:
- 确认所有生产者和消费者应用能够成功连接 Kafka 集群(检查日志中是否有连接错误、超时或认证问题)。
- 进行测试生产/消费:通过生产者发送测试消息,确认消费者能够接收且无数据丢失或损坏。
- 验证核心业务主题是否可访问且保留了迁移前的所有数据。
-
监控性能:
- 关注 controller 性能
- 监控分区处理和元数据操作