掌桥专利:专业的专利平台
掌桥专利
首页

基于跨服服务器架构的远程通讯方法、装置、设备及介质

文献发布时间:2024-04-18 19:58:30


基于跨服服务器架构的远程通讯方法、装置、设备及介质

技术领域

本申请属于计算机通讯技术领域,具体涉及一种基于跨服服务器架构的远程通讯方法、装置、设备及介质。

背景技术

早期的游戏服务器通常承载着大量玩家,而随着多人在线游戏的崛起,分散在不同服务器的玩家之间无法互动。为了改善玩家社交体验,游戏开发商开始采用单服务器模式,将玩家集中在一个虚拟世界中。

单服务器采用分布式系统架构,将服务器划分为多个区域或实例。每个实例负责处理一部分玩家,以减轻服务器负载和提高性能,能够处理玩家的请求、计算游戏逻辑并实时更新玩家的状态。并且可以确保所有玩家在同一个虚拟世界中看到相同的游戏状态。

但如今使用单服务器为玩家提供服务,随着玩家数量的增加,可能导致服务器负载过高,从而影响游戏的性能以及稳定性。同时,若玩家数量达到服务器上限,则新玩家则无法进入游戏,影响了玩家的体验感。同时,当服务器发生故障,所有玩家都会受到影响。因此,如何使玩家可以在不同的服务器之间进行游戏,在单个服务器出现故障时仍能保证玩家正常进行游戏,从而提升玩家的体验感是本领域亟待解决的问题。

发明内容

本申请实施例提供一种基于跨服服务器架构的远程通讯方法、装置、设备及介质,目的是解决现有技术中由于单服服务器负载有限导致的玩家数量达到上线后新玩家无法进入游戏,以及单服服务器出现故障时玩家无法正常游戏的问题。通过一种基于跨服服务器架构的远程通讯方法,将请求均匀地分发到不同的远程服务器上,可以充分利用各个服务器资源,避免单一服务器负载过重,提高系统吞吐量,实现跨平台的业务处理。

第一方面,本申请实施例提供了一种基于跨服服务器架构的远程通讯方法,所述方法包括:

接收客户端发出的业务处理请求;

在满足远程调用条件的情况下,调用远程服务器调用接口,并基于预先配置的跨服通讯信息通过接口代理选择跨服路由器,以确定目标远程服务器;

向所述目标远程服务器传输接口所需参数,用于供所述目标远程服务器基于所述接口所需参数对所述业务处理请求进行处理,并向所述远程服务器调用接口反馈处理结果。

进一步的,在向所述目标远程服务器传输接口所需参数,用于供所述目标远程服务器基于所述接口所需参数对所述业务处理请求进行处理,并向所述远程服务器调用接口反馈处理结果之前,所述方法还包括:

根据当前服务器的本地执行逻辑,确定本地执行线程,以及根据本地执行线程,确定目标远程服务器需要执行的指定线程;

向所述目标远程服务器传输接口所需参数,用于供所述目标远程服务器基于所述接口所需参数对所述业务处理请求进行处理,并向所述远程服务器调用接口反馈处理结果,包括:

向所述目标远程服务器传输接口所需参数,用于供所述目标远程服务器基于所述接口所需参数中包括的指定线程进行启动和业务处理请求的处理,并向所述远程服务器调用接口反馈处理结果。

进一步的,在通过所述远程服务器调用接口接收到反馈处理结果之前,所述方法还包括:

将所述本地执行线程置为拥塞状态。

进一步的,所述当前服务器和至少一个所述远程服务器还连接于中心服务器;

相应的,所述方法还包括:

基于预先设置的定制化监控数据,确定当前服务器和/或至少一个远程服务器的监控指标;

将所述监控指标上传至所述中心服务器,供所述中心服务器根据所述监控指标进行预警,并在所述监控指标超出正常范围时,生成与所述监控指标对应的分配策略,以对业务处理请求进行重新分配。

进一步的,在接收客户端发出的业务处理请求之后,所述方法还包括:

确定预先创建的限流队列的状态,若所述限流队列为空闲状态,则将所述业务处理请求放入所述限流队列中,以等待线程或线程池处理所述业务处理请求;

若所述限流队列为忙碌状态,则向客户端反馈重新提交的提示信息,或等待限流队列处于空闲状态时将所述业务处理请求放入所述限流队列中。

进一步的,在调用远程服务器调用接口之前,所述方法还包括:

根据预先设置的负载均衡策略以及可用服务器的服务器信息确定所调用的目标服务器地址;

根据所述目标服务器地址将接口调用请求发送至目标服务器。

进一步的,在调用远程服务器调用接口之前,所述方法还包括

