本申请涉及数据同步,尤其涉及一种数据同步方法、无状态应用、电子设备和存储介质。
背景技术:
1、随着互联网的发展,以往的单应用无法满足用户量爆发的增长,因此发展出现在的分布式应用部署。但随着用户访问量的增加,数据库也开始无法承载压力,变有了分布式缓存,例如redis。可这本质只是将数据库的压力,转嫁给分布式缓存身上,最终分布式缓存也会出现压力过大的问题。因而需要提供一种方法,将访问量的压力停留在应用层并解决,而不是下沉至分布式缓存或数据库。
技术实现思路
1、本申请提供了一种数据同步方法、无状态应用、电子设备和存储介质,用于改善用户查询数据时,需要将查询请求从应用层下沉至数据库层,导致数据库的访问压力过大的技术问题。
2、有鉴于此,本申请第一方面提供了一种数据同步方法,应用于无状态应用,方法包括:
3、启动时,在本地创建目标模块,所述目标模块包括本地缓存模块、数据同步模块;
4、首次接收到用户的查询请求时,从数据存储模块中读取目标数据返回给用户,并调用数据同步模块将所述目标数据存储至本地缓存模块;
5、再次接收到用户的查询请求时,访问本地缓存模块读取所述目标数据并返回给用户。
6、可选的,所述目标模块还包括:数据变更通知模块;
7、所述方法还包括:
8、在接收到数据变更请求时,变更本地缓存模块中存储的目标数据,并调用数据变更通知模块发送数据变更消息给其他无状态应用,使得其他无状态应用进行数据同步。
9、可选的,所述方法还包括:
10、启动时,上报元信息至应用状态管理模块,所述元信息包括ip地址、端口、缓存的数据;
11、所述调用数据变更通知模块发送数据变更消息给其他无状态应用,具体包括:
12、调用数据变更通知模块,由数据变更通知模块从所述应用状态管理模块获取其他无状态应用的元信息,根据其他无状态应用的元信息获取的位置信息建立通信,发送数据变更消息至其他无状态应用,使得其他无状态应用进行数据同步。
13、可选的,所述目标模块还包括:数据变更接收模块;
14、所述方法还包括:
15、通过数据变更接收模块接收其他无状态应用发送的数据变更消息,对数据变更消息进行解析确定失效数据缓存的位置信息,并根据该位置信息删除对应的缓存数据,并异步通知数据同步模块进行数据同步。
16、可选的,所述目标数据为在预置时间段内查询次数不低于第一阈值,更新次数低于第二阈值,且数据大小小于第三预置的数据。
17、本申请第二方面提供了一种无状态应用,包括:
18、创建模块,用于启动时,在本地创建目标模块,所述目标模块包括本地缓存模块、数据同步模块;
19、数据读取模块,用于首次接收到用户的查询请求时,从数据存储模块中读取目标数据返回给用户,并调用数据同步模块将所述目标数据存储至本地缓存模块;
20、数据读取模块,还用于再次接收到用户的查询请求时,访问本地缓存模块读取所述目标数据并返回给用户。
21、可选的,所述目标模块还包括:数据变更通知模块;
22、还包括:数据变更模块,用于:
23、在接收到数据变更请求时,变更本地缓存模块中存储的目标数据,并调用数据变更通知模块发送数据变更消息给其他无状态应用,使得其他无状态应用进行数据同步。
24、可选的,所述目标模块还包括:数据变更接收模块;
25、还包括:数据删除模块,用于:
26、通过数据变更接收模块接收数据变更消息,对数据变更消息进行解析确定失效数据缓存的位置信息,并根据该位置信息删除对应的缓存数据,并异步通知数据同步模块进行数据同步。
27、本申请第三方面提供了一种电子设备,所述设备包括处理器以及存储器;
28、所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
29、所述处理器用于根据所述程序代码中的指令执行第一方面任一种所述的数据同步方法。
30、本申请第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码被处理器执行时实现第一方面任一种所述的数据同步方法。
31、从以上技术方案可以看出,本申请具有以下优点:
32、本申请提供了一种数据同步方法,应用于无状态应用,方法包括:启动时,在本地创建目标模块,目标模块包括本地缓存模块、数据同步模块;首次接收到用户的查询请求时,从数据存储模块中读取目标数据返回给用户,并调用数据同步模块将目标数据存储至本地缓存模块;再次接收到用户的查询请求时,访问本地缓存模块读取目标数据并返回给用户。
33、本申请中,利用无状态应用的本地内存空间,保存备份数据,以保证数据在空间局限性的情况下,能够更快的被查询到,并及时反馈给用户,从而解决了用户查询数据时,需要将查询请求从应用层下沉至数据库层所导致的数据库访问压力过大的技术问题。
1.一种数据同步方法,其特征在于,应用于无状态应用,方法包括:
2.根据权利要求1所述的数据同步方法,其特征在于,所述目标模块还包括:数据变更通知模块;
3.根据权利要求2所述的数据同步方法,其特征在于,所述方法还包括:
4.根据权利要求3所述的数据同步方法,其特征在于,所述目标模块还包括:数据变更接收模块;
5.根据权利要求1所述的数据同步方法,其特征在于,所述目标数据为在预置时间段内查询次数不低于第一阈值,更新次数低于第二阈值,且数据大小小于第三预置的数据。
6.一种无状态应用,其特征在于,包括:
7.根据权利要求6所述的无状态应用,其特征在于,所述目标模块还包括:数据变更通知模块;
8.根据权利要求7所述的无状态应用,其特征在于,所述目标模块还包括:数据变更接收模块;
9.一种电子设备,其特征在于,所述设备包括处理器以及存储器;
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储程序代码,所述程序代码被处理器执行时实现权利要求1-5任一项所述的数据同步方法。