游戏服务器的异步数据写入方法及装置

专利类型 发明公开 法律事件 公开; 实质审查;
专利有效性 实质审查 当前状态 实质审查
申请号 CN202311106488.1 申请日 2023-08-30
公开(公告)号 CN119524392A 公开(公告)日 2025-02-28
申请人 厦门奇力夸拉网络科技有限公司; 申请人类型 企业
发明人 赵中华; 张龙欣; 第一发明人 赵中华
权利人 厦门奇力夸拉网络科技有限公司 权利人类型 企业
当前权利人 厦门奇力夸拉网络科技有限公司 当前权利人类型 企业
省份 当前专利权人所在省份:福建省 城市 当前专利权人所在城市:福建省厦门市
具体地址 当前专利权人所在详细地址:福建省厦门市软件园二期望海路65号402-2A单元 邮编 当前专利权人邮编:361000
主IPC国际分类 A63F13/35 所有IPC国际分类 A63F13/35A63F13/77
专利引用数量 0 专利被引用数量 0
专利权利要求数量 10 专利文献类型 A
专利代理机构 厦门创象知识产权代理有限公司 专利代理人 叶秀红;
摘要 本 申请 提出了一种游戏 服务器 的异步数据写入方法及装置,其中该方法包括:游戏服务器接收客户端发送的游戏 请求 ,并对游戏请求进行处理,以得到处理结果;根据处理结果生成对应的数据写入任务,并将数据写入任务存储到 后台任务 队列中,以便后台任务队列执行所述数据写入任务;由此,能够将数据写入操作与请求处理操作分离,从而能够提高服务器的响应速度,以便更快地响应新的游戏请求。
权利要求

1.一种游戏服务器的异步数据写入方法,其特征在于,包括以下步骤:
接收客户端发送的游戏请求,并对所述游戏请求进行处理,以得到处理结果;
根据所述处理结果生成对应的数据写入任务,并将所述数据写入任务存储到后台任务队列中,以便所述后台任务队列执行所述数据写入任务。
2.如权利要求1所述的游戏服务器的异步数据写入方法,其特征在于,对所述游戏请求进行处理,包括:
根据所述游戏请求获取对应的处理任务;
验证所述处理任务的合法性,并在所述处理任务合法时,根据所述处理任务对所述游戏请求进行处理。
3.如权利要求2所述的游戏服务器的异步数据写入方法,其特征在于,所述数据写入任务包括待写入数据和对应的写入位置
4.如权利要求3所述的游戏服务器的异步数据写入方法,其特征在于,将所述数据写入任务存储到后台任务队列中,所述后台任务队列执行所述数据写入任务,包括:
在后台构建任务队列;
将所述数据写入任务作为独立任务存储到所述后台的任务队列中,以便所述后台任务队列通过多线程执行所述任务队列中的每一个数据写入任务。
5.如权利要求4所述的游戏服务器的异步数据写入方法,其特征在于,在所述后台任务队列执行所述数据写入任务失败时,采用事务回滚技术撤销之前的所有操作。
6.一种游戏服务器的异步数据写入装置,其特征在于,包括:
请求处理模,用于接收客户端发送的游戏请求,并对所述游戏请求进行处理,以得到处理结果;
异步数据写入模块,用于根据所述处理结果生成对应的数据写入任务,并将所述数据写入任务存储到后台任务队列中,以便所述后台任务队列执行所述数据写入任务。
7.如权利要求6所述的游戏服务器的异步数据写入装置,其特征在于,所述请求处理模块还用于,根据所述游戏请求获取对应的处理任务;验证所述处理任务的合法性,并在所述处理任务合法时,根据所述处理任务对所述游戏请求进行处理。
8.如权利要求7所述的游戏服务器的异步数据写入装置,其特征在于,所述数据写入任务包括待写入数据和对应的写入位置。
9.如权利要求8所述的游戏服务器的异步数据写入装置,其特征在于,所述异步数据写入模块还用于,在后台构建任务队列;将所述数据写入任务作为独立任务存储到所述后台的任务队列中,以便所述后台任务队列通过多线程执行所述任务队列中的每一个数据写入任务。
10.如权利要求9所述的游戏服务器的异步数据写入装置,其特征在于,在所述后台任务队列执行所述数据写入任务失败时,采用事务回滚技术撤销之前的所有操作。