获取通信需求,根据所述通信需求确定网络传输协议,并根据所述网络传输协议确定协议传输数据最大值。

第二方面,本申请实施例提供了一种基于跨服通讯的服务架构装置,所述装置包括:

业务处理请求接收模块,用于接收客户端发出的业务处理请求;

接口调用模块,用于在满足远程调用条件的情况下,调用远程服务器调用接口,并基于预先配置的跨服通讯信息通过接口代理选择跨服路由器,以确定目标远程服务器;

参数传输模块,用于向所述目标远程服务器传输接口所需参数,用于供所述目标远程服务器基于所述接口所需参数对所述业务处理请求进行处理,并向所述远程服务器调用接口反馈处理结果。

进一步的,所述装置还包括线程确定模块,所述线程确定模块用于:

根据当前服务器的本地执行逻辑,确定本地执行线程,以及根据本地执行线程,确定目标远程服务器需要执行的指定线程;

所述参数传输模块,用于:

向所述目标远程服务器传输接口所需参数,用于供所述目标远程服务器基于所述接口所需参数中包括的指定线程进行启动和业务处理请求的处理,并向所述远程服务器调用接口反馈处理结果。

进一步的,所述装置还包括状态设置模块,所述状态设置模块用于:

将所述本地执行线程置为拥塞状态。

进一步的,所述当前服务器和至少一个所述远程服务器还连接于中心服务器;

相应的,所述装置还包括分配策略确定模块,所述分配策略确定模块用于:

基于预先设置的定制化监控数据,确定当前服务器和/或至少一个远程服务器的监控指标;

将所述监控指标上传至所述中心服务器,供所述中心服务器根据所述监控指标进行预警,并在所述监控指标超出正常范围时,生成与所述监控指标对应的分配策略,以对业务处理请求进行重新分配。

进一步的,所述装置还包括限流队列处理模块,所述限流队列处理模块用于:

确定预先创建的限流队列的状态,若所述限流队列为空闲状态,则将所述业务处理请求放入所述限流队列中,以等待线程或线程池处理所述业务处理请求;

若所述限流队列为忙碌状态,则向客户端反馈重新提交的提示信息,或等待限流队列处于空闲状态时将所述业务处理请求放入所述限流队列中。

进一步的,所述装置还包括负载均衡模块,所述负载均衡模块用于:

根据预先设置的负载均衡策略以及可用服务器的服务器信息确定所调用的目标服务器地址;

根据所述目标服务器地址将接口调用请求发送至目标服务器。

进一步的,所述装置还包括通信需求获取模块,所述通信需求获取模块用于:

获取通信需求,根据所述通信需求确定网络传输协议,并根据所述网络传输协议确定协议传输数据最大值。

第三方面,本申请实施例提供了一种电子设备,该电子设备包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面所述的方法的步骤。

第四方面,本申请实施例提供了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如第一方面所述的方法的步骤。

第五方面,本申请实施例提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现如第一方面所述的方法。

在本申请实施例中,接收客户端发出的业务处理请求;在满足远程调用条件的情况下,调用远程服务器调用接口,并基于预先配置的跨服通讯信息通过接口代理选择跨服路由器,以确定目标远程服务器;向所述目标远程服务器传输接口所需参数,用于供所述目标远程服务器基于所述接口所需参数对所述业务处理请求进行处理,并向所述远程服务器调用接口反馈处理结果。通过上述基于跨服服务器架构的远程通讯方法,将请求均匀地分发到不同的远程服务器上,可以充分利用各个服务器资源,避免单一服务器负载过重,提高系统吞吐量,实现跨平台的业务处理。

附图说明

图1是本申请实施例一提供的基于跨服服务器架构的远程通讯方法的流程示意图;

图2是本申请实施例二提供的基于跨服服务器架构的远程通讯方法的流程示意图;

图3是本申请实施例三提供的基于跨服服务器架构的远程通讯方法的流程示意图;

图4是本申请实施例三提供的中心服务器与其他服务器的连接示意图;

图5是本申请实施例四提供的基于跨服服务器架构的远程通讯方法的流程示意图;

图6是本申请实施例五提供的基于跨服通讯的服务架构装置的结构示意图;

图7是本申请实施例六提供的电子设备的结构示意图。

具体实施方式

为了使本申请的目的、技术方案和优点更加清楚,下面结合附图对本申请具体实施例作进一步的详细描述。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员获得的所有其他实施例,都属于本申请保护的范围。

本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。

下面结合附图,通过具体的实施例及其应用场景对本申请实施例提供的基于跨服服务器架构的远程通讯方法、装置、设备及介质进行详细地说明。

实施例一

