首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >ckafka提升带宽为什么会迁移数据

ckafka提升带宽为什么会迁移数据

原创
作者头像
云知识
发布2025-10-28 12:17:01
发布2025-10-28 12:17:01
220
举报

最近在升级ckafka带宽时发现两种现象,有时候会提醒进行数据迁移,有时候提示无需数据迁移,通过和腾讯云售后技术沟通了解了为什么会这样,下面我给大家总结下,解答大家的疑问。

无需数据迁移如下图1:

图1
图1

需要进行数据迁移如下图2:

图2
图2

根据他们文档说明:选择好变配的目标实例规格后,系统会自动识别底层资源是否需要变更,是否需要进行数据迁移。这里带宽不像磁盘等硬件为什么还要迁移。

腾讯云给出的结论是:当调整带宽时,必须满足对应的最低磁盘容量要求,若当前磁盘容量低于目标带宽对应的最低磁盘容量,需同步提升磁盘容量至最低值。当带宽增加时,最低的磁盘容量有限制,如果底层资源不足,或迁移到其他的地方。如下图3:

图3
图3

需要注意的是涉及数据迁移的过程中,每个分区迁移完成后,会进行分区的 Leader 切换,Leader 切换典型场景如下:

https://cloud.tencent.com/document/product/597/55801#leader-.E5.88.87.E6.8D.A2.E6.98.AF.E4.BB.80.E4.B9.88.EF.BC.9F

在建立一个新 topic 时,kafka broker 集群会进行每个 partition 的 leader 分配,将当前 topic 的 partition 均匀分布在每个 broker 上。

但在使用一段时间后,可能会出现 partition 在 broker 上分配不均,

或是出现客户端在生产消费中抛出 BrokerNotAvailableError,NotLeaderForPartitionError 等异常。

这通常都是由于 partition 发生了 leader 切换导致的,典型场景如下:

当某个 partition leader 所在的 broker 发生某些意外情况,例如网络中断,程序崩溃,机器硬件故障导致无法与 broker controller 通信时,

当前 topic partition 将会发生 leader 切换,leader 将迁移至 follower partition 上。

当 kafka 集群设置 auto.leader.rebalance.enable = true 进行自动 reBalance,或是人工增加/削减 broker 并手动触发 reBalance 时,

由于涉及到 partition 自动平衡,此时也会出现 leader 切换。

当由于 broker 意外中断,导致 leader 切换时:

如果客户端设置 ack = all,并且 min.insync.replicas > 1 ,由于消息同时在 leader partition 和 follower partition 都确认,因此消息不会丢失。

如果客户端设置 ack = 1 ,此时可能会出现设置在 replica.lag.time.max.ms 时间中的消息未同步到 follower partition,可能导致消息丢失。

当由于 broker 正常,手动/自动(如实例升级、单可用区切换跨可用区、实例迁移等)发起 reBalance 导致 leader 切换时,不会导致消息丢失,原因如下:

如果客户端设置 ack = all,并且 min.insync.replicas > 1 ,由于消息同时在 leader partition 和 follower partition 都确认,因此消息不会丢失。

如果客户端设置 ack = 1 ,leader 切换将会自动同步 partition 中的 offset,因此消息不会丢失。

希望可以帮到大家。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档