System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 消费机器的灾备切换方法、装置、计算机设备及介质制造方法及图纸_技高网

消费机器的灾备切换方法、装置、计算机设备及介质制造方法及图纸

技术编号:43804512 阅读:22 留言:0更新日期:2024-12-27 13:22
本申请涉及一种消费机器的灾备切换方法、装置、计算机设备及介质,该方法包括:当监听到出现第一消费机器的心跳停止时长达到预设的心跳周期时,收回第一消费机器上的业务数据;当监听到出现第二消费机器发出排他锁时,单独向第二消费机器发送业务数据以完成消费机器的切换操作;第二消费机器是在其余的多台消费机器中最先向Redis端发出排他锁的一台消费机器;其中,当第一消费机器发生宕机,或者内部的程序出现异常时,第一消费机器会暂停发送心跳。本申请设计了一种消费机器的灾备切换方案,确保了业务数据在分布式环境下仅能由单台消费机器消费,当出现问题时,执行灾备切换操作以避免增量数据同步延迟的问题,保证了业务的正常进行。

【技术实现步骤摘要】

本专利技术实施例涉及计算机,尤其涉及一种消费机器的灾备切换方法、装置、计算机设备及介质


技术介绍

1、面对公司业务增长带来的数据存储和查询挑战,一般会采用基于kafka的增量数据同步方案。该kafka的增量数据同步方案主要包括:首先,监听某数据源发出的binlog日志,通常是关系型数据库。然后设置kafka集群,由kafka集群进行业务数据的接收与消费,并确保其能够处理预期的数据量和吞吐量。其中,可以在消费者应用程序中,将接收到的binlog日志转换为所需的数据格式,并加入组装宽表的逻辑来将转换后的数据写入新的数据存储系统中,即可实现自定义的增量数据同步,并确保新系统能够处理不断增长的业务数据,同时保持查询的响应速度。

2、然而,专利技术人意识到,由于kafka客户端只能由一个消费机器单独开启并消费,如果出现消费机器意外宕机或者程序不可用时,无法让其他消费机器继续消费此kafka消息,容易造成增量数据同步延迟的问题,带来业务上的不可控。


技术实现思路

1、本申请针对上述不足或缺点,本申请提供了一种消费机器的灾备切换方法、装置、计算机设备及介质。通过执行该方案,确保了业务数据在分布式环境下仅能由单台消费机器消费,当出现问题时,执行灾备切换操作以避免增量数据同步延迟的问题,保证了业务的正常进行。

2、本申请根据第一方面提供了一种消费机器的灾备切换方法,该方法应用于包含有多台消费机器的分布式数据消费系统,包括:

3、当监听到出现第一消费机器的心跳停止时长达到预设的心跳周期时,收回第一消费机器上的业务数据,第一消费机器是当前正在消费业务数据的一台消费机器;

4、当监听到出现第二消费机器发出排他锁时,单独向第二消费机器发送业务数据以完成消费机器的切换操作;第二消费机器是在其余的多台消费机器中最先向redis(remotedictionary server,远程字典服务)端发出排他锁的一台消费机器;

5、其中,当第一消费机器发生宕机,或者内部的程序出现异常时,第一消费机器会暂停发送心跳。

6、在一些实施例中,在启动分布式数据消费系统的业务项目时,该方法还包括:

7、随机地选取分布式数据消费系统中的一台消费机器作为第一消费机器;

8、令第一消费机器通过订阅方式从redis端获取kafka配置标识集合;

9、其中,第一消费机器在获取到kafka配置标识集合后,遍历该kafka配置标识集合,抽取其中一个目标kafka配置标识用以确定排他锁的值,并向redis端发送排他锁。

10、在一些实施例中,每台消费机器原本被设置了空标识,当出现某一消费机器的空标识被赋予特定的kafka配置标识时,该消费机器会向redis端发送心跳;该方法还包括:

11、当监听到第一消费机器向redis端发送排他锁时,向第一消费机器发送目标kafka配置标识对应的消费配置信息,该消费配置信息包括kafka服务端地址、消息集键以及客户端消费方式信息;

12、启动第一消费机器的kafka客户端以执行消费业务数据操作,并为第一消费机器的空标识赋予上目标kafka配置标识。

13、在一些实施例中,启动第一消费机器的kafka客户端以执行业务数据操作,包括:

14、开启kafka客户端的第一子线程和第二子线程;

15、通过第一子线程接收业务数据,将业务数据存入阻塞队列中;

16、通过第二子线程从阻塞队列中取出业务数据,并根据业务数据执行对应的业务代码。

17、在一些实施例中,在为第一消费机器的空标识赋予上目标kafka配置标识后,第一消费机器会按照设定的心跳周期向redis端发送心跳;

18、其中,单次的心跳续期大于心跳周期;若第一消费机器的心跳续期成功,则在当前的心跳续期内,第一消费机器独占目标kafka配置标识。