图1是本申请实施例一提供的基于跨服服务器架构的远程通讯方法的流程示意图。如图1所示,具体包括如下步骤:

S101,接收客户端发出的业务处理请求。

首先,本方案的使用场景可以是当前服务器接收客户端发出的业务处理请求后,在满足远程调用条件的情况下,当前服务器基于预先配置的跨服通讯信息选择适当的跨服路由器,并在跨服路由器确定目标远程服务器后,将业务处理请求传输到目标远程服务器的场景。

基于上述使用场景,可以理解的,本申请的执行主体可以是当前服务器,此处不做过多的限定。

本方案中,当前服务器可以是指玩家或客户端当前所连接的服务器,也称为本地服务器或原始服务器。在多服务器游戏中,当前服务器可以是玩家所在的实际游戏服务器,负责处理玩家的业务处理请求。当玩家发出业务处理请求时,请求首先发送到当前服务器,然后由当前服务器根据需要决定是否需要跨服通讯,并选择适当的跨服路由器和目标远程服务器。

远程服务器可以是指与当前服务器不同的其他服务器,也称为目标服务器。在跨服通讯系统中,远程服务器可以是接收业务处理请求的目标服务器,它位于其他服务器上。一旦当前服务器决定需要跨服通讯处理请求时,它会选择适当的跨服路由器来确定目标远程服务器,然后将请求传输到目标服务器上。

本实施例中,客户端可以是玩家或用户与游戏或应用程序进行交互的工具,具体的,可以是电脑、手机以及平板电脑等设备上运行的应用程序。

业务处理请求可以是指由客户端发出的,需要服务器进行处理的操作或任务。在多人在线游戏中,业务处理请求可以是玩家的移动指令、攻击指令以及道具购买请求等。

玩家可以通过游戏客户端发出业务处理请求,例如在游戏中点击移动按钮或购买道具。然后客户端会将业务处理请求通过无线通信技术发送到当前服务器,当前服务器接收到业务处理请求后,可以判断是否满足远程调用条件。

S102,在满足远程调用条件的情况下,调用远程服务器调用接口,并基于预先配置的跨服通讯信息通过接口代理选择跨服路由器,以确定目标远程服务器。

远程调用条件可以是指在当前服务器收到客户端的业务处理请求后,判断是否需要将该请求发送给其他远程服务器处理的条件。例如,如果业务处理请求涉及到当前服务器无法提供的资源或服务,需要将该请求发送给其他服务器进行处理,则视为满足远程调用条件;如果业务处理请求需要访问其他服务器上的数据或资源,需要将该请求发送给拥有这些数据或资源的目标服务器,则视为满足远程调用条件;如果业务处理请求需要和其他服务器进行通信,例如进行数据同步以及远程调用等,则视为满足远程调用条件。

远程服务器调用接口可以是指用于与其他远程服务器进行通信的接口。这个接口可以通过网络进行数据传输,使得当前服务器可以与其他服务器进行交互。

预先配置的跨服通讯信息可以是指在系统中预先设置的用于跨服务器通信的相关信息。具体的,可以包括其他服务器的地址、端口号以及协议类型等。其中,指定其他远程服务器的网络地址,可以在远程调用时能够准确地定位目标服务器。指定目标远程服务器的网络端口号,可以建立网络连接和数据传输。协议类型可以包括HTTP(HypertextTransfer Protocol,超文本传输协议)、TCP(Transmission Control Protocol,传输控制协议)以及UDP(User Datagram Protocol,用户数据报协议)等。其中,TCP网络开销低,能提供更大的吞吐量,但是底层实现较为复杂,解析工作也更大,而HTTP使用更为简单,也更易接入其他平台,但是HTTP协议是上层协议,传输所占字节数会更高。而UDP适用于那些对数据传输的可靠性要求不高,对实时性要求较高的场景。基于TCP协议,当前服务器可以与远程服务器建立Socket链接,通过数据序列化与反序列化进行传输,根据数据所携带接口id映射至指定执行接口;基于HTTP协议,当前服务器可以直接向远程服务器发送请求,请求方式有get、post、put以及delete,远程服务器根据不同请求方式作出相应的处理。其中,序列化是将对象转换成二进制流的过程,反序列化是将二进制转换为对象的过程。由于跨服通讯存在于不同的进程,不能通过内存来传输,需要把调用方传输参数转换成字节流,待远程服务器读取时再转换成对应的对象。并且本地跨服通讯定义了八大基本类型、集合以及自定义对象的编解码器,直接将字节数组转换为对象,提高了数据转换效率。

接口代理可以是一个中间层,用于封装和处理远程服务器的调用。负责将当前服务器的请求转发给其他远程服务器,并处理一些网络通信的细节。

