一种数据同步的方法及相关设备技术

技术编号:29063654 阅读:12 留言:0更新日期:2021-06-30 09:08
本申请提供一种数据同步的方法及相关设备。其中,该方法包括:跟随者分区follower partition获取偏移量选取策略;该follower partition基于所述偏移量选取策略确定在待同步的话题topic的领导者分区leader partition中的目标偏移量;该follower partition从所述leader partition的确定的目标偏移量开始同步所述leader partition中的数据到所述follower partition。上述方法能够提高数据同步的灵活性,提高数据同步效率,缩短数据同步时间。时间。时间。

【技术实现步骤摘要】
一种数据同步的方法及相关设备


[0001]本专利技术涉及信息
,尤其涉及一种数据同步的方法及相关设备。

技术介绍

[0002]分布式发布订阅消息系统(kafka)具备良好的功能特性,它通过磁盘结构提供消息的持久化,可以保持长时间的稳定性能,具备高吞吐量,能够支持每秒数百万的消息,而且可以支持并行数据加载,所以kafka一般用于处理应用服务系统或人工智能(artificial intellingence,AI)平台产生的海量流数据。
[0003]Kafka作为当前最常用的分布式消息队列系统,通常会缓存消息数据在本地磁盘上,kafka中发布订阅的对象是类别(topic),每个topic表示一类数据,一个topic又分为多个分区(partition),每个partition就是一个有序的队列。每个topic的不同partition分布在不同的磁盘或主机上,同时,kafka为了保证可靠性,每个partition又存在多个副本(replica),多个副本之间会选举出一个主副本,主副本又可以称为领导者分区(leader partition),其余的副本为从副本,又可以称为跟随者分区(follower partition)。Follower partition会持续的从leader partition同步最新的消息数据,消费者(从topic订阅消息的客户端)和生产者(向topic发布消息的客户端)在进行消费和生产时,直接和leader partition进行交互。当某个leader partition所在的节点突然发生故障或者掉电时,该partition对应的follower partition会选举出新的leader partition,从而保证服务的可靠性和数据的安全性。
[0004]当kafka集群中的节点发生故障无法恢复,或者需要扩充kafka集群的存储容量(即增加节点数量)时,需要对kafka集群中存在的副本进行迁移以保证副本的完整性,当前对kafka集群中副本的迁移是通过kafka本身提供的迁移工具完成副本迁移,但这种方式不够灵活,迁移时间较长,效率较低,且会持续占用中央处理器(central processing unit,CPU)资源和网络带宽资源,影响业务的正常运行。

技术实现思路

