本申请涉及计算机,具体而言,涉及一种通信控制方法、装置、计算机设备和计算机可读存储介质。
背景技术:
1、随着互联网技术的发展,各种服务器被部署到不同的领域进行业务处理或数据存储。并且,各服务器之间,或者服务器与终端设备之间就需要进行通信。
2、相关技术中,比如在游戏领域,在游戏服务器间进行通信时,一般会采用同步阻塞式的开发模式。具体地,在服务器b与服务器a进行通信时,服务器b会先向服务器a发送数据请求,然后服务器a采用远程过程调用(remote procedure call,简称rpc)或超文本传输协议(hyper text transfer protocol,简称http)的形式,经web层、服务层、数据访问层从数据库中调用数据,再依次经服务器a的各层将数据发送给服务器b,然后服务器b就可以对接收到的数据进行处理。这样,才能完成服务器b与服务器a之间的通信。
3、然而,相关技术的方案中,服务器b在与服务器a的通信过程中,只有在发起请求和处理接收数据的时候才能有效使用cpu,而大量的时间都在阻塞的状态下等待服务器a进行处理。因此,相关技术的方案存在服务器通信时资源利用率和效率较低的问题。
技术实现思路
1、本申请的目的在于提供一种通信控制方法、装置、计算机设备和计算机可读存储介质,可以达到提高服务器通信时的资源利用率和效率的效果。
2、本申请的实施例是这样实现的:
3、本申请实施例的第一方面,提供一种通信控制方法,应用于数据服务器,所述方法包括:
4、接收并解析业务服务器发送的事件订阅请求,确定所述事件订阅请求所指示的至少一个订阅事件和至少一个订阅数据;
5、根据各所述订阅事件向所述业务服务器发送数据传输指令;
6、响应接收到所述业务服务器发送的确认信息,将与各所述订阅事件对应的各所述订阅数据发送给所述业务服务器。
7、本申请实施例的第二方面,提供一种通信控制方法,应用于业务服务器,所述方法包括:
8、向数据服务器发送事件订阅请求,所述事件订阅请求用于使得所述业务服务器和所述数据服务器建立连接,所述事件订阅请求还用于指示所述业务服务器需要订阅的订阅事件和需要接收的订阅数据;
9、响应接收到所述数据服务器发送的数据传输指令,则向所述数据服务器发送确认信息;
10、接收所述数据服务器发送的各所述订阅数据。
11、本申请实施例的第三方面,提供了一种通信控制装置,应用于数据服务器,所述装置包括:
12、接收确定模块,用于接收并解析业务服务器发送的事件订阅请求,确定所述事件订阅请求所指示的至少一个订阅事件和至少一个订阅数据;
13、第一发送模块,用于根据各所述订阅事件向所述业务服务器发送数据传输指令;
14、执行模块,用于响应接收到所述业务服务器发送的确认信息,将与各所述订阅事件对应的各所述订阅数据发送给所述业务服务器。
15、本申请实施例的第四方面,提供了一种通信控制装置,应用于业务服务器,所述装置包括:
16、第二发送模块,用于向数据服务器发送事件订阅请求,所述事件订阅请求用于使得所述业务服务器和所述数据服务器建立连接,所述事件订阅请求还用于指示所述业务服务器需要订阅的订阅事件和需要接收的订阅数据;
17、接收发送模块,用于响应接收到所述数据服务器发送的数据传输指令,则向所述数据服务器发送确认信息;
18、接收模块,用于接收所述数据服务器发送的各所述订阅数据。
19、本申请实施例的第五方面,提供了一种计算机设备,所述计算机设备包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述第一方面和上述第二方面所述的通信控制方法。
20、本申请实施例的第六方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面和上述第二方面所述的通信控制方法。
21、本申请实施例的有益效果包括:
22、本申请实施例提供的一种通信控制方法,通过接收并解析业务服务器发送的事件订阅请求,确定该事件订阅请求所指示的至少一个订阅事件和至少一个订阅数据。根据各订阅事件向该业务服务器发送数据传输指令。响应接收到该业务服务器发送的确认信息,将与各订阅事件对应的各订阅数据发送给该业务服务器。
23、其中,根据各订阅事件向该业务服务器发送数据传输指令。在各订阅事件发生或被触发时,该数据服务器就需要向订阅了各订阅事件的该业务服务器发送相应的数据,因此通过向该业务服务器发送数据传输指令来确定该业务服务器是否可以接收数据、和/或使得该业务服务器进入接收数据的状态,就可以避免出现该数据服务器直接向该业务服务器发送大量的数据,而该业务服务器无法接收数据导致通信失败或数据丢失的问题。这样,可以提高服务器通信的可靠性。
24、响应接收到该业务服务器发送的确认信息,将与各订阅事件对应的各订阅数据发送给该业务服务器。在该数据服务器接收到该确认信息的情况下,该数据服务器就可以确定该业务服务器当前可以接收数据,那么,就将与被触发的订阅事件对应的订阅数据发送到该业务服务器。这样,就可以实现在任一订阅事件被触发时向订阅了任一订阅事件的业务服务器发送与任一订阅事件对应的订阅数据的目的,进而实现数据服务器和业务服务器之间的通信。
25、可见,在该业务服务器和该数据服务器的通信过程中,该业务服务器只需要向该数据服务器发送该事件订阅请求,在发送该事件订阅请求之后,该业务服务器就可以释放相应线程,避免占用处理器(cpu)资源、内存资源等资源。然后,该业务服务器在接收到该数据传输指令之后,可以开启新的线程向该数据服务器发送该确认信号,并接收该数据服务器发送的订阅数据。
26、也就是说,该业务服务器并不需要在每次获取数据之前都调用一个线程向该数据服务器发送一个数据请求,而只需要向该数据服务器发送该事件订阅请求来订阅该数据服务器的一些事件。该数据服务器就可以在每次有订阅事件发生或被触发时,主动向该业务服务器发送该数据传输指令,并在接收到该确认信号时主动向该业务服务器发送各订阅数据。
27、这样,该业务服务器就不需要在每次获取数据时都持续运行用于获取数据的线程,也即,该业务服务器不需要运行线程来等待数据服务器响应请求、查找数据,而是在该数据服务器准备好向该业务服务器发送各订阅数据时,才会运行线程来接收该数据服务器发送的各订阅数据。
28、如此,可以避免业务服务器进入阻塞状态导致浪费资源和时间,进而可以达到提高服务器通信时的资源利用率和效率的效果。另外,还可以提高服务器通信的可靠性。
1.一种通信控制方法,其特征在于,应用于数据服务器,所述方法包括:
2.如权利要求1所述的通信控制方法,其特征在于,所述根据各所述订阅事件向所述业务服务器发送数据传输指令,包括:
3.如权利要求2所述的通信控制方法,其特征在于,所述响应接收到所述业务服务器发送的确认信息,将与各所述订阅事件对应的各所述订阅数据发送给所述业务服务器,包括:
4.如权利要求3所述的通信控制方法,其特征在于,所述数据服务器的数据层根据所述确认信息从与各所述订阅事件对应的各所述订阅数据中确定至少一个目标数据,包括:
5.如权利要求4所述的通信控制方法,其特征在于,所述数据服务器还包括队列子服务器;
6.如权利要求1-5任一项所述的通信控制方法,其特征在于,所述接收并解析业务服务器发送的事件订阅请求,确定所述事件订阅请求所指示的至少一个订阅事件和至少一个订阅数据,包括:
7.一种通信控制方法,其特征在于,应用于业务服务器,所述方法包括:
8.如权利要求7所述的通信控制方法,其特征在于,所述向所述数据服务器发送确认信息,包括:
9.如权利要求7所述的通信控制方法,其特征在于,所述接收所述数据服务器发送的各所述订阅数据,包括:
10.一种通信控制装置,其特征在于,应用于数据服务器,所述装置包括:
11.一种通信控制装置,其特征在于,应用于业务服务器,所述装置包括:
12.一种计算机设备,其特征在于,包括:存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现上述权利要求1至9任一项所述的方法的步骤。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时,实现权利要求1至9中任一项所述方法的步骤。