跨服路由器可以是一个组件,用于根据预先配置的跨服通讯信息来选择目标远程服务器。负责将请求路由到合适的远程服务器上。

目标远程服务器可以是指根据跨服路由器选择的,将要处理当前请求的远程服务器。

当前服务器接收到客户端的业务处理请求可以查询预先存储的远程调用条件,并判断是否满足远程调用条件。如果满足,可以调用远程服务器调用接口,并基于预先配置的跨服通讯信息,通过接口代理选择合适的跨服路由器。然后跨服路由器可以根据通讯信息,选择目标远程服务器。

在上述各技术方案的基础上,可选的,在调用远程服务器调用接口之前,所述方法还包括:

根据预先设置的负载均衡策略以及可用服务器的服务器信息确定所调用的目标服务器地址;

根据所述目标服务器地址将接口调用请求发送至目标服务器。

本方案中,预先设置的负载均衡策略可以是指在系统运行之前,事先配置的用于选择目标服务器的算法或规则,用于根据服务器的负载情况、性能指标以及网络延迟等信息来选择一个合适的服务器作为目标服务器,以实现负载均衡和优化系统性能。

可用服务器的服务器信息可以是指当前系统中所有可用的服务器的相关信息,具体的,可以包括服务器的地址、状态以及负载情况等。

目标服务器地址可以是根据负载均衡策略选择的一个具体服务器的网络地址,用于将接口调用请求发送至该服务器上执行。

当前服务器可以获取所有可用服务器的相关信息,然后根据预先设置的负载均衡策略,当前服务器可以使用相应的算法或规则来选择一个目标服务器。根据选择的目标服务器,使用网络路由器定向寻址,根据目标服务器的id,找出对应的call id,得到目标服务地址。当获取到目标服务器地址后,当前服务器可以使用目标服务器地址将接口调用请求发送至目标服务器。其中,路由器可以为跨服通讯中服务器的地址指向,在远程接口方法上指定,Router支持定制化,可根据自身需求实现拓展路由器,并在跨服通讯中指定,通过路由可与任意服务器进行通讯。另外,还可以提供默认负载均衡集群路由,通过权重以及最小活跃数等算法,在集群中选中指定服务器路由。

本方案中,通过预先设置的负载均衡策略可以选择最合适的目标服务器,确保每台服务器的负载均衡,提高了系统稳定性,优化了系统性能。

在上述各技术方案的基础上,可选的,在调用远程服务器调用接口之前,所述方法还包括

获取通信需求,根据所述通信需求确定网络传输协议,并根据所述网络传输协议确定协议传输数据最大值。

本方案中,通信需求可以是指在进行远程调用之前,当前服务器需要确定与目标服务器之间通信的要求,具体的,可以包括通信方式、数据格式、传输速率以及安全性等。

网络传输协议可以是指在进行数据传输时所使用的规则和约定,用于确保数据能够在网络中正确传输和解析。

协议传输数据最大值可以是指在使用特定网络传输协议时,数据包的大小限制,即数据包中允许传输的最大数据量。

当前服务器可以根据远程调用的要求和特性,获取通信需求,再根据通信需求选择适合的网络传输协议,例如,如果要求传输速率高且数据安全性较重要,可以使用HTTPS协议;如果要求传输速率高且对数据安全性要求不高,可以选择使用HTTP协议。确定传输协议后,可以根据所选的网络传输协议,当前服务器确定数据包的大小限制,即协议传输数据最大值。

本方案中,通过根据通信需求确定合适的网络传输协议,并确定协议传输数据最大值,可以降低通信延迟,提高数据传输效率以及通信效率。通过限制单次传输的数据量,可以避免数据包过大从而导致传输错误,提高了系统的稳定性。

S103,向所述目标远程服务器传输接口所需参数,用于供所述目标远程服务器基于所述接口所需参数对所述业务处理请求进行处理,并向所述远程服务器调用接口反馈处理结果。

接口所需参数可以包括请求方法、请求参数、认证信息、请求标识以及辅助参数。其中,请求方法可以指定远程服务器需要调用的具体接口方法或操作;请求参数可以包含调用接口所需的输入数据,例如可以包括需要处理的业务数据、用户ID以及操作类型等;如果需要进行身份认证或授权,则需要传递认证信息,认证信息可以包括令牌、密钥或其他凭证信息;请求标识可以用于标识请求的唯一ID,用于追踪请求和处理结果。辅助参数可以包括时间戳以及版本号等。

