一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种数据处理方法、装置、计算机设备及存储介质与流程

2023-02-19 08:22:27 来源:中国专利 TAG:


1.本发明涉及计算机技术领域,尤其涉及一种数据处理方法、装置、计算机设备及存储介质。


背景技术:

2.比如用户的使用场景是直播答题活动,目前,问卷星、问卷网等的数据都是托管在外部设备,不可控、安全性差,并且不支持问卷数据的高并发读取。客户经常会有一些定制化的需求,比如直播游戏时的答题活动,一些明星大v等会在直播间发布答卷连接,然后答题的前多少名用户有奖励,这种场景下,所有参与的用户都会瞬间同时答题,对查看问卷、填写和提交问卷功能的高并发有一定的要求,这些现有的问卷系统都不支持。因此,如何提供一种支持高并发场景且安全可靠的问卷管理方法已成为亟待解决的问题。


技术实现要素:

3.本发明实施例提供一种数据处理方法、装置、计算机设备及存储介质,可以保证高并发问卷读取场景下的快速响应,通过加版本号的方式保证了数据的时效性以及一致性。
4.第一方面,本发明实施例提供了一种数据处理方法,所述方法包括:
5.响应于客户端针对目标问卷的问卷获取请求,获取所述目标问卷的版本号。
6.根据所述目标问卷的版本号从多级存储空间获取所述目标问卷的问卷数据,所述多级存储空间包括本地内存空间、分布式缓存空间和持久化存储空间中的一种或多种。
7.向所述客户端发送所述目标问卷的问卷数据。
8.第二方面,本发明实施例提供了一种数据处理装置,所述装置包括:
9.获取模块,用于响应于客户端针对目标问卷的问卷获取请求,获取所述目标问卷的版本号。
10.所述获取模块,还用于根据所述目标问卷的版本号从多级存储空间获取所述目标问卷的问卷数据,所述多级存储空间包括本地内存空间、分布式缓存空间和持久化存储空间中的一种或多种。
11.发送模块,用于向所述客户端发送所述目标问卷的问卷数据。
12.第三方面,本发明实施例提供了一种计算机设备,所述计算机设备包括处理器、网络接口和存储装置,所述处理器、所述网络接口和所述存储装置相互连接,其中,所述网络接口受所述处理器的控制用于收发数据,所述存储装置用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,用于执行第一方面所述的数据处理方法。
13.第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行,用以执行第一方面所述的数据处理方法。
14.第五方面,本发明实施公开了一种计算机程序产品或计算机程序,该计算机程序
产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述第一方面所述的数据处理方法。
15.本发明实施例中,工作节点可以响应客户端发送的针对目标问卷的问卷获取请求,获取目标问卷的版本号,根据目标问卷的版本号从多级存储空间获取目标问卷的问卷数据,多级存储空间包括本地内存空间、分布式缓存空间和持久化存储空间中的一种或多种,在从多级存储空间中任意一级存储空间读取到问卷数据之后,即可向客户端发送目标问卷的问卷数据,从而通过多级缓存保证了高并发问卷读取场景下的快速响应,通过加版本号的方式保证数据时效性以及数据一致性。
附图说明
16.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
17.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
18.图1a是本发明实施例提供的一种数据处理系统的架构示意图;
19.图1b是本发明实施例提供的一种问卷管理的架构示意图;
20.图2是本发明实施例提供的一种数据处理方法的流程示意图;
21.图3是本发明实施例提供的另一种数据处理方法的流程示意图;
22.图4a是本发明实施例提供的一种发布问卷的流程示意图;
23.图4b是本发明实施例提供的一种查看问卷的流程示意图;
24.图4c是本发明实施例提供的一种提交答卷的流程示意图;
25.图4d是本发明实施例提供的一种答卷数据持久化存储的流程示意图;
26.图4e是本发明实施例提供的另一种答卷数据持久化存储的流程示意图;
27.图5是本发明实施例提供的一种数据处理装置的结构示意图;
28.图6是本发明实施例提供的一种计算机设备的结构示意图。
具体实施方式
29.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
30.请参见图1a,是本发明实施例提供的一种数据处理系统的架构示意图,该数据处理系统包括客户端10、工作节点20、分布式缓存节点30、持久化存储节点40以及消息队列节点50,其中:
31.工作节点20可以是分布式的计算机设备(如服务器),用于提供问卷的发布、查看、答卷收集等服务,例如,工作节点20可以与客户端10进行通信,接收客户端10提交的问卷数据,将问卷数据存储在多级存储空间中,例如本地的内存空间、分布式缓存空间、持久化存储空间等,当客户端10提交问卷查看请求时,工作节点20可以从多级存储空间中高效读取数据,从而支持高并发的问卷读取场景。工作节点20还可以接收客户端10针对问卷提交的答卷数据,在将答卷数据写入持久化存储空间之前,为了保证高并发场景下大量用户提交的答卷数据的有效存储,防止数据丢失,可以先将答卷数据写入分布式缓存空间以及消息中间件队列中,分布式缓存空间可以由数据库软件提供,例如分布式缓存空间,消息中间件队列可以由分布式日志系统提供,通过使用分布式消息中间件分布式日志系统对提交的答卷数据做出基于可靠性的异步处理,例如可以异步地从分布式日志系统的消息中间件队列中获取用户的答卷数据,然后写入持久化存储空间。
32.客户端10可以供用户以及问卷发布者使用,例如用户可以通过客户端10问卷,并提交答卷数据,查看答卷结果;问卷发布者可以通过客户端10发布问卷,例如可以发布新的问卷,或者更新之前已经发布的问卷。
33.分布式缓存节点30可以提供分布式缓存空间,分布式缓存空间用于对问卷数据、答卷数据、问卷版本号等进行缓存。
34.持久化存储节点40可以提供持久化存储空间,例如数据库db,持久化存储空间用于对问卷数据、答卷数据、问卷版本号等进行长期存储。
35.消息队列节点50可以提供基于分布式日志系统的消息中间件队列,该消息中间件队列可以用于缓存用户提交的答卷数据,等待数据消费者(即工作节点20)从消息中间件队列中获取答卷数据,并异步写入持久化存储空间,保证了数据的安全以及有效存储。
36.其中,工作节点20、分布式缓存节点30、持久化存储节点40以及消息队列节点50可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和人工智能平台等基础云计算服务的分布式云服务器。客户端10具体可以是智能手机、平板电脑、笔记本电脑、台式电脑、车载智能终端等,本发明实施例不做限定。
37.在一些可行的实施方式中,关于问卷数据的获取流程可以如下:用户通过客户端10向工作节点20发送针对目标问卷的问卷获取请求,工作节点20响应该问卷获取请求,获取目标问卷的版本号,根据目标问卷的版本号从多级存储空间获取目标问卷的问卷数据,多级存储空间包括本地内存空间、分布式缓存空间和持久化存储空间中的一种或多种,在从多级存储空间中任意一级存储空间读取到问卷数据之后,即可向客户端发送目标问卷的问卷数据,从而通过多级缓存保证了高并发问卷读取场景下的快速响应,通过加版本号的方式保证数据时效性以及数据一致性。
38.请参见图1b,是本发明实施例基于图1a所示的数据处理系统提供的一种问卷管理的架构示意图,其中:问卷管理架构可以划分为用户层60、前端页面层70、收集服务层80、存储层90。
39.具体的,用户层60可以包括问卷的管理员和填写者;前端页面层70用于提供与管理员和填写者交互所需的各种操作页面,例如问卷编辑页面,问卷填写页面,答案查看页面等。管理员通过问卷编辑页面发布新的问卷或者更新之前发布的问卷;填写者通过问卷填
写页面提交答卷数据,通过答案查看页面可以查看问卷的相关答案。收集服务层80提供问卷管理过程中所需的各种通用网关接口(common gateway interface,cgi),包括问卷发布cgi、问卷获取cgi、答案提交cgi、答案查看cgi等,以及问卷数据消费者、答案数据消费者,问卷数据消费者、答案数据消费者是指工作节点可以将问卷数据、答案数据等数据写入到存储层的各种存储空间中;存储层90用于提供多级存储空间,包括分布式缓存空间,消息中间件队列,持久化存储空间(如数据库(data base,db))等,另外工作节点的内存空间也可以提供数据的缓存服务。
40.以下对本发明实施例的技术方案的实现细节进行详细阐述:
41.请参见图2,是本发明实施例基于图1a所示的数据处理系统提供的一种数据处理方法的流程示意图,本发明实施例的数据处理方法主要是从工作节点一侧进行描述的,该数据处理方法包括如下步骤:
42.201、响应于客户端针对目标问卷的问卷获取请求,获取所述目标问卷的版本号。
43.具体的,当工作节点接收到客户端提交的问卷获取请求时,可以获取问卷获取请求中携带的目标问卷的标识信息,向第一存储节点发送版本获取请求,版本获取请求携带有目标问卷的标识信息,其中,第一存储节点对应于前文所述的分布式缓存节点30,可以是图1a中的任意一个分布式缓存节点,用于提供分布式缓存空间;第一存储节点响应版本获取请求根据目标问卷的标识信息从分布式缓存空间中获取目标问卷的版本号,例如最新版本号,并向工作节点发送目标文件的版本号。
44.202、根据所述目标问卷的版本号从多级存储空间获取所述目标问卷的问卷数据,所述多级存储空间包括本地内存空间、分布式缓存空间和持久化存储空间中的一种或多种。
45.其中,本技术可以提供多级存储空间来存储问卷的问卷数据,多级存储空间具体可以包括本地内存空间、分布式缓存空间和持久化存储空间,本地内存空间由工作节点提供,分布式缓存空间由分布式缓存节点提供,持久化存储空间由持久化存储节点提供。
46.具体的,工作节点在获取到目标问卷的版本号之后,可以按照设定的查询顺序本地内存空间、分布式缓存空间或持久化存储空间中获取目标问卷的问卷数据,设定的查询顺序可以先是本地内存空间,然后是分布式缓存空间,再然后是持久化存储空间,即优先从读取性能更佳的存储空间读取问卷数据,利用多级存储空间提供问卷数据可以保证高并发场景下的高效读取。
47.203、向所述客户端发送所述目标问卷的问卷数据。
48.具体的,工作节点按照设定的查询顺序,在从多级存储空间中任意一级存储空间读取到问卷数据之后,即可向客户端发送目标问卷的问卷数据,从而通过多级缓存保证了高并发问卷读取场景下的快速响应。
49.本发明实施例中,工作节点可以响应客户端发送的针对目标问卷的问卷获取请求,获取目标问卷的版本号,根据目标问卷的版本号从多级存储空间获取目标问卷的问卷数据,多级存储空间包括本地内存空间、分布式缓存空间和持久化存储空间中的一种或多种,在从多级存储空间中任意一级存储空间读取到问卷数据之后,即可向客户端发送目标问卷的问卷数据,从而通过多级缓存保证了高并发问卷读取场景下的快速响应,通过加版本号的方式保证数据时效性以及数据一致性。
50.请参见图3,是本发明实施例基于图1a所示的数据处理系统提供的另一种数据处理方法的流程示意图,本发明实施例的数据处理方法主要是从工作节点一侧进行描述的,该数据处理方法包括如下步骤:
51.301、响应于客户端针对目标问卷的问卷获取请求,获取所述目标问卷的版本号。
52.其中,步骤301的具体实现方式可以参见前述实施例中步骤201中的相关描述,此处不再赘述。
53.302、根据所述目标问卷的版本号查询所述本地内存空间是否包括所述目标问卷的问卷数据,若所述本地内存空间包括所述目标问卷的问卷数据,则根据所述目标问卷的版本号从所述本地内存空间中读取所述目标问卷的问卷数据。
54.具体的,考虑到本地内存空间的数据读取性能最优,分布式缓存空间的数据读取性能次之,持久化存储空间的数据读取性能最差,工作节点获取到目标文件的版本号之后,可以先查询本地内存空间中是否缓存有目标问卷的问卷数据,如果有,则可以直接从本地内存空间中读取目标问卷的问卷数据。
55.在一些可行的实施方式中,工作节点可以先校验本地内存空间缓存的问卷数据的版本号是否与获取的目标问卷的版本号匹配,如果匹配,则表明缓存的是最新的问卷数据,可以直接读取;如果不匹配,则表明缓存的不是最新的问卷数据,此时,需要从分布式缓存节点的分布式缓存空间尝试读取目标文件的问卷数据。
56.303、若所述本地内存空间不包括所述目标问卷的问卷数据,则根据所述目标问卷的版本号从所述分布式缓存空间中读取所述目标问卷的问卷数据,并将所述目标问卷的问卷数据写入所述本地内存空间。
57.具体的,如果本地内存空间不包括目标问卷的问卷数据,则工作节点可以根据目标问卷的版本号查询第一存储节点(即上述的分布式缓存节点)的分布式缓存空间是否包括目标问卷的问卷数据,如果分布式缓存空间包括目标问卷的问卷数据,则接收第一存储节点发送的目标问卷的问卷数据。进一步地,工作节点可以将目标问卷的问卷数据写入本地内存空间,当其他用户需要读取目标问卷的问卷数据时,工作节点可以从本地内存空间快速读取问卷数据并提供给用户。
58.304、若所述分布式缓存空间不包括所述目标问卷的问卷数据,则根据所述目标问卷的版本号从所述持久化存储空间读取所述目标问卷的问卷数据,并将所述目标问卷的问卷数据写入所述分布式缓存空间以及所述本地内存空间。
59.具体的,如果分布式缓存空间也不包括目标问卷的问卷数据,则考虑到分布式缓存空间可以被多个工作节点执行数据写入操作,为保证数据一致性,当前的工作节点可以针对目标问卷设置分布式锁,使得其他工作节点暂时无法操作目标问卷的问卷数据,例如读取问卷数据或者将问卷数据写入分布式缓存空间,当前的工作节点可以根据目标问卷的版本号查询第二存储节点的持久化存储空间是否包括目标问卷的问卷数据,其中,第二存储节点对应于前文所述的持久化存储节点,具体可以是任意一个持久化存储节点,如果持久化存储空间包括目标问卷的问卷数据,则工作节点接收第二存储节点发送的目标问卷的问卷数据,获取到目标问卷的问卷数据之后,释放分布式锁,使得其他工作节点恢复操作目标问卷的问卷数据的权限,并将目标问卷的问卷数据写入分布式缓存空间以及本地内存空间,从而使得对于其他用户的问卷获取请求,可以优先从本地内存空间或者分布式缓存空
间中读取问卷数据,提高了问卷数据的读取性能,满足高并发场景下的数据读取需求。
60.在一些可行的实施方式中,如果持久化存储空间也不包括目标问卷的问卷数据,则释放分布式锁,可以将本次的读取请求认为是一次恶意攻击行为,此时可以向分布式缓存空间写入目标问卷的版本号对应的空数据,当后续攻击者再次尝试读取数据时,可以从分布式缓存空间读取对应的空数据,并返回给攻击者,保证了数据安全。
61.在一些可行的实施方式中,在当前工作节点对目标问卷完成设置分布式锁之前,考虑到其他工作节点可能已经从持久化存储空间读取到目标问卷的问卷数据,并且写入到分布式缓存空间中,当前工作节点在针对目标问卷设置分布式锁之后,可以再次查询分布式缓存空间是否包括目标问卷的问卷数据,例如根据目标问卷的版本号查询第一存储节点的分布式缓存空间是否包括目标问卷的问卷数据,如果此时分布式缓存空间包括目标问卷的问卷数据,则可以接收第一存储节点发送的目标问卷的问卷数据,然后释放分布式锁,并将目标问卷的问卷数据写入本地内存空间,也即无需再从持久化存储空间获取目标问卷的问卷数据,提升数据读取速度;如果此时分布式缓存空间仍然不包括目标问卷的问卷数据,则才需要根据目标问卷的版本号查询第二存储节点的持久化存储空间,以获取目标问卷的问卷数据。
62.305、接收所述客户端通过答案提交接口发送的所述目标问卷的答卷数据。
63.具体的,用户在完成问卷之后,通过客户端提交答卷数据,例如客户端可以通过答案提交接口cgi向工作节点提交目标问卷的答卷数据。
64.306、将所述目标问卷的答卷数据按照写入顺序依次写入第一存储节点的分布式缓存空间以及第三存储节点的第一消息中间件队列。
65.具体的,由于用户填写和提交答案是高并发、且对数据可靠性要求极高的操作,考虑到持久化存储必然会大量写持久化存储空间(如数据库db),即使是分布式db,也难以支撑瞬间的高并发,因此可以使用分布式日志系统的消息中间件对提交的答卷数据做出基于可靠性的异步处理,也即是工作节点一方面将目标问卷的答卷数据写入第一存储节点的分布式缓存空间,另一方面还可以将目标问卷的答卷数据写入第三存储节点的第一消息中间件队列,第三存储节点对应于前文所述的消息队列节点。
66.307、从所述第一消息中间件队列中读取所述目标问卷的答卷数据,并将所述目标问卷的答卷数据写入所述持久化存储空间。
67.具体的,工作节点可以异步地从第一消息中间件队列中读取目标问卷的答卷数据,并将答卷数据写入持久化存储空间,可以看出,用户提交答案后,后台可以将答卷数据先写缓存(即分布式缓存空间),然后给分布式日志系统发送一份,存储到第一消息中间件队列中,用于数据的持久化存储。
68.在一些可行的实施方式中,如果需要检验用户的答卷数据,则可以先对答卷数据进行判卷,得到判卷结果,并将目标问卷的答卷数据以及判卷结果写入第一存储节点的分布式缓存空间以及第三存储节点的第一消息中间件队列。
69.在一些可行的实施方式中,答卷数据可以是经过指定格式封装处理后写入第一消息中间件队列的,工作节点在从第一消息中间件队列中消费数据,也即是从第一消息中间件队列中读取答卷数据时,可以先对读取到的目标问卷的答卷数据进行解析,如果解析成功,则可以将目标问卷的答卷数据写入持久化存储空间的答案表中;如果解析失败,则可以
将目标问卷的答卷数据作为异常数据写入持久化存储空间的错误表中。如果写入答案表失败,或者写入错误表失败,则可以将目标问卷的答卷数据作为异常数据写入第三存储节点的第二消息中间件队列,这里的第二消息中间件队列区别于前述的第一消息中间件队列,第二消息中间件队列用于存储当前尝试写入持久化存储空间失败的答卷数据,通过引入异常数据队列(即第二消息中间件队列),在保证不阻塞正常处理流程(即第一消息中间件队列)的基础上,对于第一消息中间件队列中写入持久化存储空间失败的数据,也可以利用第二消息中间件队列继续尝试进行异步写入。例如,工作节点可以从第二消息中间件队列中读取目标问卷的答卷数据,并将目标问卷的答卷数据写入持久化存储空间中的错误表,从而实现答卷数据的持久化存储,使用分布式日志系统的消息中间件以及双队列机制(包括存储正常数据的第一消息中间件队列以及存储异常数据的第二消息中间件队列)的方式,保证了数据的可靠性。
70.在一些可行的实施方式中,如果在写入第三存储节点的第二消息中间件队列时也失败,则表明各类型的存储节点都出现了故障,此时可以将目标问卷的答卷数据写入本地磁盘空间中,以防止数据的丢失。
71.在一些可行的实施方式中,问卷发布者需要发布问卷时,可以利用客户端通过问卷提交接口向工作节点发送目标问卷的发布请求,发布请求携带有问卷发布者的标识信息、目标问卷的问卷数据以及标识信息,工作节点可以根据问卷发布者的标识信息对问卷发布者的身份进行验证,验证通过之后,从第一存储节点的分布式缓存空间中获取目标问卷更新后的版本号,例如可以通过版本号自增命令指示第一存储节点将当前的版本号自增后得到目标问卷更新后的版本号,例如当前版本号为3,则可以将版本号自增为4,工作节点根据目标问卷更新后的版本号依次将目标问卷的问卷数据写入持久化存储空间以及分布式缓存空间。通常情况下,问卷发布的并发量一般不大,因为只有管理员才有权限,因此在问卷发布环节关注的是数据的可靠性和一致性。其中,数据可靠性通过对数据做持久化存储、以及异地多备份强同步的方式保证,也即是可以在多个持久化存储节点的持久化存储空间写入问卷数据;数据一致性通过先写持久化存储空间、再写分布式缓存空间的方式保证数据的一致性,如果写持久化存储空间成功,写缓存失败,则由于缓存的数据是有过期时间的,当缓存数据失效之后,最新的数据会写入缓存,保证数据最终的一致性。
72.本发明实施例中,工作节点可以响应客户端发送的针对目标问卷的问卷获取请求,获取目标问卷的版本号,根据目标问卷的版本号优先从本地内存空间中读取目标问卷的问卷数据,如果本次内存空间不存在,则再尝试从分布式缓存空间或者持久化存储空间中读取目标问卷的问卷数据,并将读取到的目标问卷的问卷数据写入本地内存空间,或者写入本地内存空间以及分布式缓存空间,以保证数据的高效读取;当获取到用户的答卷数据之后,可以将目标问卷的答卷数据按照写入顺序依次写入第一存储节点的分布式缓存空间以及第三存储节点的第一消息中间件队列,然后从第一消息中间件队列中读取目标问卷的答卷数据,并将目标问卷的答卷数据写入持久化存储空间,从而通过多级缓存保证了高并发问卷读取场景下的快速响应,通过加版本号的方式保证数据时效性以及数据一致性,通过引入消息中间件队列实现数据的异步写入。
73.在一些可行的实施方式中,如图4a所述,是本发明实施例提供的一种发布问卷的流程,可以包括:
74.管理员通过编辑页面编辑问卷,调用问卷提交cgi(通用网关接口,common gateway interface)提交问卷数据;
75.工作节点校验管理员是否是所有者(owner)权限,如果具备权限,则从分布式缓存节点中递增读取问卷版本号;将问卷数据依次写入持久化存储空间,以及分布式缓存空间,通过对数据做持久化存储、以及异地多备份强同步的方式保证数据的可靠性。
76.在一些可行的实施方式中,如图4b所述,是本发明实施例提供的一种查看问卷的流程,可以包括:
77.问卷填写者通过问卷查看页面,调用问卷拉取cgi提交查看请求;
78.工作节点从分布式缓存空间获取问卷版本号,利用版本号首先查询服务内存是否存在问卷数据,如果存在,则直接返回问卷数据;如果不存在,则查询分布式缓存空间中问卷数据是否存在;
79.如果分布式缓存空间中存在,则将问卷数据写入服务内存,并返回问卷数据;如果分布式缓存空间中不存在,则对问卷添加分布式锁,然后再次查询分布式缓存空间中问卷数据是否存在,如果存在,则释放分布式锁,并将问卷数据写入服务内存;如果仍然存在,则查询持久化存储空间中问卷数据是否存在;
80.如果存在,则释放分布式锁,并将问卷数据写入分布式缓存空间以及服务内存中;如果不存在,则释放分布式锁,并向分布式缓存空间写入一份空数据,从而通过多级缓存保证高并发,通过持久化存储、分布式锁保证数据可靠性。
81.在一些可行的实施方式中,如图4c所述,是本发明实施例提供的一种提交答卷的流程,可以包括:
82.问卷填写者通过填写页面填写问卷,通过调用答案提交cgi提交答卷数据;
83.工作节点可以对答卷数据进行判卷,然后向分布式缓存空间以及分布式日志系统的消息中间件队列中写入答卷数据。
84.进一步的,如图4d所述,是本发明实施例提供的一种答卷数据持久化存储的流程,可以包括:
85.工作节点从分布式日志系统的正常消息中间件队列中消费答卷数据,对数据进行解析,如果解析成功,则写入持久化存储空间的答案表;如果写入答案表失败,或者解析失败,则将数据写入持久化存储空间的错误表;如果写入错误表失败,则将数据写入分布式日志系统的异常消息中间件队列中,如果写入异常消息中间件队列失败,则将数据写入本机磁盘中。
86.进一步的,如图4e所述,是本发明实施例提供的另一种答卷数据持久化存储的流程,可以包括:
87.工作节点从分布式日志系统的异常消息中间件队列中消费异常数据,将数据写入持久化存储空间的错误表;如果写入错误表失败,则返回错误信息,从而可以异常数据再次通过异步的方式写入持久化存储空间,并且不会阻塞正常处理流程(即分布式日志系统的正常消息中间件队列)。
88.请参见图5,是本发明实施例的一种数据处理装置的结构示意图。所述装置包括:
89.获取模块501,用于响应于客户端针对目标问卷的问卷获取请求,获取所述目标问卷的版本号。
90.所述获取模块501,还用于根据所述目标问卷的版本号从多级存储空间获取所述目标问卷的问卷数据,所述多级存储空间包括本地内存空间、分布式缓存空间和持久化存储空间中的一种或多种。
91.发送模块502,用于向所述客户端发送所述目标问卷的问卷数据。
92.可选的,所述获取模块501,具体用于:
93.获取所述问卷获取请求中携带的所述目标问卷的标识信息。
94.向第一存储节点发送版本获取请求,所述版本获取请求携带有所述目标问卷的标识信息。
95.接收所述第一存储节点发送的所述目标问卷的版本号,所述目标问卷的版本号是由所述第一存储节点根据所述目标问卷的标识信息从分布式缓存空间中获取的。
96.可选的,所述多级存储空间包括所述本地内存空间、所述分布式缓存空间和所述持久化存储空间,所述获取模块501,具体用于:
97.根据所述目标问卷的版本号按照设定的查询顺序从多级存储空间包括的本地内存空间、分布式缓存空间或持久化存储空间中获取所述目标问卷的问卷数据。
98.可选的,所述获取模块501,具体用于:
99.根据所述目标问卷的版本号查询所述本地内存空间是否包括所述目标问卷的问卷数据。
100.若所述本地内存空间包括所述目标问卷的问卷数据,则根据所述目标问卷的版本号从所述本地内存空间中读取所述目标问卷的问卷数据。
101.若所述本地内存空间不包括所述目标问卷的问卷数据,则根据所述目标问卷的版本号从所述分布式缓存空间中读取所述目标问卷的问卷数据,并将所述目标问卷的问卷数据写入所述本地内存空间。
102.可选的,所述获取模块501,具体用于:
103.根据所述目标问卷的版本号查询第一存储节点的分布式缓存空间是否包括所述目标问卷的问卷数据。
104.若所述分布式缓存空间包括所述目标问卷的问卷数据,则接收所述第一存储节点发送的所述目标问卷的问卷数据,并将所述目标问卷的问卷数据写入所述本地内存空间。
105.若所述分布式缓存空间不包括所述目标问卷的问卷数据,则根据所述目标问卷的版本号从所述持久化存储空间读取所述目标问卷的问卷数据,并将所述目标问卷的问卷数据写入所述分布式缓存空间以及所述本地内存空间。
106.可选的,所述获取模块501,具体用于:
107.针对所述目标问卷设置分布式锁。
108.根据所述目标问卷的版本号查询第二存储节点的持久化存储空间是否包括所述目标问卷的问卷数据。
109.若所述持久化存储空间包括所述目标问卷的问卷数据,则接收所述第二存储节点发送的所述目标问卷的问卷数据,并释放所述分布式锁。
110.可选的,所述装置还包括处理模块503,其中:
111.所述处理模块503,用于若所述持久化存储空间不包括所述目标问卷的问卷数据,则释放所述分布式锁。
112.所述发送模块502,还用于向所述分布式缓存空间写入所述目标问卷的版本号对应的空数据。
113.可选的,所述获取模块501,还用于根据所述目标问卷的版本号查询所述第一存储节点的分布式缓存空间是否包括所述目标问卷的问卷数据。
114.所述处理模块503,还用于若所述分布式缓存空间包括所述目标问卷的问卷数据,则接收所述第一存储节点发送的所述目标问卷的问卷数据,释放所述分布式锁,并将所述目标问卷的问卷数据写入所述本地内存空间。
115.所述处理模块503,还用于若所述分布式缓存空间不包括所述目标问卷的问卷数据,则执行所述根据所述目标问卷的版本号查询第二存储节点的持久化存储空间是否包括所述目标问卷的问卷数据的步骤。
116.可选的,所述处理模块503,还用于:
117.接收所述客户端通过答案提交接口发送的所述目标问卷的答卷数据。
118.将所述目标问卷的答卷数据按照写入顺序依次写入第一存储节点的分布式缓存空间以及第三存储节点的第一消息中间件队列。
119.从所述第一消息中间件队列中读取所述目标问卷的答卷数据。
120.将所述目标问卷的答卷数据写入所述持久化存储空间。
121.可选的,所述处理模块503,具体用于:
122.对所述目标问卷的答卷数据进行解析。
123.若解析失败,则将所述目标问卷的答卷数据作为异常数据写入所述持久化存储空间中的错误表。
124.若写入所述错误表失败,则将所述目标问卷的答卷数据作为异常数据写入所述第三存储节点的第二消息中间件队列。
125.可选的,所述获取模块501,还用于从所述第二消息中间件队列中读取所述目标问卷的答卷数据。
126.所述处理模块503,还用于将所述目标问卷的答卷数据写入所述持久化存储空间中的错误表。
127.可选的,所述处理模块503,还用于:
128.接收通过问卷提交接口发送的针对目标问卷的发布请求,所述发布请求携带有问卷发布者的标识信息、所述目标问卷的问卷数据以及标识信息。
129.在根据所述问卷发布者的标识信息对所述问卷发布者的身份验证通过之后,从第一存储节点的分布式缓存空间中获取所述目标问卷更新后的版本号。
130.根据所述目标问卷更新后的版本号依次将所述目标问卷的问卷数据写入第二存储节点的持久化存储空间以及所述第一存储节点的分布式缓存空间。
131.需要说明的是,本发明实施例的数据处理装置的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
132.请参见图6,是本发明实施例的一种计算机设备的结构示意图,本发明实施例的所述计算机设备包括供电模块等结构,并包括处理器601、存储装置602以及网络接口603。所述处理器601、存储装置602以及网络接口603之间可以交互数据。
133.所述存储装置602可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,ram);存储装置602也可以包括非易失性存储器(non-volatile memory),例如快闪存储器(flash memory),固态硬盘(solid-state drive,ssd)等;所述存储装置602还可以包括上述种类的存储器的组合。
134.所述处理器601可以是中央处理器601(central processing unit,cpu)。在一个实施例中,所述处理器601还可以是图形处理器601(graphics processing unit,gpu)。所述处理器601也可以是由cpu和gpu的组合。在一个实施例中,所述存储装置602用于存储程序指令。所述处理器601可以调用所述程序指令,执行如下操作:
135.响应于客户端针对目标问卷的问卷获取请求,获取所述目标问卷的版本号。
136.根据所述目标问卷的版本号从多级存储空间获取所述目标问卷的问卷数据,所述多级存储空间包括本地内存空间、分布式缓存空间和持久化存储空间中的一种或多种。
137.向所述客户端发送所述目标问卷的问卷数据。
138.可选的,所述处理器601,具体用于:
139.获取所述问卷获取请求中携带的所述目标问卷的标识信息。
140.向第一存储节点发送版本获取请求,所述版本获取请求携带有所述目标问卷的标识信息。
141.接收所述第一存储节点发送的所述目标问卷的版本号,所述目标问卷的版本号是由所述第一存储节点根据所述目标问卷的标识信息从分布式缓存空间中获取的。
142.可选的,所述多级存储空间包括所述本地内存空间、所述分布式缓存空间和所述持久化存储空间,所述处理器601,具体用于:
143.根据所述目标问卷的版本号按照设定的查询顺序从多级存储空间包括的本地内存空间、分布式缓存空间或持久化存储空间中获取所述目标问卷的问卷数据。
144.可选的,所述处理器601,具体用于:
145.根据所述目标问卷的版本号查询所述本地内存空间是否包括所述目标问卷的问卷数据。
146.若所述本地内存空间包括所述目标问卷的问卷数据,则根据所述目标问卷的版本号从所述本地内存空间中读取所述目标问卷的问卷数据。
147.若所述本地内存空间不包括所述目标问卷的问卷数据,则根据所述目标问卷的版本号从所述分布式缓存空间中读取所述目标问卷的问卷数据,并将所述目标问卷的问卷数据写入所述本地内存空间。
148.可选的,所述处理器601,具体用于:
149.根据所述目标问卷的版本号查询第一存储节点的分布式缓存空间是否包括所述目标问卷的问卷数据。
150.若所述分布式缓存空间包括所述目标问卷的问卷数据,则接收所述第一存储节点发送的所述目标问卷的问卷数据,并将所述目标问卷的问卷数据写入所述本地内存空间。
151.若所述分布式缓存空间不包括所述目标问卷的问卷数据,则根据所述目标问卷的版本号从所述持久化存储空间读取所述目标问卷的问卷数据,并将所述目标问卷的问卷数据写入所述分布式缓存空间以及所述本地内存空间。
152.可选的,所述处理器601,具体用于:
153.针对所述目标问卷设置分布式锁。
154.根据所述目标问卷的版本号查询第二存储节点的持久化存储空间是否包括所述目标问卷的问卷数据。
155.若所述持久化存储空间包括所述目标问卷的问卷数据,则接收所述第二存储节点发送的所述目标问卷的问卷数据,并释放所述分布式锁。
156.可选的,所述处理器601,还用于:
157.若所述持久化存储空间不包括所述目标问卷的问卷数据,则释放所述分布式锁。
158.向所述分布式缓存空间写入所述目标问卷的版本号对应的空数据。
159.可选的,所述处理器601,还用于:
160.根据所述目标问卷的版本号查询所述第一存储节点的分布式缓存空间是否包括所述目标问卷的问卷数据。
161.若所述分布式缓存空间包括所述目标问卷的问卷数据,则接收所述第一存储节点发送的所述目标问卷的问卷数据,释放所述分布式锁,并将所述目标问卷的问卷数据写入所述本地内存空间。
162.若所述分布式缓存空间不包括所述目标问卷的问卷数据,则执行所述根据所述目标问卷的版本号查询第二存储节点的持久化存储空间是否包括所述目标问卷的问卷数据的步骤。
163.可选的,所述处理器601,还用于:
164.接收所述客户端通过答案提交接口发送的所述目标问卷的答卷数据。
165.将所述目标问卷的答卷数据按照写入顺序依次写入第一存储节点的分布式缓存空间以及第三存储节点的第一消息中间件队列。
166.从所述第一消息中间件队列中读取所述目标问卷的答卷数据。
167.将所述目标问卷的答卷数据写入所述持久化存储空间。
168.可选的,所述处理器601,具体用于:
169.对所述目标问卷的答卷数据进行解析。
170.若解析失败,则将所述目标问卷的答卷数据作为异常数据写入所述持久化存储空间中的错误表。
171.若写入所述错误表失败,则将所述目标问卷的答卷数据作为异常数据写入所述第三存储节点的第二消息中间件队列。
172.可选的,所述处理器601,还用于:
173.从所述第二消息中间件队列中读取所述目标问卷的答卷数据。
174.将所述目标问卷的答卷数据写入所述持久化存储空间中的错误表。
175.可选的,所述处理器601,还用于:
176.接收通过问卷提交接口发送的针对目标问卷的发布请求,所述发布请求携带有问卷发布者的标识信息、所述目标问卷的问卷数据以及标识信息。
177.在根据所述问卷发布者的标识信息对所述问卷发布者的身份验证通过之后,从第一存储节点的分布式缓存空间中获取所述目标问卷更新后的版本号。
178.根据所述目标问卷更新后的版本号依次将所述目标问卷的问卷数据写入第二存储节点的持久化存储空间以及所述第一存储节点的分布式缓存空间。
179.具体实现中,本发明实施例中所描述的处理器601、存储装置602以及网络接口603可执行本发明实施例图2或图3提供的一种数据处理方法的相关实施例中所描述的实现方式,也可执行本发明实施例图5提供的一种数据处理装置的相关实施例中所描述的实现方式,在此不再赘述。
180.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述的程序包括一条或一条以上指令,可存储于一计算机存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,上述的存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)或随机存储记忆体(random access memory,ram)等。
181.本技术实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方法的实施例中所执行的步骤。
182.以上所揭露的仅为本技术部分实施例而已,当然不能以此来限定本技术之权利范围,因此依本技术权利要求所作的等同变化,仍属本技术所涵盖的范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献