[发明专利]基于Kafka集群的分区迁移方法和装置有效
申请号: | 202011190878.8 | 申请日: | 2020-10-30 |
公开(公告)号: | CN112269661B | 公开(公告)日: | 2022-04-15 |
发明(设计)人: | 张辰安;付航;郑志升 | 申请(专利权)人: | 上海哔哩哔哩科技有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 北京英特普罗知识产权代理有限公司 11015 | 代理人: | 邓小玲;王勇 |
地址: | 200433 上海市*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 kafka 集群 分区 迁移 方法 装置 | ||
1.一种基于Kafka集群的分区迁移方法,所述Kafka集群包括多个节点服务器,每一个节点服务器包括多个磁盘,其特征在于,所述方法包括:
获取各个节点服务器中包含的磁盘与分区的对应关系以及获取各个磁盘中包含的所有分区的消息写入速率;
遍历所有的节点服务器,并在遍历过程中找到不满足预设的第一分区策略的第一节点服务器时,从所述第一节点服务器中选择不满足预设的第二分区策略的第一磁盘,并从所述第一磁盘中选择预设的主题Topic下的一个分区执行第一分区迁移操作,其中,所述第一分区策略为所述Kafka集群中预设的主题Topic下包含的所有分区需要均匀分配在每一个节点服务器中;
在执行所述第一分区迁移操作后,判断所述第一节点服务器是否满足所述第一分区策略;
若所述第一节点服务不满足所述第一分区策略,则返回执行从所述第一节点服务器中选择不满足预设的第二分区策略的第一磁盘,并从所述第一磁盘中选择预设的主题Topic下的一个分区执行第一分区迁移操作的步骤,直至所述第一节点服务器满足所述第一分区策略为止,其中,所述第二分区策略为节点服务器中包含的预设的主题Topic下的所有分区需要均匀分配在该节点服务器的所有磁盘中;
其中,所述第一分区迁移操作包括:
根据所述对应关系确定候选的第二节点服务器;
从所述第二节点服务器的磁盘中选择满足预设条件的磁盘作为第一目标迁移磁盘,其中,所述预设条件为在完成分区迁移后,所述第一目标迁移磁盘满足预设的第三分区策略,所述第三分区策略为所述Kafka集群中的每一个磁盘中的消息写入速率小于所述Kafka集群中的所有磁盘的消息写入速率的平均值与预设系数的乘积;
将从所述第一磁盘中选择出的分区迁移至所述第一目标迁移磁盘中;
更新各个节点服务器中包含的磁盘与分区的对应关系。
2.根据权利要求1所述的基于Kafka集群的分区迁移方法,其特征在于,所述从所述第二节点服务器的磁盘中选择满足预设条件的磁盘作为第一目标迁移磁盘包括:
从所述第二节点服务器的磁盘中选择预设数量的消息写入速率小的磁盘作为待迁移磁盘;
按照磁盘IO使用率从小到大的顺序判断将从所述第一磁盘中选择出的分区迁移至所述待迁移磁盘后,所述待迁移磁盘是否满足所述第三分区策略;
若所述待迁移磁盘满足所述第三分区策略,则将所述待迁移磁盘作为第一目标迁移磁盘。
3.根据权利要求1所述的基于Kafka集群的分区迁移方法,其特征在于,当所有的第一节点服务都满足所述第一分区策略时,所述基于Kafka集群的分区迁移方法还包括:
遍历所有的磁盘,并在遍历过程中找到不满足所述第二分区策略的第二磁盘时,从所述第二磁盘中选择所述主题Topic下的一个分区执行第二分区迁移操作;
在执行所述第二分区迁移操作后,判断所述第二磁盘是否满足所述第二分区策略;
若所述第二磁盘不满足所述第二分区策略,则返回执行从所述第二磁盘中选择所述主题Topic下的一个分区执行第二分区迁移操作的步骤,直至所述第二磁盘满足所述第二分区策略为止;
其中,所述第二分区迁移操作包括:
从所述第二磁盘对应的节点服务器的磁盘中选择满足预设条件的磁盘作为第二目标迁移磁盘,其中,所述预设条件为在在完成分区迁移后,所述第二目标迁移磁盘满足所述第三分区策略;
将从所述第二磁盘中选择出的分区迁移至所述第二目标迁移磁盘中;
更新各个节点服务器中包含的磁盘与分区的对应关系。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海哔哩哔哩科技有限公司,未经上海哔哩哔哩科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011190878.8/1.html,转载请声明来源钻瓜专利网。