处理结果可以是目标远程服务器对请求的响应结果,可以包括响应状态码、响应数据以及错误信息。其中,响应状态码可以是远程服务器处理请求的状态,例如成功、失败以及出现错误等;响应数据可以包含远程服务器处理后的业务数据或处理结果,可以是单个数据对象或是一组数据集合;错误信息可以是返回的相应的错误信息或错误码,以便客户端进行后续处理。

当前服务器收到业务处理请求后,可以根据预先配置的跨服通讯信息选择目标远程服务器。然后将业务处理请求转换为目标远程服务器可理解的格式,再使用网络传输协议将请求数据发送至目标远程服务器。目标远程服务器接收到请求后,首先需要解析请求数据,获取请求方法和参数,然后根据请求方法和参数,调用相应的接口进行业务处理。处理完成后,目标远程服务器可以生成响应数据,包含响应状态码、响应数据和错误信息,然后将响应数据通过网络传输协议发送回当前服务器。

在本申请实施例中,接收客户端发出的业务处理请求;在满足远程调用条件的情况下,调用远程服务器调用接口,并基于预先配置的跨服通讯信息通过接口代理选择跨服路由器,以确定目标远程服务器;向所述目标远程服务器传输接口所需参数,用于供所述目标远程服务器基于所述接口所需参数对所述业务处理请求进行处理,并向所述远程服务器调用接口反馈处理结果。通过上述基于跨服服务器架构的远程通讯方法,将请求均匀地分发到不同的远程服务器上,可以充分利用各个服务器资源,避免单一服务器负载过重,提高系统吞吐量,实现跨平台的业务处理。

实施例二

图2是本申请实施例二提供的基于跨服服务器架构的远程通讯方法的流程示意图。如图2所示,具体包括如下步骤:

S201,接收客户端发出的业务处理请求。

S202,在满足远程调用条件的情况下,调用远程服务器调用接口,并基于预先配置的跨服通讯信息通过接口代理选择跨服路由器,以确定目标远程服务器。

S203,根据当前服务器的本地执行逻辑,确定本地执行线程,以及根据本地执行线程,确定目标远程服务器需要执行的指定线程。

本地执行逻辑可以是指当前服务器接收到客户端发出的业务处理请求后,根据本地服务器的业务逻辑和需求,确定需要执行的业务处理操作。

本地执行线程可以是指在当前服务器上负责执行本地业务逻辑的线程,具体的,可以是一个线程池中的线程,也可以是一个单独的线程。

指定线程可以是指在目标远程服务器上指定用于执行远程调用请求的线程,也可以是一个线程池中的线程,也可以是一个单独的线程。

可以在当前服务器中定义一个线程分发器,用于管理和调度远程服务器的执行线程,并在线程分发器中注册远程服务接口,指定每个接口对应的执行线程池或线程。在当前服务器接收到业务处理请求后,根据预先配置的跨服通讯信息和接口代理选择跨服路由器,确定目标远程服务器。然后根据目标远程服务器的信息,从线程分发器中获取对应的执行线程池或线程,以确定在目标远程服务器上需要执行业务处理操作的指定线程。最后将业务处理请求和所需参数传输至目标远程服务器,并指定由获取的执行线程池或线程来处理该请求。

S204,向所述目标远程服务器传输接口所需参数,用于供所述目标远程服务器基于所述接口所需参数中包括的指定线程进行启动和业务处理请求的处理,并向所述远程服务器调用接口反馈处理结果。

可以将接口所需参数封装成一个请求对象。该请求对象包含了需要传输到目标远程服务器的所有参数信息,具体的,可以包括业务数据以及指定线程信息等。然后调用远程调用框架或通信库,将请求对象发送到目标远程服务器。远程调用框架会根据预先配置的跨服通讯信息,选择合适的通信方式来进行数据传输。当目标远程服务器接收到请求对象后,可以根据接口所需参数中包含的指定线程信息,启动相应的指定线程来处理该请求。具体的,可以使用异步请求、异步回调以及同步回调的方式调用远程接口。其中,异步请求可以是由调用服务器在自身逻辑执行线程,调用远程接口,选择路由器,传输接口所需参数,远程服务器接收并在指定线程执行。异步回调可以是由调用服务器在自身逻辑执行线程,调用远程接口,选择路由器,传输接口所需参数,远程服务器接收并在指定线程执行,产生执行结果,选择路由器,返回执行结果。同步回调可以是由调用服务器在自身逻辑执行线程,调用远程接口,选择路由器,传输接口所需参数,远程服务器接收并在指定线程执行,产生执行结果,选择路由器,返回执行结果。调用方在未接收到数据前,会阻塞线程。如请求远程服务器无响应,还可以进行请求重试,即抛出对应异常予调用方,并携带异常信息,如远程服务器接收请求后执行失败,会实时通知调用方失败的原因。