19、在一些实施例中,收回第一消费机器上的业务数据,包括:

20、将第一消费机器的目标kafka配置标识设置为空标识以停止kafka客户端的消费业务数据操作。

21、在一些实施例中,该方法还包括:

22、将第一消费机器的目标kafka配置标识以及其余各台消费机器的当前标识设置为空标识,以停止分布式数据消费系统中所有的消费业务数据操作;

23、若在当前的心跳续期内未出现任一台消费机器发出心跳,则在下一心跳续期内,且监听到出现第三消费机器向redis端发出排他锁时,单独向第三消费机器发送业务数据以完成消费机器的切换操作。

24、本申请根据第二方面提供了一种消费机器的灾备切换装置,该灾备切换装置应用于包含有多台消费机器的分布式数据消费系统,包括:

25、业务数据回收模块,用于当监听到出现第一消费机器的心跳停止时长达到预设的心跳周期时,收回第一消费机器上的业务数据,该第一消费机器是当前正在消费业务数据的一台消费机器;

26、业务数据切换模块,用于当监听到出现第二消费机器发出排他锁时,单独向第二消费机器发送业务数据以完成消费机器的切换操作;第二消费机器是在其余的多台消费机器中最先向redis端发出排他锁的一台消费机器;

27、其中,当第一消费机器发生宕机,或者内部的程序出现异常时,第一消费机器会暂停发送心跳。

28、本申请根据第三方面提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中任一项消费机器的灾备切换方法的步骤。

29、本申请根据第四方面提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例中任一项消费机器的灾备切换方法的步骤。

30、上述实施例的方法可以应用于监听消费机器心跳的监控服务器,该监控服务器在接收到项目启动指令时,会随机地选取分布式数据消费系统中的一台消费机器作为第一消费机器,然后令第一消费机器通过订阅方式从redis端获取kafka配置标识集合。其中,第一消费机器在获取到kafka配置标识集合后,会遍历该kafka配置标识集合,抽取其中一个目标kafka配置标识用以确定排他锁的值,并向redis端发送排他锁,使得业务数据只能由第一消费机器进行消费。而监控服务器在监听到第一消费机器的心跳停止时长超过心跳续期时,表明第一消费机器发生宕机,或内部的程序出现异常,则收回第一消费机器上的业务数据。此时,除第一消费机器以外的消费机器均可以向redis端发送排他锁来争取消费业务数据的机会。最后,当监控服务器监听到出现第二消费机器发出排他锁时,单独向第二消费机器发送业务数据以完成消费机器的切换操作。通过这样的方式,确保了业务数据在分布式环境下仅能由单台消费机器消费,当出现问题时,执行灾备切换操作以避免增量数据同步延迟的问题,保证了业务的正常进行。

本文档来自技高网...

【技术保护点】

1.一种消费机器的灾备切换方法,其特征在于,所述方法应用于包含有多台消费机器的分布式数据消费系统,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,在启动所述分布式数据消费系统的业务项目时,所述方法还包括:

3.根据权利要求2所述的方法,其特征在于,每台所述消费机器原本被设置了空标识,当出现某一消费机器的空标识被赋予特定的Kafka配置标识时,该消费机器会向所述Redis端发送心跳;所述方法还包括:

4.根据权利要求3所述的方法,其特征在于,启动所述第一消费机器的Kafka客户端以执行业务数据操作,包括:

5.根据权利要求3所述的方法,其特征在于,在为所述第一消费机器的空标识赋予上所述目标Kafka配置标识后,所述第一消费机器会按照设定的心跳周期向所述Redis端发送心跳;

6.根据权利要求3所述的方法,其特征在于,收回所述第一消费机器上的业务数据,包括:

7.根据权利要求6所述的方法,其特征在于,所述方法还包括:

8.一种消费机器的灾备切换装置,其特征在于,该灾备切换装置应用于包含有多台消费机器的分布式数据消费系统,包括:

9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述方法的步骤。

10.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。

...

【技术特征摘要】

1.一种消费机器的灾备切换方法,其特征在于,所述方法应用于包含有多台消费机器的分布式数据消费系统,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,在启动所述分布式数据消费系统的业务项目时,所述方法还包括:

3.根据权利要求2所述的方法,其特征在于,每台所述消费机器原本被设置了空标识,当出现某一消费机器的空标识被赋予特定的kafka配置标识时,该消费机器会向所述redis端发送心跳;所述方法还包括:

4.根据权利要求3所述的方法,其特征在于,启动所述第一消费机器的kafka客户端以执行业务数据操作,包括:

5.根据权利要求3所述的方法,其特征在于,在为所述第一消费机器的空标识赋予上所述目标kafka配置标识后,所述第一...

【专利技术属性】
技术研发人员:张名文
申请(专利权)人:北京白龙马云行科技有限公司
类型:发明
国别省市:

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

1