说明书全文

游戏服务器的异步数据写入方法及装置

技术领域

[0001] 本申请涉及互联网技术领域,特别涉及一种游戏服务器的异步数据写入方法以及一种游戏服务器的异步数据写入装置。

背景技术

[0002] 相关技术中,现有的游戏服务器系统的数据写入通常是一个同步操作;也就是说,当服务器收到一个客户端的游戏请求时,它需要先处理这个请求,然后再写入数据,最后才能开始处理下一个请求;这种同步操作方式可以保证数据的一致性,但是会降低服务器的响应速度,特别是在高并发的情况下,可能会导致服务器响应延迟增大。发明内容
[0003] 本申请旨在至少在一定程度上解决上述技术中的技术问题之一。为此,本申请的一个目的在于提出一种游戏服务器的异步数据写入方法,能够将数据写入操作与请求处理操作分离,从而能够提高服务器的响应速度,以便更快地响应新的游戏请求。
[0004] 本申请的第二个目的在于提出一种游戏服务器的异步数据写入装置。
[0005] 为达到上述目的,本申请第一方面实施例提出了一种游戏服务器的异步数据写入方法,包括以下步骤:接收客户端发送的游戏请求,并对所述游戏请求进行处理,以得到处理结果;根据所述处理结果生成对应的数据写入任务,并将所述数据写入任务存储到后台任务队列中,以便所述后台任务队列执行所述数据写入任务。
[0006] 根据本申请实施例的游戏服务器的异步数据写入方法,首先,游戏服务器接收客户端发送的游戏请求,并对游戏请求进行处理,以得到处理结果;接着,根据处理结果生成对应的数据写入任务,并将数据写入任务存储到后台任务队列中,以便后台任务队列执行所述数据写入任务;由此,能够将数据写入操作与请求处理操作分离,从而能够提高服务器的响应速度,以便更快地响应新的游戏请求。
[0007] 另外,根据本申请上述实施例提出的游戏服务器的异步数据写入方法还可以具有如下附加的技术特征:
[0008] 可选地,对所述游戏请求进行处理,包括:根据所述游戏请求获取对应的处理任务;验证所述处理任务的合法性,并在所述处理任务合法时,根据所述处理任务对所述游戏请求进行处理。
[0009] 可选地,所述数据写入任务包括待写入数据和对应的写入位置
[0010] 可选地,将所述数据写入任务存储到后台任务队列中,所述后台任务队列执行所述数据写入任务,包括:在后台构建任务队列;将所述数据写入任务作为独立任务存储到所述后台的任务队列中,以便所述后台任务队列通过多线程执行所述任务队列中的每一个数据写入任务。
[0011] 可选地,在所述后台任务队列执行所述数据写入任务失败时,采用事务回滚技术撤销之前的所有操作。
[0012] 为达到上述目的,本申请第二方面实施例提出了一种游戏服务器的异步数据写入装置,包括:请求处理模,用于接收客户端发送的游戏请求,并对所述游戏请求进行处理,以得到处理结果;异步数据写入模块,用于根据所述处理结果生成对应的数据写入任务,并将所述数据写入任务存储到后台任务队列中,以便所述后台任务队列执行所述数据写入任务。
[0013] 根据本申请实施例的游戏服务器的异步数据写入装置,通过请求处理模块接收客户端发送的游戏请求,并对游戏请求进行处理,以得到处理结果;异步数据写入模块根据处理结果生成对应的数据写入任务,并将数据写入任务存储到后台任务队列中,以便后台任务队列执行所述数据写入任务;由此,能够将数据写入操作与请求处理操作分离,从而能够提高服务器的响应速度,以便更快地响应新的游戏请求。
[0014] 另外,根据本申请上述实施例提出的游戏服务器的异步数据写入装置还可以具有如下附加的技术特征:
[0015] 可选地,所述请求处理模块还用于,根据所述游戏请求获取对应的处理任务;验证所述处理任务的合法性,并在所述处理任务合法时,根据所述处理任务对所述游戏请求进行处理。
[0016] 可选地,所述数据写入任务包括待写入数据和对应的写入位置。
[0017] 可选地,所述异步数据写入模块还用于,在后台构建任务队列;将所述数据写入任务作为独立任务存储到所述后台的任务队列中,以便所述后台任务队列通过多线程执行所述任务队列中的每一个数据写入任务。
[0018] 可选地,在所述后台任务队列执行所述数据写入任务失败时,采用事务回滚技术撤销之前的所有操作。附图说明
[0019] 图1为根据本申请实施例的游戏服务器的异步数据写入方法的流程示意图;
[0020] 图2为根据本申请一个实施例的游戏服务器的异步数据写入装置的方框示意图。