本实施例中,通过指定线程,可以将任务分配到不同的线程上并行处理,从而提高系统的响应速度,并且可以避免多个线程之间的资源竞争,避免竞争带来的死锁或数据不一致的问题。同时,通过指定线程还能控制每个线程的资源使用情况,避免某个线程占用过多资源导致系统崩溃。

在上述各技术方案的基础上,可选的,在通过所述远程服务器调用接口接收到反馈处理结果之前,所述方法还包括:

将所述本地执行线程置为拥塞状态。

本方案中,本地执行线程可以是在当前服务器上执行的线程,负责处理当前服务器接收到的任务或请求。例如,某个客户端发出请求时,请求首先被接收到其中一台服务器上的本地执行线程处理。该本地执行线程根据业务逻辑来决定是否需要进行远程调用,如果需要,则会选择目标远程服务器,并将接口调用请求传输给目标远程服务器执行。本地执行线程负责管理请求的处理过程,具体的,可以包括向远程服务器传输参数以及接收远程服务器的处理结果等。

在本地执行线程中可以使用线程阻塞的方法,例如调用sleep函数,使线程在指定的时间段内进入阻塞状态,暂停执行。还可以使用条件变量来实现线程的阻塞,本地执行线程可以等待某个条件满足时才继续执行,否则进入阻塞状态。还可以使用等待通知机制实现线程的阻塞。本地执行线程可以等待某个特定事件发生时被唤醒,否则进入阻塞状态。

本方案中,通过将本地执行线程设置为拥塞状态,可以限制任务的并发处理数量,避免系统负载过高,提高系统的稳定性以及资源利用率。

实施例三

图3是本申请实施例三提供的基于跨服服务器架构的远程通讯方法的流程示意图。如图3所示,所述当前服务器和至少一个所述远程服务器还连接于中心服务器,具体包括如下步骤:

S301,基于预先设置的定制化监控数据,确定当前服务器和/或至少一个远程服务器的监控指标。

图4是本申请实施例三提供的中心服务器与其他服务器的连接示意图,如图4所示,中心服务器可以是数据的汇聚和处理中心。它接收来自游戏服务器的监控数据,并进行数据统计、分析和预警处理。中心服务器可以利用这些数据来监控游戏服务器的运行状态、性能指标以及玩家行为等信息,进而对游戏服务器进行优化调整、故障预警以及异常检测等操作。

定制化监控数据可以包括玩法活跃度以及服务器承载等数据。玩法活跃度可以是指游戏中不同玩法或游戏模块的用户参与程度和活跃程度。它可以用来衡量游戏中各个玩法的受欢迎程度。玩家活跃度可以包括活跃用户数、游戏次数、平均游戏时长以及收入贡献,其中,活跃用户数可以是指定时间段内参与特定玩法或游戏模块的独立用户数量。游戏次数可以是指定时间段内特定玩法或游戏模块的游戏次数总和。平均游戏时长可以是指定时间段内玩家在特定玩法或游戏模块中的平均游戏时长。收入贡献可以是特定玩法或游戏模块为游戏运营带来的收入贡献情况。

监控指标可以是对收集到的定制化监控数据进行统计、计算或筛选得到的重要数据项。例如,可以设定每分钟的平均CPU利用率、每小时的玩家在线峰值以及每日的交易量等作为监控指标。

可以在当前服务器和/或远程服务器上设置合适的监控点,以收集定制化监控数据,再根据业务需求和监控目标,确定需要监控的指标。将收集到的定制化监控数据存储到数据库或数据存储系统中,以便后续的处理和分析。同时,根据设定的监控指标,对数据进行处理和计算,得到所需的监控指标数据。

S302,将所述监控指标上传至所述中心服务器,供所述中心服务器根据所述监控指标进行预警,并在所述监控指标超出正常范围时,生成与所述监控指标对应的分配策略,以对业务处理请求进行重新分配。

分配策略可以包括将请求转发至其他正常状态的服务器、增加或减少处理请求的权重以及暂停或终止对某些服务器的请求发送等。

当前服务器可以将收集到的监控指标数据通过网络等方式上传至中心服务器。中心服务器接收到上传的监控指标数据后,可以进行数据处理和分析,具体的,可以对数据进行实时监控,或者按照一定的时间间隔进行批量处理和分析。然后中心服务器可以根据处理后的监控指标数据,判断当前服务器和/或远程服务器的状态是否正常。如果某些监控指标超出了设定的阈值或正常范围,就认为服务器出现异常情况。当中心服务器确定服务器状态异常时,可以根据预先设定的分配策略来生成对应的业务请求重新分配策略,并将生成的分配策略发送给相关服务器或调度系统。服务器或调度系统根据收到的策略进行业务请求的重新分配。

