数据存储系统及方法

文档序号:7998715阅读:194来源:国知局
数据存储系统及方法
【专利摘要】一种数据存储系统,包括应用服务器、队列管理系统以及存储服务器,其中:所述应用服务器用于获取访问请求,根据所述访问请求生成业务数据,所述业务数据包括异步业务数据;所述应用服务器还用于通过UDP连接将所述异步业务数据发送给所述队列管理系统;所述队列管理系统用于将接收到的异步业务数据添加到缓存队列中,并提取所述缓存队列中的异步业务数据,将其发送给所述存储服务器;所述存储服务器用于存储接收到的异步业务数据。此外,还提供了一种数据存储方法。上述数据存储系统及方法能够提高业务处理的实时性。
【专利说明】数据存储系统及方法

【技术领域】
[0001] 本发明涉及互联网【技术领域】,特别是涉及一种数据存储系统及方法。

【背景技术】
[0002] 传统技术中的互联网应用通常具有模型层、视图层以及控制层三层结构。模型层 通常为数据库或数据库缓存,视图层即展示页面,控制层即业务流程逻辑。当用户在互联网 应用的输入操作为写操作时,则由控制层获取用户输入操作对应的访问请求,并生成对应 的业务数据,然后将业务数据写入模型层的数据库中。
[0003] 然而,传统技术中,控制层生成业务数据并写入模型层的数据库的操作均为同步 操作,即通过TCP连接将生成的业务数据存储到模型层数据库中。而传统的数据库由于并 发量有限,使得上述同步操作在访问量较大时具有极低的执行效率,导致部分对应核心业 务的访问请求得不到尽快处理并使用户无法及时得到响应的反馈信息,从而降低了业务处 理的实时性。


【发明内容】

[0004] 基于此,有必要提供一种能提高业务处理的实时性的数据存储系统。
[0005] -种数据存储系统,包括应用服务器、队列管理系统以及存储服务器,其中:
[0006] 所述应用服务器用于获取访问请求,根据所述访问请求生成业务数据,所述业务 数据包括异步业务数据;
[0007] 所述应用服务器还用于通过UDP连接将所述异步业务数据发送给所述队列管理 系统;
[0008] 所述队列管理系统用于将接收到的异步业务数据添加到缓存队列中,并提取所述 缓存队列中的异步业务数据,将其发送给所述存储服务器;
[0009] 所述存储服务器用于存储接收到的异步业务数据。
[0010] 在其中一个实施例中,所述队列管理系统还包括入队服务器、队列存储器;
[0011] 所述应用服务器还用于将所述异步业务数据通过UDP连接发送至所述入队服务 器;
[0012] 所述入队服务器用于将接收到的异步业务数据添加到所述队列存储器中。
[0013] 在其中一个实施例中,所述队列管理系统还包括出队服务器,所述出队服务器用 于由所述队列存储器中提取异步业务数据,并将提取到的异步业务数据发送至所述存储服 务器。
[0014] 在其中一个实施例中,所述存储服务器还用于获取存储所述异步业务数据的存储 状态,将所述存储状态返回给所述出队服务器;
[0015] 所述出队服务器还用于记录所述异步业务数据的存储状态。
[0016] 在其中一个实施例中,所述业务数据还包括同步业务数据;
[0017] 所述应用服务器还用于通过TCP连接将所述同步业务数据发送给所述存储服务 器;
[0018] 所述存储服务器还用于存储接收到的同步业务数据。
[0019] 此外,还有必要提供一种能提高业务处理的实时性的数据存储方法。
[0020] -种数据存储方法,该方法基于前述的数据存储系统,该方法包括:
[0021] 所述应用服务器获取访问请求,根据所述访问请求生成业务数据,所述业务数据 包括异步业务数据;
[0022] 所述应用服务器通过UDP连接将所述异步业务数据发送给所述队列管理系统;
[0023] 所述队列管理系统将接收到的异步业务数据添加到缓存队列中,并提取所述缓存 队列中的异步业务数据,将其发送给所述存储服务器;
[0024] 所述存储服务器存储接收到的异步业务数据。
[0025] 在其中一个实施例中,所述队列管理系统还包括入队服务器、队列存储器;
[0026] 所述应用服务器通过UDP连接将所述异步业务数据发送给所述队列管理系统的 步骤包括:
[0027] 所述应用服务器将所述异步业务数据通过UDP连接发送至所述入队服务器;
[0028] 所述入队服务器将接收到的异步业务数据添加到所述队列存储器中。
[0029] 在其中一个实施例中,所述队列管理系统还包括出队服务器;
[0030] 所述队列管理系统提取所述缓存队列中的异步业务数据,将其发送给所述存储服 务器的步骤为:
[0031] 所述出队服务器由所述队列存储器中提取异步业务数据,并将将所述提取得到的 异步业务数据发送至所述存储服务器。
[0032] 在其中一个实施例中,所述存储服务器存储接收到的异步业务数据的步骤之后还 包括:
[0033] 所述存储服务器获取存储所述异步业务数据的存储状态,并将所述存储状态返回 所述出队服务器;
[0034] 所述出队服务器记录所述异步业务数据的存储状态。
[0035] 在其中一个实施例中,所述业务数据还包括同步业务数据;
[0036] 所述应用服务器根据所述访问请求生成业务数据的步骤之后还包括:
[0037] 所述应用服务器通过TCP连接将所述同步业务数据发送给所述存储服务器;
[0038] 所述存储服务器存储接收到的同步业务数据。
[0039] 上述数据存储系统和方法,通过UDP的方式将异步业务数据发送给队列管理系 统,队列管理系统将其添加到缓存队列中,然后按顺序(缓存队列为先进先出的顺序)由缓 存队列中提取出来并存入存储服务器,和传统技术中通过TCP直接与数据库连接的方式相 t匕,为一种异步的方式,应用服务器只需处理完同步业务数据即可返回与访问请求对应的 响应信息,而不用被异步业务数据的存储过程所阻塞,使得访问请求的处理速度得到加快, 从而提高了业务处理的实时性。