具体实施方式

[0021] 下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
[0022] 为了更好的理解上述技术方案,下面将参照附图更详细地描述本申请的示例性实施例。虽然附图中显示了本申请的示例性实施例,然而应当理解,可以以各种形式实现本申请而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本申请,并且能够将本申请的范围完整的传达给本领域的技术人员。
[0023] 为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。
[0024] 图1为根据本申请实施例的游戏服务器的异步数据写入方法的流程示意图;如图1所示,本申请实施例的游戏服务器的异步数据写入方法包括以下步骤:
[0025] S101,接收客户端发送的游戏请求,并对游戏请求进行处理,以得到处理结果。
[0026] 也就是说,当游戏服务器接收到一个客户端发送的游戏请求时,游戏服务器对游戏请求进行处理,以得到处理结果。
[0027] 作为一个实施例,对游戏请求进行处理,包括:根据游戏请求获取对应的处理任务;验证处理任务的合法性,并在处理任务合法时,根据处理任务对所述游戏请求进行处理。
[0028] 需要说明的是,处理任务包括要执行的相关游戏逻辑。
[0029] 作为一个具体实施例,在一个在线战斗游戏中,客户端的游戏请求对应的处理任务可能是玩家的一个行动,例如移动或者攻击等,游戏服务器需要验证这个行动是否合法,并在判断合法后更新游戏状态。
[0030] S102,根据处理结果生成对应的数据写入任务,并将数据写入任务存储到后台任务队列中,以便后台任务队列执行所述数据写入任务。
[0031] 也就是说,游戏服务器在处理完客户端的游戏请求后,将相关的数据写入任务作为一个独立的任务放到后台预先构建的任务队列中,即言,这个任务列队用于存储待处理的数据写入任务。
[0032] 作为一个实施例,数据写入任务包括待写入数据和对应的写入位置。
[0033] 也就是说,任务队列中的每个数据写入任务包括待写入数据和对应的写入位置。
[0034] 作为一个实施例,将数据写入任务存储到后台任务队列中,后台任务队列执行数据写入任务,包括:在后台构建任务队列;将数据写入任务作为独立任务存储到后台的任务队列中,以便后台任务队列通过多线程执行任务队列中的每一个数据写入任务。
[0035] 也就是说,在后台有一个或多个专的线程负责处理这个任务队列中的数据写入任务。这些线程会按照一定的顺序,例如先入先出,从任务队列中取出任务并执行;由于这个过程是在后台进行的,所以不会影响到游戏服务器对新的游戏请求的处理。
[0036] 作为一个具体示例,假设在一个大型在线多人游戏中,玩家完成了一项任务,需要将任务完成状态写入数据库;在传统的服务器系统中,服务器需要先处理请求,然后写入数据,最后才能处理下一个请求;但在本申请的系统中,服务器处理完请求后,会立即将写入操作放到后台,然后立即开始处理下一个请求;这种方式可以大大提高服务器的响应速度。
[0037] 作为一个实施例,在后台任务队列执行数据写入任务失败时,采用事务回滚技术撤销之前的所有操作。
[0038] 需要说明的是,为了应对可能的错误,例如网络故障,磁盘故障等,设计了一种错误恢复机制;这个机制能够在发生错误时,将系统恢复到一个一致的状态,例如,如果数据写入失败,可以使用事务回滚技术,撤销之前的所有操作,从而保证数据的一致性。
[0039] 综上所述,根据本申请实施例的游戏服务器的异步数据写入方法,通过将数据写入操作移到后台,服务器能立即开始处理新的请求,而不需要等待数据写入完成;这在高并发环境下尤其重要,能有效提升服务器性能;并且通过错误恢复机制,能在出现错误时将系统恢复到一个一致的状态;这保证了在面对可能的网络故障,硬件故障等问题时,数据的一致性和完整性;即言,通过提高服务器响应速度和并发处理能,可以大大提升用户的游戏体验;玩家不再需要等待长时间的服务器响应,游戏的流畅度和实时性得到了大幅提升。
[0040] 图2为根据本申请实施例的游戏服务器的异步数据写入装置的方框示意图。如图2所示,该游戏服务器的异步数据写入装置包括:请求处理模块10和异步数据写入模块20;
[0041] 其中,请求处理模块,用于接收客户端发送的游戏请求,并对游戏请求进行处理,以得到处理结果;异步数据写入模块,用于根据处理结果生成对应的数据写入任务,并将数据写入任务存储到后台任务队列中,以便后台任务队列执行所述数据写入任务。
[0042] 作为一个实施例,请求处理模块10还用于,根据游戏请求获取对应的处理任务;验证处理任务的合法性,并在处理任务合法时,根据处理任务对所述游戏请求进行处理。
[0043] 作为一个实施例,数据写入任务包括待写入数据和对应的写入位置。
[0044] 作为一个实施例,异步数据写入模块20还用于,在后台构建任务队列;将数据写入任务作为独立任务存储到后台的任务队列中,以便后台任务队列通过多线程执行任务队列中的每一个数据写入任务。
[0045] 需要说明的是,前述对于游戏服务器的异步数据写入方法的实施例的解释说明同样适用于本实施例的游戏服务器的异步数据写入装置,此处不再赘述。
[0046] 综上所述,根据本申请实施例的游戏服务器的异步数据写入装置,通过请求处理模块接收客户端发送的游戏请求,并对游戏请求进行处理,以得到处理结果;异步数据写入模块根据处理结果生成对应的数据写入任务,并将数据写入任务存储到后台任务队列中,以便后台任务队列执行所述数据写入任务;由此,能够将数据写入操作与请求处理操作分离,从而能够提高服务器的响应速度,以便更快地响应新的游戏请求。
[0047] 本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD‑ROM、光学存储器等)上实施的计算机程序产品的形式。
[0048] 本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0049] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0050] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0051] 应当注意的是,在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的单词“一”或“一个”不排除存在多个这样的部件。本申请可以借助于包括有若干不同部件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
[0052] 尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
[0053] 显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
[0054] 在本申请的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
[0055] 在本申请中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。
[0056] 在本申请中,除非另有明确的规定和限定,第一特征在第二特征“上”或“下”可以是第一和第二特征直接接触,或第一和第二特征通过中间媒介间接接触。而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或仅仅表示第一特征平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或仅仅表示第一特征水平高度小于第二特征。
[0057] 在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不应理解为必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
[0058] 尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。
QQ群二维码
意见反馈