本实施例中,通过上传监控指标给中心服务器,可以使中心服务器实时获取当前服务器和/或至少一个远程服务的监控数据,并在监控指标超出正常范围时进行预警,避免服务器崩溃以及内存泄漏等游戏重大问题的爆发,同时中心服可对各游戏服的资源进行管理分配,提高服务器利用率以及容错性。

实施例四

图5是本申请实施例四提供的基于跨服服务器架构的远程通讯方法的流程示意图。如图5所示,具体包括如下步骤:

S501,接收客户端发出的业务处理请求。

S502,确定预先创建的限流队列的状态,若所述限流队列为空闲状态,则将所述业务处理请求放入所述限流队列中,以等待线程或线程池处理所述业务处理请求。

预先创建的限流队列可以是在系统启动或初始化阶段提前创建的一个数据结构,用于存储业务处理请求。在远程服务器中,根据业务需求,可以在远程接口方法上对指定方法设置限流权重,远程服务器可以根据权重自动计算出心跳时间内远程方法的调用次数。限流队列的状态可以是指该限流队列当前的繁忙程度,可以分为空闲状态和繁忙状态。

可以在系统启动或初始化阶段,预先创建一个限流队列,并将其设置为空闲状态。当前服务器接收到客户端发出的业务处理请求时,首先判断预先创建的限流队列的状态,如果限流队列为空闲状态,表示当前没有太多的业务请求在等待处理,可以将新的业务处理请求放入限流队列中。当业务处理请求放入限流队列中后,该请求就会进入等待状态,等待线程或线程池来处理。

S503,若所述限流队列为忙碌状态,则向客户端反馈重新提交的提示信息,或等待限流队列处于空闲状态时将所述业务处理请求放入所述限流队列中。

当限流队列处于忙碌状态时,当前服务器可以向客户端反馈重新提交的提示信息,告知客户端当前系统繁忙,请求被暂时拒绝,建议稍后再次提交请求。客户端可以根据服务器返回的提示信息来决定是否需要重新提交请求。在向客户端反馈提示信息后,当前服务器可以选择等待限流队列处于空闲状态时再将业务处理请求放入限流队列中。可以通过设置一个等待时间来实现等待策略,在等待时间内不断检查限流队列的状态,直到队列变为空闲为止,然后再将请求放入队列中。

S504,在满足远程调用条件的情况下,调用远程服务器调用接口,并基于预先配置的跨服通讯信息通过接口代理选择跨服路由器,以确定目标远程服务器。

S505,向所述目标远程服务器传输接口所需参数,用于供所述目标远程服务器基于所述接口所需参数对所述业务处理请求进行处理,并向所述远程服务器调用接口反馈处理结果。

本实施例中,通过设置限流队列,可以在达到队列峰值时发起预警,并且在超过队列最大长度的情况下,可以抛弃请求或者返回错误信息来控制系统负载,防止系统由于请求过多而过载崩溃,提高了系统的稳定性。并且通过等待线程或线程池处理业务处理请求,可以避免频繁提交请求而过多的消耗系统资源。

实施例五

图6是本申请实施例五提供的基于跨服通讯的服务架构装置的结构示意图。如图6所示,具体包括如下:

业务处理请求接收模块601,用于接收客户端发出的业务处理请求;

接口调用模块602,用于在满足远程调用条件的情况下,调用远程服务器调用接口,并基于预先配置的跨服通讯信息通过接口代理选择跨服路由器,以确定目标远程服务器;

参数传输模块603,用于向所述目标远程服务器传输接口所需参数,用于供所述目标远程服务器基于所述接口所需参数对所述业务处理请求进行处理,并向所述远程服务器调用接口反馈处理结果。

进一步的,所述装置还包括线程确定模块,所述线程确定模块用于:

根据当前服务器的本地执行逻辑,确定本地执行线程,以及根据本地执行线程,确定目标远程服务器需要执行的指定线程;

所述参数传输模块,用于:

向所述目标远程服务器传输接口所需参数,用于供所述目标远程服务器基于所述接口所需参数中包括的指定线程进行启动和业务处理请求的处理,并向所述远程服务器调用接口反馈处理结果。

进一步的,所述装置还包括状态设置模块,所述状态设置模块用于:

将所述本地执行线程置为拥塞状态。

进一步的,所述当前服务器和至少一个所述远程服务器还连接于中心服务器;

相应的,所述装置还包括分配策略确定模块,所述分配策略确定模块用于:

基于预先设置的定制化监控数据,确定当前服务器和/或至少一个远程服务器的监控指标;