[0005]本专利技术实施例公开了一种数据同步的方法及相关设备,follower partition能够从leader partition中灵活选择需要同步的数据,提高数据同步效率,缩短数据同步时间,降低对业务的影响。
[0006]第一方面,本申请提供了一种数据同步的方法,包括:跟随者分区follower partition获取偏移量选取策略;所述follower partition基于所述偏移量选取策略确定在待同步的话题topic的领导者分区leader partition中的目标偏移量;所述follower partition从所述leader partition的确定的目标偏移量开始同步所述leader partition中的数据到所述follower partition。
[0007]在本申请实施例中,follower partition可以根据需要灵活选择需要同步的目标偏移量,并在确定目标偏移量之后,从leader partition中确定的目标偏移量开始同步
leader partition中的数据到follower partition,这样可以提高数据同步效率,缩短数据同步时间,扩展适用场景。
[0008]在一种可能的实现方式中,所述follower partition向所述leader partition发送查询请求,所述查询请求用于查询当前时刻所述leader partition中的偏移量;所述follower partition计算所述当前时刻所述leader partition中的偏移量与所述follower partition中的偏移量的差值,并在所述差值大于预设阈值时确定同步所述leader partition中的数据到所述follower partition。
[0009]在本申请实施例中,follower partition在进行数据同步之前,需要查询当前时刻leader partition中的偏移量,然后计算leader partition中的偏移量与follower partition中的偏移量的差值,并在差值大于预设阈值时进行数据同步。这样可以避免频繁的进行数据同步,只有在满足条件时才进行数据同步,从而提高系统效率。
[0010]在一种可能的实现方式中,所述偏移量选取策略为偏移量自适应确定策略,所述follower partition获取所述leader partition的数据平均写入速度;所述follower partition根据所述leader partition的数据平均写入速度,计算得到所述目标偏移量。
[0011]在本申请实施例中,follower partition在偏移量选取策略为偏移量自适应确定策略时,需要获取leader partition的数据平均写入速度,从而计算得到目标偏移量。
[0012]在一种可能的实现方式中,所述偏移量选取策略为偏移量自适应确定策略,所述follower partition获取所述leader partition的起始偏移量和所述leader partition的数据平均写入速度;所述follower partition根据所述leader partition的起始偏移量和leader partition的数据平均写入速度,计算得到所述目标偏移量。
[0013]在本申请实施例中,偏移量选取策略为偏移量自适应确定策略时,follower partition需要获取leader partition的起始偏移量和数据平均写入速度,这样保证计算得到的目标偏移量更加准确。
[0014]在一种可能的实现方式中,在所述leader partition的数据平均写入速度大于所述leader partition的数据同步传输速度时,所述目标偏移量为当前时刻所述leader partition的最大的偏移量;在所述leader partition的数据平均写入速度小于或等于所述数据同步传输速度时,所述目标偏移量为所述leader partition的起始偏移量。
[0015]在本申请实施例中,通过比较leader partition的数据平均写入速度和数据同步传输速度的关系,从而确定目标偏移量,这样,可以保证所确定的目标偏移量更加合理。
[0016]在一种可能的实现方式中,在所述leader partition的数据平均写入速度大于所述leader partition的数据同步传输速度时,所述目标偏移量为当前时刻所述leader partition的最大的偏移量;在所述leader partition的数据平均写入速度小于或等于所述数据同步传输速度、并且所述leader par本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据同步的方法,其特征在于,所述方法包括:跟随者分区follower partition获取偏移量选取策略;所述follower partition基于所述偏移量选取策略确定在待同步的话题topic的领导者分区leader partition中的目标偏移量;所述follower partition从所述leader partition的确定的目标偏移量开始同步所述leader partition中的数据到所述follower partition。2.如权利要求1所述的方法,其特征在于,所述方法还包括:所述follower partition向所述leader partition发送查询请求,所述查询请求用于查询当前时刻所述leader partition中的偏移量;所述follower partition计算所述当前时刻所述leader partition中的偏移量与所述follower partition中的偏移量的差值,并在所述差值大于预设阈值时确定同步所述leader partition中的数据到所述follower partition。3.如权利要求1或2所述的方法,其特征在于,所述偏移量选取策略为偏移量自适应确定策略,所述follower partition基于所述偏移量选取策略确定在待同步的topic的leader partition中的偏移量,包括:所述follower partition获取所述leader partition的数据平均写入速度;所述follower partition根据所述leader partition的数据平均写入速度,计算得到所述目标偏移量。4.如权利要求1或2所述的方法,其特征在于,所述偏移量选取策略为偏移量自适应确定策略,所述follower partition基于所述偏移量选取策略确定在待同步的topic的leader partition中的偏移量,包括:所述follower partition获取所述leader partition的起始偏移量和所述leader partition的数据平均写入速度;所述follower partition根据所述leader partition的起始偏移量和leader partition的数据平均写入速度,计算得到所述目标偏移量。5.如权利要求3或4所述的方法,其特征在于,在所述leader partition的数据平均写入速度大于所述leader partition的数据同步传输速度时,所述目标偏移量为当前时刻所述leader partition的最大的偏移量;在所述leader partition的数据平均写入速度小于或等于所述数据同步传输速度时,所述目标偏移量为所述leader partition的起始偏移量。6.如权利要求3或4所述的方法,其特征在于,在所述leader partition的数据平均写入速度大于所述leader partition的数据同步传输速度时,所述目标偏移量为当前时刻所述leader partition的最大的偏移量;在所述leader partition的数据平均写入速度小于或等于所述数据同步传输速度、并且所述leader partition的当前数据总量所需要的同步时间小于预设时长时,所述目标偏移量为所述leader partition的起始偏移量。7.如权利要求1或2所述的方法,其特征在于,所述偏移量选取策略为基于数据价值的选取策略,所述follower partition基于所述偏移量选取策略确定在待同步的topic的leader partition中的偏移量,包括:
所述follower partition获取多个消费者组的消费偏移量,所述follower partition确定最小的所述消费偏移量为所述目标偏移量;其中,所述消费者组用于消费所述...

【专利技术属性】
技术研发人员:汝佳赵东智伟
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1