【专利附图】

【附图说明】
[0040] 图1为一个实施例中数据存储系统的结构示意图;
[0041] 图2为另一个实施例中数据存储系统的结构示意图;
[0042] 图3为一个实施例中数据存储方法的流程图。

【具体实施方式】
[0043] 在一个实施例中,如图1所示,一种数据存储系统10,包括应用服务器100、队列管 理系统200以及存储服务器300,其中:
[0044] 应用服务器100用于获取访问请求,根据访问请求生成业务数据,业务数据包括 异步业务数据。
[0045] 应用服务器100还用于通过UDP连接将异步业务数据发送给队列管理系统200。
[0046] 队列管理系统200用于将接收到的异步业务数据添加到缓存队列中,并提取缓存 队列中的异步业务数据,将其发送给存储服务器300。
[0047] 存储服务器300用于存储接收到的异步业务数据。
[0048] 应用服务器100可以是web服务器、游戏服务器等。用户可通过向应用服务器100 发送访问请求来进行写操作。例如,若用户通过网络游戏客户端进行了一场多人在线游戏, 则在游戏过程中,用户可通过网络游戏客户端输入游戏指令,网络游戏客户端将该游戏指 令封装为访问请求并发送给对应的应用服务器100,从而实现与其他玩家的互动。
[0049] 业务数据为应用服务器100根据接收到的访问请求生成的需要存储到模型层的 数据。业务数据可包括同步业务数据和异步业务数据。
[0050] 同步业务数据通常为核心数据,需要同步存储到模型层中,并等待模型层返回的 存储状态,即存储成功状态或存储过程异常状态。
[0051] 异步业务数据通常为非核心数据,例如应用服务器100根据访问请求生成的日志 信息、统计信息等。对异步业务数据的存储并不严格要求同步的方式,存储异步业务数据的 存储状态不需要实时地返回给访问请求对应的客户端。
[0052] 在一个实施例中,应用服务器100可用于通过TCP连接将同步业务数据发送给存 储服务器300。
[0053] 存储服务器300还用于存储接收到的同步业务数据。
[0054] 如上例中,用户可通过网络游戏客户端输入的游戏指令来控制网络游戏中人物角 色的属性变化,应用服务器1〇〇接收到相应的访问请求后,由于需要将根据访问请求生成 的人物角色的属性变化值的存储状态及时反馈给网络游戏客户端,因此,其为同步业务数 据,可采用TCP连接的方式将其同步存储到存储服务器300中。应用服务器100还用于接 收存储服务器300返回的同步业务数据的存储状态(存储成果获存储失败),生成相应的响 应信息并将其返回。
[0055] 需要说明的是,应用服务器100生成的业务数据可既包含同步业务数据也包含异 步业务数据。在本实施例中,应用服务器1〇〇接收存储服务器300返回的同步业务数据的 存储状态,生成相应的响应信息并将其返回的操作与通过UDP连接将数据包发送给队列管 理系统200的操作为异步操作,也就是说,应用服务器100通过UDP连接将数据包发送给队 列管理系统200不会影响其生成与同步业务数据的存储状态对应的响应信息的过程。
[0056] 队列管理系统200中设置有缓存队列。缓存队列具有先进先出的数据结构特点。
[0057] 在本实施例中,队列管理系统200可用于采用多线程的方式将接收到的异步业务 数据添加到缓存队列的队首,并从缓存队列的队尾提取出异步业务数据,发送给存储服务 器 300。
[0058] 也就是说,队列管理系统200中可运行有添加线程和取出线程,添加线程用于将 通过接收到的异步业务数据添加到队首;取出线程用于从缓存队列的队尾提取出异步业务 数据。且添加线程和取出线程可异步运行。
[0059] 存储服务器300可以基于数据库、文件系统或其他存储设备。存储服务器300接 收到异步业务数据之后可将其持久化存储。
[0060] 在一个实施例中,如图2所示,队列管理系统200还包括入队服务器220、队列存储 器240和出队服务器260。
[0061] 在本实施例中,应用服务器100还用于将异步业务数据通过UDP连接发送至入队 服务器220。
[0062] 入队服务器220还用于将接收到的异步业务数据添加到队列存储器240中。
[0063] 优选的,入队服务器220用于通过TCP连接将接收到的异步业务数据添加到队列 存储器240中。
[0064] 在本实施例中,应用服务器100可用于在将异步业务数据发送给入队服务器220 之前,以预设的数据格式封装异步业务数据。优选的,应用服务器100可用于通过预设的数 据格式为异步业务数据设置生成时或发送时的时间戳。入队服务器220在通过UDP连接接 收到封装后的异步业务数据之后先将其缓存然后将缓存中的异步业务数据按照其对应的 时间戳排序,并按顺序将其通过TCP连接发送至队列存储器240。
[0065] 在本实施例中,入队服务器220可与多个应用服务器100连接。由于UDP传输方 式会造成数据包的顺序混乱,因此,为异步业务数据设置时间戳,并以TCP的方式传输给队 列存储器240可保证应用服务器100发送的异步业务数据的准确性。
[0066] 优选的,队列存储器240可以是基于Redis存储系统的终端设备。Redis是一 个键-值(key-value)存储系统。它支持的数据类型相对更多,包括string(字符串)、 list (链表)、set (集合)和zset (有序集合)。这些数据类型都支持push/pop、add/remove 及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,Redis支 持各种不同方式的排序。为了保证效率,数据都是缓存在内存中。采用Redis存储系统可 提1?缓存队列的执行效率,提1?处理速度。
[0067] 在本实施例中,出队服务器260还用于由队列存储器240中提取异步业务数据,并 将提取到的异步业务数据发送至存储服务器300
[0068] 优选的,出队服务器260可用于向队列存储器240发起数据提取请求,队列存储器 240还用于根据数据提取请求提取异步业务数据,并将其发送至对应的出队服务器260。 [0069] 出队服务器260可用于接收队列存储器240由缓存队列的队尾提取出的异步业务 数据。在一个实施例中,出队服务器260可以有多个。如前所述,异步业务数据可以被封装 成预设的数据格式,优选的,数据格式中可包含异步业务数据对应的存储位置、存储格式和 缓存位置等信息。出队服务器260可以根据该数据格式中定义的存储位置、存储格式和缓 存位置选择相应的存储服务器300进行存储。
[0070] 在一个实施例中,存储服务器300还可用于获取存储异步业务数据的存储状态, 并将存储状态发送给出队服务器260。
[0071] 出队服务器260还可用于记录异步业务数据的存储状态。
[0072] 在一个实施例中,数据存储系统10还可包括缓存服务器(图中未标示),应用服务 器100可用于将生成的异步业务数据存储到缓存服务器中并得到相应的数据缓存标识。可 通过数据缓存标识在缓存服务器中查询取出其对应的异步业务数据。
[0073] 在本实施例中,应用服务器100和入队服务器220发送的、队列存储器240中存储 的以及出队服务器260提取的异步业务数据可以是实际存储在缓存服务器中的异步业务 数据对应的数据缓存标识。出队服务器260接收到该数据缓存标识之后,可根据该数据缓 存标识在缓存服务器中查询得到相应的异步业务数据。
[0074] 例如,应用服务器100生成异步业务数据A (可能较大,为kb级的数据)后,可将 其存储到缓存服务器中,并得到返回的数据缓存标识aOOOl。应用服务器100可用于将其封 装成预设的数据格式:[a0001,19:00:00, log, 192. 168. L 120],其中,19:00:00为生成异 步业务数据的时间戳,log为异步业务数据的存储类型,192. 168. 1. 120为指定的数据库的 IP地址。然后应用服务器100将该封装后的异步业务数据发送至入队服务器220,入队服 务器220根据该时间戳将其排序后添加到队列存储器240中。出队服务器260向队列存储 器240发起取出请求,队列存储器240将该异步业务数据取出,并发送至出队服务器260,出 队服务器260则根据IP地址查找到相应的存储服务器300,并根据类型log连接存储服务 器300上的log数据库,然后根据数据缓存标识a0001由缓存服务器中取出其对应的实际 的异步业务数据,并将其存储到前述的log数据库中。
[0075] 在一个实施例中,出队服务器260还用于向队列存储器240发起缓存队列长度查 询请求,并根据队列存储器240返回的缓存队列的长度新建与队列存储器240的连接。在 本实施例中,出队服务器260可用于定期向队列存储器240发起缓存队列长度查询请求。
[0076] 例如,出队服务器260可每隔5分钟向队列存储器240发起缓存队列长度查询请 求获取缓存队列的长度,若该长度大于阈值,则新建与队列存储器240的连接,用于加快从 缓存队列中提取异常业务数据。在另一个实施例中,还可通过添加出队服务器260的方式 加快从缓存队列中提取异常业务数据。
[0077] 优选的,若缓存队列的长度大于阈值,还可发出报警信息。例如,可通过手机短信 等方式通知服务器维护人员。服务器维护人员接到通知之后即可立即为出队服务器260添 加连接或添加多个额外的出队服务器用以负载。
[0078] 在一个实施例中,如图3所示,一种数据存储方法,基于前述数据存储系统,该数 据存储系统包括应用服务器、队列管理系统以及存储服务器,该方法包括:
[0079] 步骤S102,应用服务器获取访问请求,根据访问请求生成业务数据,业务数据包括 异步业务数据。
[0080] 步骤S104,应用服务器通过UDP连接将异步业务数据发送给队列管理系统。
[0081] 步骤S106,队列管理系统将接收到的异步业务数据添加到缓存队列中,并提取缓 存队列中的异步业务数据,将其发送给存储服务器。
[0082] 步骤S108,存储服务器存储接收到的异步业务数据。
[0083] 应用服务器可以是web服务器、游戏服务器等。用户可通过向应用服务器发送访 问请求来进行写操作。例如,若用户通过网络游戏客户端进行了一场多人在线游戏,则在游 戏过程中,用户可通过网络游戏客户端输入游戏指令,网络游戏客户端将该游戏指令封装 为访问请求并发送给对应的应用服务器,从而实现与其他玩家的互动。
[0084] 业务数据为应用服务器根据接收到的访问请求生成的需要存储到模型层的数据。 业务数据可包括同步业务数据和异步业务数据。
[0085] 同步业务数据通常为核心数据,需要同步存储到模型层中,并等待模型层返回的 存储状态,即存储成功状态或存储过程异常状态。
[0086] 异步业务数据通常为非核心数据,例如应用服务器根据访问请求生成的日志信 息、统计信息等。对异步业务数据的存储并不严格要求同步的方式,存储异步业务数据的存 储状态不需要实时地返回给访问请求对应的客户端。
[0087] 在一个实施例中,应用服务器根据访问请求生成业务数据的步骤之后还可包括:
[0088] 应用服务器通过TCP连接将同步业务数据发送给存储服务器;存储服务器存储接 收到的同步业务数据。
[0089] 如上例中,用户可通过网络游戏客户端输入的游戏指令来控制网络游戏中人物角 色的属性变化,应用服务器接收到相应的访问请求后,由于需要将根据访问请求生成的人 物角色的属性变化值的存储状态及时反馈给网络游戏客户端,因此,其为同步业务数据,可 采用TCP连接的方式将其同步存储到存储服务器中。存储服务器存储接收到的同步业务数 据的步骤之后,应用服务器还可接收存储服务器返回的同步业务数据的存储状态(存储成 果获存储失败),生成相应的响应信息并将其返回。
[0090] 需要说明的是,应用服务器生成的业务数据可既包含同步业务数据也包含异步业 务数据。在本实施例中,应用服务器接收存储服务器返回的同步业务数据的存储状态,生成 相应的响应信息并将其返回的操作与通过UDP连接将数据包发送给队列管理系统的操作 为异步操作,也就是说,应用服务器通过UDP连接将数据包发送给队列管理系统不会影响 其生成与同步业务数据的存储状态对应的响应信息的过程。
[0091] 队列管理系统中设置有缓存队列。缓存队列具有先进先出的数据结构特点。
[0092] 在本实施例中,队列管理系统可采用多线程的方式将接收到的异步业务数据添加 到缓存队列的队首,并从缓存队列的队尾提取出异步业务数据,发送给存储服务器。
[0093] 也就是说,队列管理系统中可运行有添加线程和取出线程,添加线程用于将通过 接收到的异步业务数据添加到队首;取出线程用于从缓存队列的队尾提取出异步业务数 据。且添加线程和取出线程可异步运行。
[0094] 存储服务器可以基于数据库、文件系统或其他存储设备。存储服务器接收到异步 业务数据之后可将其持久化存储。
[0095] 在一个实施例中,队列管理系统还包括入队服务器、队列存储器和出队服务器。
[0096] 在本实施例中,应用服务器通过UDP连接将异步业务数据发送给队列管理系统的 步骤可包括:
[0097] 应用服务器将异步业务数据通过UDP连接发送至入队服务器;入队服务器还将接 收到的异步业务数据添加到队列存储器中。
[0098] 优选的,入队服务器通过TCP连接将接收到的异步业务数据添加到队列存储器 中。
[0099] 在本实施例中,应用服务器可在将异步业务数据发送给入队服务器之前,以预设 的数据格式封装异步业务数据。优选的,应用服务器可通过预设的数据格式为异步业务数 据设置生成时或发送时的时间戳。入队服务器在通过UDP连接接收到封装后的异步业务数 据之后先将其缓存然后将缓存中的异步业务数据按照其对应的时间戳排序,并按顺序将其 通过TCP连接发送至队列存储器。
[0100] 在本实施例中,入队服务器可与多个应用服务器连接。由于UDP传输方式会造成 数据包的顺序混乱,因此,为异步业务数据设置时间戳,并以TCP的方式传输给队列存储器 可保证应用服务器发送的异步业务数据的准确性。
[0101] 优选的,队列存储器可以是基于Redis存储系统的终端设备。Redis是一个键-值 (key-value )存储系统。它支持的数据类型相对更多,包括string (字符串)、1 ist (链表)、 set (集合)和zset (有序集合)。这些数据类型都支持push/pop、add/remove及取交集并 集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,Redis支持各种不同 方式的排序。为了保证效率,数据都是缓存在内存中。采用Redis存储系统可提高缓存队 列的执行效率,提高处理速度。
[0102] 在本实施例中,队列管理系统提取缓存队列中的异步业务数据,将其发送给存储 服务器的步骤可具体为:
[0103] 出队服务器由队列存储器中提取异步业务数据,并将提取得到的异步业务数据发 送至存储服务器。
[0104] 优选的,出队服务器可向队列存储器发起数据提取请求,队列存储器根据数据提 取请求提取异步业务数据,并将其发送至对应的出队服务器。
[0105] 出队服务器可接收队列存储器中由缓存队列的队尾提取出的异步业务数据。在一 个实施例中,出队服务器可以有多个。如前所述,异步业务数据可以被封装成预设的数据 格式,优选的,数据格式中可包含异步业务数据对应的存储位置、存储格式和缓存位置等信 息。出队服务器可以根据该数据格式中定义的存储位置、存储格式和缓存位置选择相应的 存储服务器进行存储。
[0106] 在一个实施例中,存储服务器存储接收到的异步业务数据的步骤之后还可包括:
[0107] 存储服务器获取存储异步业务数据的存储状态,并将所述存储状态返回给出队服 务器;出队服务器记录异步业务数据的存储状态。
[0108] 在一个实施例中,数据存储系统还可包括缓存服务器。应用服务器可将生成的异 步业务数据存储到缓存服务器中并得到相应的数据缓存标识。可通过数据缓存标识在缓存 服务器中查询取出其对应的异步业务数据。
[0109] 在本实施例中,应用服务器、入队服务器发送的、队列存储器中存储的以及出队服 务器提取的异步业务数据可以是实际存储在缓存服务器中的异步业务数据对应的数据缓 存标识。出队服务器接收到该数据缓存标识之后,可根据该数据缓存标识在缓存服务器中 查询得到相应的异步业务数据。
[0110] 例如,应用服务器生成异步业务数据A后,可将其存储到缓存服务器中,并得到返 回的数据缓存标识aOOOl。应用服务器可将其封装成预设的数据格式:[aOOOl,19:00:00, log,192. 168. 1. 120],其中,19:00:00为生成异步业务数据的时间戳,log为异步业务数据 的存储类型,192. 168. 1. 120为指定的数据库的IP地址。然后应用服务器将该封装后的异 步业务数据发送至入队服务器,入队服务器根据该时间戳将其排序后发送至队列存储器。 出队服务器向队列存储器发起取出请求,队列存储器将该异步业务数据取出,并发送至出 队服务器,出队服务器则根据IP地址查找到相应的存储服务器,并根据类型log连接存储 服务器上的log数据库,然后根据数据缓存标识aOOOl由缓存服务器中取出其对应的实际 的异步业务数据,并将其存储到前述的log数据库中。
[0111] 在一个实施例中,出队服务器还向队列存储器发起缓存队列长度查询请求,并根 据队列存储器返回的缓存队列的长度新建与队列存储器的连接。在本实施例中,出队服务 器可定期向队列存储器发起缓存队列长度查询请求。
[0112] 例如,出队服务器可每隔5分钟向队列存储器发起缓存队列长度查询请求获取缓 存队列的长度,若该长度大于阈值,则新建与队列存储器的连接,加快从缓存队列中提取异 常业务数据。在另一个实施例中,还可通过添加出队服务器的方式加快从缓存队列中提取 异常业务数据。
[0113] 优选的,若缓存队列的长度大于阈值,还可发出报警信息。例如,可通过手机短信 等方式通知服务器维护人员。服务器维护人员接到通知之后即可立即为出队服务器添加连 接或添加多个额外的出队服务器用以负载。
[0114] 上述数据存储系统和方法,通过UDP的方式将异步业务数据发送给队列管理系 统,队列管理系统将其添加到缓存队列中,然后按顺序(缓存队列为先进先出的顺序)由缓 存队列中提取出来并存入存储服务器,和传统技术中通过TCP直接与数据库连接的方式相 t匕,为一种异步的方式,应用服务器只需处理完同步业务数据即可返回与访问请求对应的 响应信息,而不用被异步业务数据的存储过程所阻塞,使得访问请求的处理速度得到加快, 从而提高了业务处理的实时性。
[0115] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以 通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质 中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁 碟、光盘、只读存储记忆体(Read-Only Memory, ROM)或随机存储记忆体(Random Access Memory,RAM)等。
[0116] 以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并 不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员 来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保 护范围。因此,本发明专利的保护范围应以所附权利要求为准。
【权利要求】
1. 一种数据存储系统,其特征在于,包括应用服务器、队列管理系统以及存储服务器, 其中: 所述应用服务器用于获取访问请求,根据所述访问请求生成业务数据,所述业务数据 包括异步业务数据; 所述应用服务器还用于通过UDP连接将所述异步业务数据发送给所述队列管理系统; 所述队列管理系统用于将接收到的异步业务数据添加到缓存队列中,并提取所述缓存 队列中的异步业务数据,将其发送给所述存储服务器; 所述存储服务器用于存储接收到的异步业务数据。
2. 根据权利要求1所述的数据存储系统,其特征在于,所述队列管理系统还包括入队 服务器、队列存储器; 所述应用服务器还用于将所述异步业务数据通过UDP连接发送至所述入队服务器; 所述入队服务器用于将接收到的异步业务数据添加到所述队列存储器中。
3. 根据权利要求2所述的数据存储系统,其特征在于,所述队列管理系统还包括出队 服务器,所述出队服务器用于由所述队列存储器中提取异步业务数据,并将提取到的异步 业务数据发送至所述存储服务器。
4. 根据权利要求3所述的数据存储系统,其特征在于,所述存储服务器还用于获取存 储所述异步业务数据的存储状态,将所述存储状态返回给所述出队服务器; 所述出队服务器还用于记录所述异步业务数据的存储状态。
5. 根据权利要求1所述的数据存储系统,其特征在于,所述业务数据还包括同步业务 数据; 所述应用服务器还用于通过TCP连接将所述同步业务数据发送给所述存储服务器; 所述存储服务器还用于存储接收到的同步业务数据。
6. -种数据存储方法,该方法基于权利要求1所述的数据存储系统,其特征在于,该方 法包括: 所述应用服务器获取访问请求,根据所述访问请求生成业务数据,所述业务数据包括 异步业务数据; 所述应用服务器通过UDP连接将所述异步业务数据发送给所述队列管理系统; 所述队列管理系统将接收到的异步业务数据添加到缓存队列中,并提取所述缓存队列 中的异步业务数据,将其发送给所述存储服务器; 所述存储服务器存储接收到的异步业务数据。
7. 根据权利要求6所述的数据存储方法,其特征在于,所述队列管理系统还包括入队 服务器、队列存储器; 所述应用服务器通过UDP连接将所述异步业务数据发送给所述队列管理系统的步骤 包括: 所述应用服务器将所述异步业务数据通过UDP连接发送至所述入队服务器; 所述入队服务器将接收到的异步业务数据添加到所述队列存储器中。
8. 根据权利要求7所述的数据存储方法,其特征在于,所述队列管理系统还包括出队 服务器; 所述队列管理系统提取所述缓存队列中的异步业务数据,将其发送给所述存储服务器 的步骤为: 所述出队服务器由所述队列存储器中提取异步业务数据,并将所述提取得到的异步业 务数据发送至所述存储服务器。
9. 根据权利要求8所述的数据存储方法,其特征在于,所述存储服务器存储接收到的 异步业务数据的步骤之后还包括: 所述存储服务器获取存储所述异步业务数据的存储状态,并将所述存储状态返回所述 出队服务器; 所述出队服务器记录所述异步业务数据的存储状态。
10. 根据权利要求6所述的数据存储方法,其特征在于,所述业务数据还包括同步业务 数据; 所述应用服务器根据所述访问请求生成业务数据的步骤之后还包括: 所述应用服务器通过TCP连接将所述同步业务数据发送给所述存储服务器; 所述存储服务器存储接收到的同步业务数据。
【文档编号】H04L12/863GK104125252SQ201310153124
【公开日】2014年10月29日 申请日期:2013年4月27日 优先权日:2013年4月27日
【发明者】周坚, 盛辰光 申请人:博雅网络游戏开发(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1