本说明书实施例涉及分布式锁,尤其涉及一种面向金融分布式系统的分布式锁引擎及控制方法。
背景技术:
1、在金融分布式系统中,分布式系统变得日趋复杂,特别是企业级应用场景下,针对共享资源的互斥访问也成为很多业务必须要面对的需求,这个场景下通常会引入分布式锁来解决问题。目前流行的加锁方式有数据库加锁、redis加锁、rheakv加锁等,每种加锁方式都有其优缺点,也都有适用的场景。
2、针对金融分布式系统中,应用场景多、业务多,加锁需求不同,没有统一的引擎对多种分布式锁进行结合,在更换加锁模式时,需要修改源码,对于业务方切换时使用不方便,代码入侵性大。
技术实现思路
1、为解决现有技术中没有统一的引擎对多种分布式锁进行结合,在更换加锁模式时,需要修改源码,对于业务方切换时使用不方便,代码入侵性大的问题,本说明书实施例提供了一种面向金融分布式系统的分布式锁引擎及控制方法,通过抽象统一的锁接口,通过定义引擎的方式,将多种加锁模式分别提供实现,用户可以通过引擎结合配置进行加锁模式的确定和加锁以及解锁的操作,在加锁模式的切换时,只需要修改配置文件就可以实现切换,没有代码侵入。
2、本说明书实施例的具体技术方案如下:
3、一方面,本说明书实施例提供了一种面向金融分布式系统的分布式锁引擎,所述分布式锁引擎应用于金融分布式系统,包括:实现引擎、配置引擎和管理引擎;
4、所述实现引擎中包括多个不同版本的分布式锁各自对应的锁实现,所述锁实现用于调用相应的所述分布式锁的功能接口,对所述金融分布式系统的相应共享资源执行加锁或解锁操作;
5、所述配置引擎用于根据分布式锁配置信息从所述多个不同版本的分布式锁中确定目标分布式锁,建立所述金融分布式系统与所述目标分布式锁的服务器之间的通信连接;
6、所述管理引擎用于当所述金融分布式系统中的节点访问所述金融分布式系统的目标共享资源时,调用所述实现引擎中所述目标分布式锁对应的锁实现,以便于所述锁实现调用所述目标分布式锁的功能接口对所述目标共享资源执行加锁或解锁操作。
7、进一步地,所述实现引擎还包括:
8、加锁等待时间配置接口,用于接收所述金融分布式系统根据业务场景确定的加锁等待时间,以便于当所述管理引擎调用所述目标分布式锁对应的锁实现时,该锁实现将所述加锁等待时间作为所述目标分布式锁的功能接口的调用参数并调用所述目标分布式锁的功能接口,所述目标分布式锁对应的服务器对所述目标共享资源执行加锁操作时,判断在所述加锁等待时间内是否加锁成功,并向该锁实现返回加锁结果。
9、进一步地,所述实现引擎还包括:
10、锁释放超时时间配置接口,用于接收所述金融分布式系统根据业务场景确定的锁释放超时时间,以便于当所述管理引擎调用所述目标分布式锁对应的锁实现时,该锁实现将所述锁释放超时时间作为所述目标分布式锁的功能接口的调用参数并调用所述目标分布式锁的功能接口,所述目标分布式锁对应的服务器在对所述目标共享资源执行加锁操作成功后,判断在所述锁释放超时时间内所述目标共享资源的锁是否被释放,若否,则释放所述目标共享资源的锁。
11、进一步地,所述配置引擎还用于根据所述分布式锁配置信息确定所述目标分布式锁操作的目标数据源。
12、进一步地,所述管理引擎进一步用于当所述金融分布式系统中的节点访问所述目标数据源中的共享资源时,调用所述实现引擎中所述目标分布式锁对应的锁实现,以便于所述锁实现调用所述目标分布式锁的功能接口对所述目标数据源中的共享资源执行加锁或解锁操作。
13、基于同一发明构思,本说明书实施例还提供了一种面向金融分布式系统的分布式锁引擎的控制方法,应用于上述的面向金融分布式系统的分布式锁引擎,所述控制方法包括:
14、控制实现引擎创建多个不同版本的分布式锁各自对应的锁实现,所述锁实现用于调用相应的所述分布式锁的功能接口,对所述金融分布式系统的相应共享资源执行加锁或解锁操作;
15、当接收到分布式锁配置信息后,控制配置引擎根据所述分布式锁配置信息从所述多个不同版本的分布式锁中确定目标分布式锁,建立所述金融分布式系统与所述目标分布式锁的服务器之间的通信连接;
16、当所述金融分布式系统中的节点访问所述金融分布式系统的目标共享资源时,控制管理引擎调用所述实现引擎中所述目标分布式锁对应的锁实现,以便于所述锁实现调用所述目标分布式锁的功能接口对所述目标共享资源执行加锁或解锁操作。
17、进一步地,所述控制方法还包括:
18、通过所述实现引擎中的加锁等待时间配置接口接收所述金融分布式系统根据业务场景确定的加锁等待时间;
19、当所述管理引擎调用所述目标分布式锁对应的锁实现时,控制该锁实现将所述加锁等待时间作为所述目标分布式锁的功能接口的调用参数并调用所述目标分布式锁的功能接口,以便于所述目标分布式锁对应的服务器对所述目标共享资源执行加锁操作时,判断在所述加锁等待时间内是否加锁成功,并向该锁实现返回加锁结果。
20、进一步地,所述控制方法还包括:
21、通过所述实现引擎中的锁释放超时时间配置接口接收所述金融分布式系统根据业务场景确定的锁释放超时时间;
22、当所述管理引擎调用所述目标分布式锁对应的锁实现时,控制该锁实现将所述锁释放超时时间作为所述目标分布式锁的功能接口的调用参数并调用所述目标分布式锁的功能接口,以便于所述目标分布式锁对应的服务器在对所述目标共享资源执行加锁操作成功后,判断在所述锁释放超时时间内所述目标共享资源的锁是否被释放,若否,则释放所述目标共享资源的锁。
23、进一步地,所述控制方法还包括:
24、控制所述配置引擎根据所述分布式锁配置信息确定所述目标分布式锁操作的目标数据源。
25、进一步地,所述控制方法还包括:
26、当所述金融分布式系统中的节点访问所述目标数据源中的共享资源时,控制所述管理引擎调用所述实现引擎中所述目标分布式锁对应的锁实现,以便于所述锁实现调用所述目标分布式锁的功能接口对所述目标数据源中的共享资源执行加锁或解锁操作。
27、另一方面,本说明书实施例还提供了一种计算机设备,包括存储器、处理器、以及存储在存储器上的计算机程序,处理器执行所述计算机程序时实现上述的控制方法。
28、另一方面,本说明书实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述的控制方法。
29、最后,本说明书实施例还提供了一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述的控制方法。
30、利用本说明书实施例,通过定义引擎的方式,将多个不同版本的分布式锁分别提供实现,用户可以通过引擎结合配置进行加锁模式的确定和加锁以及解锁的操作,在加锁模式的切换时,只需要修改分布式锁配置信息就可以实现加锁模式的切换,方便快捷,简化使用难度,提高灵活性,且没有代码侵入。解决了现有技术中没有统一的引擎对多种分布式锁进行结合,在更换加锁模式时,需要修改源码,对于业务方切换时使用不方便,代码入侵性大的问题。
1.一种面向金融分布式系统的分布式锁引擎,其特征在于,所述分布式锁引擎应用于金融分布式系统,包括:实现引擎、配置引擎和管理引擎;
2.根据权利要求1所述的面向金融分布式系统的分布式锁引擎,其特征在于,所述实现引擎还包括:
3.根据权利要求1所述的面向金融分布式系统的分布式锁引擎,其特征在于,所述实现引擎还包括:
4.根据权利要求1所述的面向金融分布式系统的分布式锁引擎,其特征在于,所述配置引擎还用于根据所述分布式锁配置信息确定所述目标分布式锁操作的目标数据源。
5.根据权利要求4所述的面向金融分布式系统的分布式锁引擎,其特征在于,所述管理引擎进一步用于当所述金融分布式系统中的节点访问所述目标数据源中的共享资源时,调用所述实现引擎中所述目标分布式锁对应的锁实现,以便于所述锁实现调用所述目标分布式锁的功能接口对所述目标数据源中的共享资源执行加锁或解锁操作。
6.一种面向金融分布式系统的分布式锁引擎的控制方法,应用于权利要求1-5任意一项所述的面向金融分布式系统的分布式锁引擎,其特征在于,所述控制方法包括:
7.根据权利要求6所述的控制方法,其特征在于,所述控制方法还包括:
8.根据权利要求6所述的控制方法,其特征在于,所述控制方法还包括:
9.根据权利要求6所述的控制方法,其特征在于,所述控制方法还包括:
10.根据权利要求9所述的控制方法,其特征在于,所述控制方法还包括:
11.一种计算机设备,包括存储器、处理器、以及存储在所述存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序时,实现权利要求6至10任一所述的控制方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现权利要求6至10任一所述的控制方法。
13.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现权利要求6至10任一所述的控制方法。