将所述监控指标上传至所述中心服务器,供所述中心服务器根据所述监控指标进行预警,并在所述监控指标超出正常范围时,生成与所述监控指标对应的分配策略,以对业务处理请求进行重新分配。

进一步的,所述装置还包括限流队列处理模块,所述限流队列处理模块用于:

确定预先创建的限流队列的状态,若所述限流队列为空闲状态,则将所述业务处理请求放入所述限流队列中,以等待线程或线程池处理所述业务处理请求;

若所述限流队列为忙碌状态,则向客户端反馈重新提交的提示信息,或等待限流队列处于空闲状态时将所述业务处理请求放入所述限流队列中。

进一步的,所述装置还包括负载均衡模块,所述负载均衡模块用于:

根据预先设置的负载均衡策略以及可用服务器的服务器信息确定所调用的目标服务器地址;

根据所述目标服务器地址将接口调用请求发送至目标服务器。

进一步的,所述装置还包括通信需求获取模块,所述通信需求获取模块用于:

获取通信需求,根据所述通信需求确定网络传输协议,并根据所述网络传输协议确定协议传输数据最大值。

在本申请实施例中,业务处理请求接收模块,用于接收客户端发出的业务处理请求;接口调用模块,用于在满足远程调用条件的情况下,调用远程服务器调用接口,并基于预先配置的跨服通讯信息通过接口代理选择跨服路由器,以确定目标远程服务器;参数传输模块,用于向所述目标远程服务器传输接口所需参数,用于供所述目标远程服务器基于所述接口所需参数对所述业务处理请求进行处理,并向所述远程服务器调用接口反馈处理结果。通过上述基于跨服通讯的服务架构装置,将请求均匀地分发到不同的远程服务器上,可以充分利用各个服务器资源,避免单一服务器负载过重,提高系统吞吐量,实现跨平台的业务处理。

本申请实施例中的基于跨服通讯的服务架构装置可以是装置,也可以是终端中的部件、集成电路、或芯片。该装置可以是移动电子设备,也可以为非移动电子设备。示例性的,移动电子设备可以为手机、平板电脑、笔记本电脑、掌上电脑、车载电子设备、可穿戴设备、超级移动个人计算机(ultra-mobilepersonalcomputer,UMPC)、上网本或者个人数字助理(personaldigitalassistant,PDA)等,非移动电子设备可以为服务器、网络附属存储器(NetworkAttachedStorage,NAS)、个人计算机(personalcomputer,PC)、电视机(television,TV)、柜员机或者自助机等,本申请实施例不作具体限定。

本申请实施例中的基于跨服通讯的服务架构装置可以为具有操作系统的装置。该操作系统可以为安卓(Android)操作系统,可以为ios操作系统,还可以为其他可能的操作系统,本申请实施例不作具体限定。

本申请实施例提供的基于跨服通讯的服务架构装置能够实现上述各方法实施例实现的各个过程,为避免重复,这里不再赘述。

实施例六

如图7所示,本申请实施例还提供一种电子设备700,包括处理器701,存储器702,存储在存储器702上并可在所述处理器701上运行的程序或指令,该程序或指令被处理器701执行时实现上述基于跨服通讯的服务架构装置实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。

需要说明的是,本申请实施例中的电子设备包括上述所述的移动电子设备和非移动电子设备。

实施例七

本申请实施例还提供一种可读存储介质,所述可读存储介质上存储有程序或指令,该程序或指令被处理器执行时实现上述基于跨服通讯的服务架构装置实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。

其中,所述处理器为上述实施例中所述的电子设备中的处理器。所述可读存储介质,包括计算机可读存储介质,如计算机只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(RandomAccessMemory,RAM)、磁碟或者光盘等。

实施例八

本申请实施例另提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现上述基于跨服通讯的服务架构装置实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。

应理解,本申请实施例提到的芯片还可以称为系统级芯片、系统芯片、芯片系统或片上系统芯片等。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本申请实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以计算机软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。

上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。

上述仅为本申请的较佳实施例及所运用的技术原理。本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行的各种明显变化、重新调整及替代均不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由权利要求的范围决定。

相关技术
  • 通讯信息的分配、通讯方法与装置、一种设备、一种介质
  • 基于GSM的远程监控方法、装置、设备及存储介质
  • 一种PLC通讯方法、装置、设备及存储介质
  • 蓝牙网格通讯方法、装置、调控设备及计算机存储介质
  • 跨地域出口流量调配方法、装置、计算机设备及存储介质
  • 基于RSocket的跨服通信方法、装置、设备及存储介质
  • 基于跨类型通讯链路的异步通讯方法、介质、终端和装置
技术分类

06120116500700