CN109150988A - 一种请求处理方法及其服务器 - Google Patents
一种请求处理方法及其服务器 Download PDFInfo
- Publication number
- CN109150988A CN109150988A CN201810846454.9A CN201810846454A CN109150988A CN 109150988 A CN109150988 A CN 109150988A CN 201810846454 A CN201810846454 A CN 201810846454A CN 109150988 A CN109150988 A CN 109150988A
- Authority
- CN
- China
- Prior art keywords
- asynchronous
- server
- response message
- request
- sent
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 87
- 230000004044 response Effects 0.000 claims abstract description 759
- 230000001360 synchronised effect Effects 0.000 claims abstract description 224
- 230000006854 communication Effects 0.000 claims abstract description 194
- 238000004891 communication Methods 0.000 claims abstract description 175
- 230000005540 biological transmission Effects 0.000 claims description 20
- 238000012544 monitoring process Methods 0.000 claims description 19
- 238000003860 storage Methods 0.000 claims description 16
- 239000004744 fabric Substances 0.000 claims description 9
- 230000029058 respiratory gaseous exchange Effects 0.000 claims 2
- 238000000034 method Methods 0.000 description 46
- 230000008569 process Effects 0.000 description 27
- 238000010586 diagram Methods 0.000 description 20
- 230000007246 mechanism Effects 0.000 description 11
- 238000004590 computer program Methods 0.000 description 9
- 230000000694 effects Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/133—Protocols for remote procedure calls [RPC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Telephonic Communication Services (AREA)
Abstract
本申请的目的是提供一种请求处理方法及其服务器,该请求处理方法包括:响应于终端发送的同步请求,向第二服务器发送异步请求;其中,所述异步请求与所述同步请求相对应;在本地消息队列注册所述同步请求;若接收到所述第二服务器发送的第一异步响应消息,则根据在所述本地消息队列注册的所述同步请求查询到所述同步请求的通信线程;其中,所述第一异步响应消息与所述异步请求相对应;根据所述同步请求的通信线程向所述终端发送第一同步响应消息;其中,所述第一同步响应消息与所述第一异步响应消息相对应。本申请提供的一种请求处理方法及其服务器,实现了请求方采用同步请求并且接收方采用异步返回的功能。
Description
技术领域
本申请涉及计算机领域,尤其涉及一种请求处理方法及其服务器。
背景技术
远程过程调用协议(RPC,Remote Procedure Call Protocol)是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如传输控制协议(TCP,Transmission Control Protocol)或用户数据报协议(UDP,User Datagram Protocol),在通信程序之间进行通讯处理。RPC协议的通信模式包括:同步和异步。同步一般指发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式。异步一般指发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式。在现有技术中,存在同请异返的问题,即请求方采用同步请求并且接收方采用异步返回的机制。
发明内容
本申请的一个目的是提供一种请求处理方法及其服务器,以解决在现有的通信链路中实现同请异返的问题。
根据本申请的第一方面,提供一种请求处理方法,包括:
响应于终端发送的同步请求,向第二服务器发送异步请求;其中,所述异步请求与所述同步请求相对应;
在本地消息队列注册所述同步请求;
若接收到所述第二服务器发送的第一异步响应消息,则根据在所述本地消息队列注册的所述同步请求查询到所述同步请求的通信线程;其中,所述第一异步响应消息与所述异步请求相对应;
根据所述同步请求的通信线程向所述终端发送第一同步响应消息;其中,所述第一同步响应消息与所述第一异步响应消息相对应。
进一步,本申请所述的请求处理方法,所述向第二服务器发送异步请求之后,还包括:
若在第一预设时间段内未接收到所述第二服务器发送的所述第一异步响应消息,结束所述同步请求的通信线程。
进一步,本申请所述的请求处理方法,还包括:
响应于终端发送的同步请求,通过分布式协调组件在第四服务器注册所述同步请求;
通过所述分布式协调组件监控所述第四服务器的数据列表;其中,所述第四服务器通过所述分布式协调组件从第三服务器接收与所述异步请求相对应的第二异步响应消息,并通过所述分布式协调组件根据所述注册的所述同步请求以所述第二异步响应消息更新所述数据列表,其中,所述第二异步响应消息是所述第三服务器从所述第二服务器接收的;
若所述数据列表被所述第四服务器通过所述分布式协调组件以所述第二异步响应消息更新,则通过所述分布式协调组件从所述第四服务器获取所述第二异步响应消息;
向所述终端发送第二同步响应消息;其中,所述第二同步响应消息与所述第二异步响应消息相对应。
进一步,本申请所述的请求处理方法,在向第二服务器发送异步请求之后,还包括:
若在第二预设时间段内所述数据列表未被所述第二异步响应消息更新,则结束所述同步请求的通信线程。
进一步,本申请所述的请求处理方法,所述向所述终端发送第二同步响应消息,包括:
根据在所述本地消息队列注册的所述同步请求查询到所述同步请求的通信进程;
根据所述同步请求的通信进程向所述终端发送第二同步响应消息。
进一步,本申请所述的请求处理方法,还包括:
响应于终端发送的同步请求,根据所述同步请求通过分布式缓存组件向第四服务器发送订阅信息,所述订阅信息包括本地地址且所述订阅信息用于订阅与所述异步请求相对应的第三异步响应消息;其中,所述第四服务器通过所述分布式缓存组件从第三服务器接收所述第三异步响应消息,其中,所述第三异步响应消息是所述第三服务器从所述第二服务器接收的,其中,所述第四服务器通过所述分布式缓存组件根据所述第三异步响应消息查询到所述订阅信息并根据所述订阅信息的所述本地地址发送所述第三异步响应消息;
若接收到所述第四服务器通过所述分布式缓存组件发送的所述第三异步响应消息,则向所述终端发送第三同步响应消息;其中,所述第三同步响应消息与所述第三异步响应消息相对应。
进一步,本申请所述的请求处理方法,所述向第二服务器发送异步请求之后,还包括:
若在第三预设时间段内未接收到所述第四服务器通过所述分布式缓存组件发送的所述第三异步响应消息,则结束所述同步请求的通信线程。
进一步,本申请所述的请求处理方法,所述向所述终端发送第三同步响应消息,包括:
根据在所述本地消息队列注册的所述同步请求查询到所述同步请求的通信进程;
根据所述同步请求的通信进程向所述终端发送第三同步响应消息。
根据本申请的第二方面,提供一种请求处理方法,包括:
响应于终端发送的同步请求,向第二服务器发送异步请求;其中,所述异步请求与所述同步请求相对应;
通过分布式协调组件在第四服务器注册所述同步请求;
通过所述分布式协调组件监控所述第四服务器的数据列表;其中,所述第四服务器通过所述分布式协调组件从第三服务器接收与所述异步请求相对应的第二异步响应消息,并通过所述分布式协调组件根据所述注册的所述同步请求以所述第二异步响应消息更新所述数据列表,其中,所述第二异步响应消息是所述第三服务器从所述第二服务器接收的;
若所述数据列表被所述第四服务器通过所述分布式协调组件以所述第二异步响应消息更新,则通过所述分布式协调组件从所述第四服务器获取所述第二异步响应消息;
向所述终端发送第二同步响应消息;其中,所述第二同步响应消息与所述第二异步响应消息相对应。
进一步,本申请所述的请求处理方法,还包括:
在本地消息队列注册所述同步请求;
若接收到所述第二服务器发送的第一异步响应消息,则根据在所述本地消息队列注册的所述同步请求查询到所述同步请求的通信线程;其中,所述第一异步响应消息与所述异步请求相对应;
根据所述同步请求的通信线程向所述终端发送第一同步响应消息;其中,所述第一同步响应消息与所述第一异步响应消息相对应。
根据本申请的第三方面,提供一种请求处理方法,包括:
响应于终端发送的同步请求,向第二服务器发送异步请求;其中,所述异步请求与所述同步请求相对应;
根据所述同步请求通过分布式缓存组件向第四服务器发送订阅信息,所述订阅信息包括本地地址且所述订阅信息用于订阅与所述异步请求相对应的第三异步响应消息;其中,所述第四服务器通过所述分布式缓存组件从第三服务器接收所述第三异步响应消息,其中,所述第三异步响应消息是所述第三服务器从所述第二服务器接收的,其中,所述第四服务器通过所述分布式缓存组件根据所述第三异步响应消息查询到所述订阅信息并根据所述订阅信息的所述本地地址发送所述第三异步响应消息;
若接收到所述第四服务器通过所述分布式缓存组件发送的所述第三异步响应消息,则向所述终端发送第三同步响应消息;其中,所述第三同步响应消息与所述第三异步响应消息相对应。
进一步,本申请所述的请求处理方法,还包括:
在本地消息队列注册所述同步请求;
若接收到所述第二服务器发送的第一异步响应消息,则根据在所述本地消息队列注册的所述同步请求查询到所述同步请求的通信线程;其中,所述第一异步响应消息与所述异步请求相对应;
根据所述同步请求的通信线程向所述终端发送第一同步响应消息;其中,所述第一同步响应消息与所述第一异步响应消息相对应。
根据本申请的第四方面,提供一种请求处理方法,包括:
响应于第一服务器发送的异步请求,向所述第一服务器发送第一异步响应消息;其中,所述第一异步响应消息与所述异步请求相对应;其中,所述第一服务器根据终端发送的同步请求发送所述异步请求,所述异步请求与所述同步请求相对应,所述第一服务器接收到所述第一异步响应消息后,根据所述同步请求的通信线程向所述终端发送第一同步响应消息;其中,所述第一同步响应消息与所述第一异步响应消息相对应。
进一步,本申请所述的请求处理方法,还包括:
响应于所述第一服务器发送的异步请求,向第三服务器发送第二异步响应消息;其中,所述第二异步响应消息与所述异步请求相对应;其中,所述第一服务器通过分布式协调组件从所述第三服务器监控获取所述第二异步响应消息,并向所述终端发送第二同步响应消息;其中,所述第二同步响应消息与所述第二异步响应消息相对应。
进一步,本申请所述的请求处理方法,还包括:
响应于所述第一服务器发送的异步请求,向第三服务器发送第三异步响应消息;其中,所述第三异步响应消息与所述异步请求相对应;其中,所述第一服务器通过分布式缓存组件从所述第三服务器订阅获取所述第三异步响应消息,并向所述终端发送第三同步响应消息;其中,所述第三同步响应消息与所述第三异步响应消息相对应。
根据本申请第五方面,提供一种请求处理方法,包括:
响应于接收到第二服务器发送的第二异步响应消息,通过分布式协调组件向第四服务器发送所述第二异步响应消息;
或者,响应于接收到所述第二服务器发送的第三异步响应消息,通过分布式缓存组件向第四服务器发送所述第三异步响应消息;
其中,所述第二服务器响应于第一服务器发送的异步请求,发送所述第二异步响应消息或所述第三异步响应消息;所述第一服务器响应于终端发送的同步请求,向所述第二服务器发送异步请求;所述异步请求与所述同步请求相对应;
其中,所述第一服务器通过所述分布式协调组件从所述第四服务器监控获取所述第二异步响应消息,或者,所述第一服务器通过所述分布式缓存组件从所述第四服务器订阅获取所述第三异步响应消息;所述第一服务器根据所述同步请求的通信进程向所述终端发送第二同步响应消息或者第三同步响应消息;其中,所述第二同步响应消息与所述第二异步响应消息相对应,所述第三同步响应消息与所述第三异步响应消息相对应。
根据本申请的第六方面,提供一种请求处理方法,包括:
响应于第三服务器通过分布式协调组件发送的第二异步响应消息,通过所述分布式协调组件根据第一服务器注册的同步请求以所述第二异步响应消息更新数据列表;
或者,响应于第三服务器通过分布式缓存组件发送的第三异步响应消息,通过所述分布式缓存组件根据所述第三异步响应消息查询到第一服务器的订阅信息并根据所述订阅信息的本地地址发送所述第三异步响应消息;
其中,所述第二异步响应消息或所述第三异步响应消息为第二服务器接收到第一服务器发送的异步请求后,向所述第三服务器发送的;所述异步请求为所述第一服务器接收到终端发送的同步请求后,向所述第二服务器发送的;所述异步请求与所述同步请求相对应;
其中,所述第一服务器通过所述分布式协调组件监控所述数据列表以获取所述第二异步响应消息并向所述终端发送第二同步响应消息,或者,所述第一服务器通过所述分布式缓存组件接收到所述第三异步响应消息并向所述终端发送第三同步响应消息;其中,所述第二同步响应消息与所述第二异步响应消息相对应,所述第三同步响应消息与所述第三异步响应消息相对应。
根据本申请的第七方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储指令,所述指令根据本申请所述的请求处理方法进行执行。
根据本申请的第八方面,提供一种服务器,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行如本申请所述请求处理方法的操作。
本申请提供的一种请求处理方法及其服务器,终端与第一服务器建立同步通信链路,第一服务器与第二服务器建立异步通信链路,实现了请求方采用同步请求并且接收方采用异步返回的功能。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1为本申请第一方面实施例的请求处理方法的流程示意图;
图2为本申请第二方面实施例的请求处理方法的流程示意图;
图3为本申请第三方面实施例的请求处理方法的流程示意图;
图4为本申请第四方面实施例的请求处理方法的流程示意图;
图5为本申请第五方面实施例的请求处理方法的流程示意图;
图6为本申请第六方面实施例的请求处理方法的流程示意图;
图7为本申请的第一服务器的结构示意图;
图8为本申请的第二服务器的结构示意图;
图9为本申请的第三服务器的结构示意图;
图10为本申请的第四服务器的结构示意图;
图11为本申请的第一服务器、第二服务器、第三服务器和第四服务器的连接示意图;
图12为本申请的请求处理方法的原理示意图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本申请作进一步详细描述。
在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(例如中央处理器(Central Processing Unit,CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RandomAccess Memory,RAM)和/或非易失性内存等形式,如只读存储器(Read-Only Memory,ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(Phase Change RAM,PRAM)、静态随机存取存储器(Static Random Access Memory,SRAM)、动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
图1为本申请第一方面实施例的请求处理方法的流程示意图,如图1所示,在本申请第一方面实施例的请求处理方法,应用于第一服务器,该方法包括:
步骤S101,响应于终端发送的同步请求,向第二服务器发送异步请求;其中,所述异步请求与所述同步请求相对应。
具体地,同步请求为同步通信链路中的请求指令。异步请求为异步通信链路中的请求指令。异步请求与同步请求相对应指异步请求与同步请求的指令内容一致,即完成相同的指令内容。异步请求与同步请求的通信链路不同,异步请求的指令通过异步通信链路调用数据,满足异步通信链路的协议要求,同步请求的指令通过同步通信链路调用数据,满足同步通信链路的协议要求。通信链路可以根据远程过程调用协议建立。当第一服务器接收到终端发送的同步请求后,与终端建立同步通信链路并且根据该同步请求的指令内容向第二服务器发送异步请求,第一服务器与第二服务器建立异步通信链路。
步骤S102,在本地消息队列注册所述同步请求。
具体地,第一服务器在本地的消息队列中注册终端发送的同步请求,以便于查询获取到第一服务器与终端之间的同步通信链路。
步骤S103,若接收到所述第二服务器发送的第一异步响应消息,则根据在所述本地消息队列注册的所述同步请求查询到所述同步请求的通信线程;其中,所述第一异步响应消息与所述异步请求相对应。
具体地,第一异步响应消息为第一服务器与第二服务器之间的异步通信链路中根据异步请求得到的响应消息。第一异步响应消息与异步请求相对应是指第一异步响应消息是根据异步请求的指令内容而反馈的响应消息。由于异步请求与同步请求的指令内容相同,第一异步响应消息的内容即为根据同步请求的指令内容所作出的。当第一服务器接收到第二服务器根据异步请求通过异步通信链路反馈的第一异步响应消息时,第一服务器在本地的消息队列中查询到通过步骤S102注册的同步请求,并根据该同步请求查询到该同步请求的通信线程,进而获取到第一服务器与终端之间的同步通信链路。线程指轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元。通信线程是指用于建立并保持终端与第一服务器之间的同步通信链路的线程。
步骤S104,根据所述同步请求的通信线程向所述终端发送第一同步响应消息;其中,所述第一同步响应消息与所述第一异步响应消息相对应。
具体地,第一同步响应消息为终端与第一服务器之间的同步通信链路中的响应消息。第一同步响应消息与第一异步响应消息相对应是指第一同步响应消息与第一异步响应消息的消息内容相一致,即都为根据相同指令内容而得到的响应消息。第一服务器通过同步请求的通信线程获取到第一服务器与终端之间的同步通信链路后,第一服务器将与第一异步响应消息的消息内容保持相一致的第一同步响应消息通过该同步通信链路发送至终端。
在一个示例中,在向第二服务器发送异步请求之后,本申请实施例的请求处理方法还包括:若在第一预设时间段内未接收到所述第二服务器发送的所述第一异步响应消息,结束所述同步请求的通信线程。
具体地,为避免流程超时锁死,设置第一预设时间段,如果第一服务器在第一预设时间段内未接收到第一异步响应消息,则结束终端的同步请求的通信线程,关断终端与第一服务器之间的同步通信链路。
在一个示例中,本申请实施例的请求处理方法还包括:响应于终端发送的同步请求,通过分布式协调组件在第四服务器注册所述同步请求;通过所述分布式协调组件监控所述第四服务器的数据列表;其中,所述第四服务器通过所述分布式协调组件从第三服务器接收与所述异步请求相对应的第二异步响应消息,并通过所述分布式协调组件根据所述注册的所述同步请求以所述第二异步响应消息更新所述数据列表,其中,所述第二异步响应消息是所述第三服务器从所述第二服务器接收的;若所述数据列表被所述第四服务器通过所述分布式协调组件以所述第二异步响应消息更新,则通过所述分布式协调组件从所述第四服务器获取所述第二异步响应消息;向所述终端发送第二同步响应消息;其中,所述第二同步响应消息与所述第二异步响应消息相对应。
具体地,第一服务器发送的异步请求包括该同步请求的标识信息,例如同步请求的RPC报文编号。分布式协调组件是指设于第一服务器和第三服务器并且在第一服务器和第三服务器之间利用监控机制进行响应消息协调的程序组件。当第一服务器接收到终端发送的同步请求后,通过分布式协调组件注册该同步请求,分布式协调组件将该同步请求的标识发送至第四服务器,第四服务器将该同步请求的标识存储至数据列表,以完成该同步请求的注册。第一服务器通过分布式协调组件根据该同步请求的标识对第四服务器的数据列表进行监控,监控数据列表是否被第四服务器通过分布式协调组件以第二异步响应消息更新。第二异步响应消息为第二服务器与第三服务器之间的异步通信链路中根据异步请求得到的响应消息。第二异步响应消息与异步请求相对应是指第二异步响应消息是根据异步请求的指令内容而反馈的响应消息。由于异步请求与同步请求的指令内容相同,第二异步响应消息的内容即为根据同步请求的指令内容所作出的响应消息。第二服务器接收到异步请求后,并没有向第一服务器发送第一异步响应消息,而是向第三服务器发送第二异步响应消息,该第二异步响应消息包括同步请求的标识信息。第三服务器通过本地的分布式协调组件将第二异步响应消息发送至第四服务器。第四服务器会接收到若干第三服务器发送的第二异步响应消息,第四服务器在数据列表中查询同步请求的标识信息,以查询到在第四服务器注册的同步请求,第四服务器根据注册的同步请求以第二异步响应消息更新数据列表。由于注册的同步请求具有标识信息,第二异步响应消息也包括同步请求的标识信息,因此可以查找到具有相同标识信息的同步请求和第二异步响应消息,并在数据列表中建立同步请求与第二异步响应消息的关联关系,以实现利用第二异步响应消息更新数据列表。第一服务器通过分布式协调组件监控第四服务器的数据列表,当发现数据列表中已经注册的同步请求被第二异步响应消息更新后,第一服务器通过分布式协调组件请求获取该第二异步响应消息,以获取到根据同步请求的指令内容所作出的响应消息。第二同步响应消息为终端与第一服务器之间的同步通信链路中的响应消息。第二同步响应消息与第二异步响应消息相对应是指第二同步响应消息与第二异步响应消息的消息内容相一致,即都为根据相同指令内容而得到的响应消息。第一服务器通过分布式协调组件根据在第四服务器注册的同步请求获取到第二异步响应消息后,将第二同步响应消息通过同步通信链路发送至终端。
在一个示例中,在向第二服务器发送异步请求之后,还包括:若在第二预设时间段内所述数据列表未被所述第二异步响应消息更新,则结束所述同步请求的通信线程。
具体地,为避免流程超时锁死,设置第二预设时间段,如果第一服务器在第二预设时间段内通过分布式协调组件未监测到第四服务器的数据列表被第二异步响应消息更新,则结束终端的同步请求的通信线程,关断终端与第一服务器之间的同步通信链路。
在一个示例中,所述向所述终端发送第二同步响应消息,包括:根据在所述本地消息队列注册的所述同步请求查询到所述同步请求的通信进程;根据所述同步请求的通信进程向所述终端发送第二同步响应消息。
具体地,进程(Process)是计算机程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位。一个进程可以包括若干线程。对于单点同请异返的情况,例如图1所示的请求处理方法,通过线程调用即可满足同步通信链路与异步通信链路的切换,但对于多点同请异返的情况,例如图2所示的请求处理方法,需通过进程切换来实现同步通信链路与异步通信链路的切换。
在一个示例中,本申请所述的请求处理方法还包括:响应于终端发送的同步请求,根据所述同步请求通过分布式缓存组件向第四服务器发送订阅信息,所述订阅信息包括本地地址且所述订阅信息用于订阅与所述异步请求相对应的第三异步响应消息;其中,所述第四服务器通过所述分布式缓存组件从第三服务器接收所述第三异步响应消息,其中,所述第三异步响应消息是所述第三服务器从所述第二服务器接收的,其中,所述第四服务器通过所述分布式缓存组件根据所述第三异步响应消息查询到所述订阅信息并根据所述订阅信息的所述本地地址发送所述第三异步响应消息;若接收到所述第四服务器通过所述分布式缓存组件发送的所述第三异步响应消息,则向所述终端发送第三同步响应消息;其中,所述第三同步响应消息与所述第三异步响应消息相对应。
具体地,第一服务器发送的异步请求包括该同步请求的标识信息,例如同步请求的RPC报文编号。分布式缓存组件是指设于第一服务器和第三服务器并且在第一服务器和第三服务器之间利用订阅机制进行响应消息协调的程序组件。当第一服务器接收到终端发送的同步请求后,通过分布式缓存组件向第四服务器发送订阅信息,该订阅信息包括第一服务器的本地地址且订阅信息用于订阅与异步请求相对应的第三异步响应消息。第三异步响应消息为第二服务器与第三服务器之间的异步通信链路中根据异步请求得到的响应消息。第三异步响应消息与异步请求相对应是指第三异步响应消息是根据异步请求的指令内容而反馈的响应消息。由于异步请求与同步请求的指令内容相同,第三异步响应消息的内容即为根据同步请求的指令内容所作出的响应消息。第二服务器接收到异步请求后,并没有向第一服务器发送第一异步响应消息,而是向第三服务器发送第三异步响应消息,该第三异步响应消息包括同步请求的标识信息。第三服务器通过本地的分布式协调组件将第二异步响应消息发送至第四服务器。第四服务器通过分布式缓存组件根据第三异步响应消息包括的同步请求的标识信息查询到该同步请求的订阅信息并根据该订阅信息的第一服务器的本地地址向第一服务器发送第三异步响应消息。第三同步响应消息为终端与第一服务器之间的同步通信链路中的响应消息。第三同步响应消息与第三异步响应消息相对应是指第三同步响应消息与第三异步响应消息的消息内容相一致,即都为根据相同指令内容而得到的响应消息。第一服务器通过分布式缓存组件从第四服务器订阅获取第三异步响应消息后,将第三同步响应消息通过同步通信链路发送至终端。
在一个示例中,所述向第二服务器发送异步请求之后,还包括:若在第三预设时间段内未接收到所述第四服务器通过所述分布式缓存组件发送的所述第三异步响应消息,则结束所述同步请求的通信线程。
具体地,为避免流程超时锁死,设置第三预设时间段,如果第一服务器在第三预设时间段内未接收到第四服务器通过分布式缓存组件发送的第三异步响应消息,则结束同步请求的通信线程,关断终端与第一服务器之间的同步通信链路。
在一个示例中,所述向所述终端发送第三同步响应消息,包括:根据在所述本地消息队列注册的所述同步请求查询到所述同步请求的通信进程;根据所述同步请求的通信进程向所述终端发送第三同步响应消息。
具体地,进程(Process)是计算机程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位。一个进程可以包括若干线程。对于单点同请异返的情况,例如图1所示的请求处理方法,通过线程调用即可满足同步通信链路与异步通信链路的切换,但对于多点同请异返的情况,例如图3所示的请求处理方法,需通过进程切换来实现同步通信链路与异步通信链路的切换。
图2为本申请第二方面实施例的请求处理方法的流程示意图,如图2所示,本申请第二方面实施例的请求处理方法用于第一服务器,该方法包括:
步骤S201,响应于终端发送的同步请求,向第二服务器发送异步请求;其中,所述异步请求与所述同步请求相对应。
具体地,同步请求为同步通信链路中的请求指令。异步请求为异步通信链路中的请求指令。异步请求与同步请求相对应指异步请求与同步请求的指令内容一致,即完成相同的指令内容。异步请求与同步请求的通信链路不同,异步请求的指令通过异步通信链路调用数据,满足异步通信链路的协议要求,同步请求的指令通过同步通信链路调用数据,满足同步通信链路的协议要求。通信链路可以根据远程过程调用协议建立。当第一服务器接收到终端发送的同步请求后,与终端建立同步通信链路并且根据该同步请求的指令内容向第二服务器发送异步请求,该异步请求包括该同步请求的标识信息,例如同步请求的RPC报文编号。
步骤S202,通过分布式协调组件在第四服务器注册所述同步请求。
具体地,分布式协调组件是指设于第一服务器和第三服务器并且在第一服务器和第三服务器之间利用监控机制进行响应消息协调的程序组件。当第一服务器接收到终端发送的同步请求后,通过分布式协调组件注册该同步请求,分布式协调组件将该同步请求的标识发送至第四服务器,第四服务器将该同步请求的标识存储至数据列表,以完成该同步请求的注册。
步骤S203,通过所述分布式协调组件监控所述第四服务器的数据列表;其中,所述第四服务器通过所述分布式协调组件从第三服务器接收与所述异步请求相对应的第二异步响应消息,并通过所述分布式协调组件根据所述注册的所述同步请求以所述第二异步响应消息更新所述数据列表,其中,所述第二异步响应消息是所述第三服务器从所述第二服务器接收的。
具体地,第一服务器通过分布式协调组件根据该同步请求的标识对第四服务器的数据列表进行监控,监控数据列表是否被第四服务器通过分布式协调组件以第二异步响应消息更新。第二异步响应消息为第二服务器与第三服务器之间的异步通信链路中根据异步请求得到的响应消息。第二异步响应消息与异步请求相对应是指第二异步响应消息是根据异步请求的指令内容而反馈的响应消息。由于异步请求与同步请求的指令内容相同,第二异步响应消息的内容即为根据同步请求的指令内容所作出的响应消息。第二服务器接收到异步请求后,并没有向第一服务器发送第一异步响应消息,而是向第三服务器发送第二异步响应消息,该第二异步响应消息包括同步请求的标识信息。第三服务器通过本地的分布式协调组件将第二异步响应消息发送至第四服务器。
步骤S204,若所述数据列表被所述第四服务器通过所述分布式协调组件以所述第二异步响应消息更新,则通过所述分布式协调组件从所述第四服务器获取所述第二异步响应消息。
具体地,第四服务器会接收到若干第三服务器发送的第二异步响应消息,第四服务器在数据列表中查询同步请求的标识信息,以查询到在第四服务器注册的同步请求,第四服务器根据注册的同步请求以第二异步响应消息更新数据列表。由于注册的同步请求具有标识信息,第二异步响应消息也包括同步请求的标识信息,因此可以查找到具有相同标识信息的同步请求和第二异步响应消息,并在数据列表中建立同步请求与第二异步响应消息的关联关系,以实现利用第二异步响应消息更新数据列表。第一服务器通过分布式协调组件监控第四服务器的数据列表,当发现数据列表中已经注册的同步请求被第二异步响应消息更新后,第一服务器通过分布式协调组件请求该第二异步响应消息,以获取到根据同步请求的指令内容所作出的响应消息。
步骤S205,向所述终端发送第二同步响应消息;其中,所述第二同步响应消息与所述第二异步响应消息相对应。
具体地,第二同步响应消息为终端与第一服务器之间的同步通信链路中的响应消息。第二同步响应消息与第二异步响应消息相对应是指第二同步响应消息与第二异步响应消息的消息内容相一致,即都为根据相同指令内容而得到的响应消息。第一服务器通过分布式协调组件根据在第四服务器注册的同步请求获取到第二异步响应消息后,将第二同步响应消息通过同步通信链路发送至终端。
在一个示例中,本申请所述的请求处理方法,还包括:在本地消息队列注册所述同步请求;若接收到所述第二服务器发送的第一异步响应消息,则根据在所述本地消息队列注册的所述同步请求查询到所述同步请求的通信线程;其中,所述第一异步响应消息与所述异步请求相对应;根据所述同步请求的通信线程向所述终端发送第一同步响应消息;其中,所述第一同步响应消息与所述第一异步响应消息相对应。
具体地,如果第二服务器直接向第一服务器发送第一异步响应消息,则根据图1所示的请求处理方法进行处理,此处不再赘述。
在一个示例中,本申请所述的请求处理方法,在向第二服务器发送异步请求之后,还包括:若在第二预设时间段内所述数据列表未被所述第二异步响应消息更新,则结束所述同步请求的通信线程。
具体地,为避免流程超时锁死,设置第二预设时间段,如果第一服务器在第二预设时间段内通过分布式协调组件未监测到第四服务器的数据列表被第二异步响应消息更新,则结束终端的同步请求的通信线程,关断终端与第一服务器之间的同步通信链路。
在一个示例中,本申请所述的请求处理方法,还包括:在本地消息队列注册所述同步请求;所述向所述终端发送第二同步响应消息,包括:根据在所述本地消息队列注册的所述同步请求查询到所述同步请求的通信进程;根据所述同步请求的通信进程向所述终端发送第二同步响应消息。
具体地,进程(Process)是计算机程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位。一个进程可以包括若干线程。对于单点同请异返的情况,例如图1所示的请求处理方法,通过线程调用即可满足同步通信链路与异步通信链路的切换,但对于多点同请异返的情况,例如图2所示的请求处理方法,需通过进程切换来实现同步通信链路与异步通信链路的切换。
图3为本申请第三方面实施例的请求处理方法的流程示意图,如图3所示,在本申请第三方面实施例的请求处理方法应用于第一服务器,该方法包括:
步骤S301,响应于终端发送的同步请求,向第二服务器发送异步请求;其中,所述异步请求与所述同步请求相对应。
具体地,同步请求为同步通信链路中的请求指令。异步请求为异步通信链路中的请求指令。异步请求与同步请求相对应指异步请求与同步请求的指令内容一致,即完成相同的指令内容。异步请求与同步请求的通信链路不同,异步请求的指令通过异步通信链路调用数据,满足异步通信链路的协议要求,同步请求的指令通过同步通信链路调用数据,满足同步通信链路的协议要求。通信链路可以根据远程过程调用协议建立。当第一服务器接收到终端发送的同步请求后,与终端建立同步通信链路并且根据该同步请求的指令内容向第二服务器发送异步请求,该异步请求包括该同步请求的标识信息,例如同步请求的RPC报文编号。
步骤S302,根据所述同步请求通过分布式缓存组件向第四服务器发送订阅信息,所述订阅信息包括本地地址且所述订阅信息用于订阅与所述异步请求相对应的第三异步响应消息。
其中,所述第四服务器通过所述分布式缓存组件从第三服务器接收所述第三异步响应消息,其中,所述第三异步响应消息是所述第三服务器从所述第二服务器接收的,其中,所述第四服务器通过所述分布式缓存组件根据所述第三异步响应消息查询到所述订阅信息并根据所述订阅信息的所述本地地址发送所述第三异步响应消息。
具体地,分布式缓存组件是指设于第一服务器和第三服务器并且在第二服务器和第三服务器之间利用订阅机制进行响应消息协调的程序组件。当第一服务器接收到终端发送的同步请求后,通过分布式缓存组件向第四服务器发送订阅信息,该订阅信息包括第一服务器的本地地址且订阅信息用于订阅与异步请求相对应的第三异步响应消息。第三异步响应消息为第二服务器与第三服务器之间的异步通信链路中根据异步请求得到的响应消息。第三异步响应消息与异步请求相对应是指第三异步响应消息是根据异步请求的指令内容而反馈的响应消息。由于异步请求与同步请求的指令内容相同,第三异步响应消息的内容即为根据同步请求的指令内容所作出的响应消息。第二服务器接收到异步请求后,并没有向第一服务器发送第一异步响应消息,而是向第三服务器发送第三异步响应消息,该第三异步响应消息包括同步请求的标识信息。第三服务器通过本地的分布式协调组件将第二异步响应消息发送至第四服务器。第四服务器通过分布式缓存组件根据第三异步响应消息包括的同步请求的标识信息查询到该同步请求的订阅信息并根据该订阅信息的第一服务器的本地地址向第一服务器发送第三异步响应消息。
步骤S303,若接收到所述第四服务器通过所述分布式缓存组件发送的所述第三异步响应消息,则向所述终端发送第三同步响应消息;其中,所述第三同步响应消息与所述第三异步响应消息相对应。
具体地,第三同步响应消息为终端与第一服务器之间的同步通信链路中的响应消息。第三同步响应消息与第三异步响应消息相对应是指第三同步响应消息与第三异步响应消息的消息内容相一致,即都为根据相同指令内容而得到的响应消息。第一服务器通过分布式缓存组件从第四服务器订阅获取第三异步响应消息后,将第三同步响应消息通过同步通信链路发送至终端。
在一个示例中,本申请所述的请求处理方法,还包括:在本地消息队列注册所述同步请求;若接收到所述第二服务器发送的第一异步响应消息,则根据在所述本地消息队列注册的所述同步请求查询到所述同步请求的通信线程;其中,所述第一异步响应消息与所述异步请求相对应;根据所述同步请求的通信线程向所述终端发送第一同步响应消息;其中,所述第一同步响应消息与所述第一异步响应消息相对应。
具体地,如果第二服务器直接向第一服务器发送第一异步响应消息,则根据图1所示的请求处理方法进行处理,此处不再赘述。
在一个示例中,本申请所述的请求处理方法,在向第二服务器发送异步请求之后,还包括:若在第三预设时间段内未接收到所述第四服务器通过所述分布式缓存组件发送的所述第三异步响应消息,则结束所述同步请求的通信线程。
具体地,为避免流程超时锁死,设置第三预设时间段,如果第一服务器在第三预设时间段内未接收到第四服务器通过分布式缓存组件发送的第三异步响应消息,则结束同步请求的通信线程,关断终端与第一服务器之间的同步通信链路。
在一个示例中,本申请所述的请求处理方法,还包括:在本地消息队列注册所述同步请求;所述向所述终端发送第三同步响应消息,包括:根据在所述本地消息队列注册的所述同步请求查询到所述同步请求的通信进程;根据所述同步请求的通信进程向所述终端发送第三同步响应消息。
具体地,进程(Process)是计算机程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位。一个进程可以包括若干线程。对于单点同请异返的情况,例如图1所示的请求处理方法,通过线程调用即可满足同步通信链路与异步通信链路的切换,但对于多点同请异返的情况,例如图3所示的请求处理方法,需通过进程切换来实现同步通信链路与异步通信链路的切换。
图4为本申请第四方面实施例的请求处理方法的流程示意图,如图4所示,本申请第四方面实施例的请求处理方法,应用于第二服务器,该方法包括:
步骤S401,响应于第一服务器发送的异步请求,向所述第一服务器发送第一异步响应消息;其中,所述第一异步响应消息与所述异步请求相对应。
其中,所述第一服务器根据终端发送的同步请求发送所述异步请求,所述异步请求与所述同步请求相对应,所述第一服务器接收到所述第一异步响应消息后,根据所述同步请求的通信线程向所述终端发送第一同步响应消息;其中,所述第一同步响应消息与所述第一异步响应消息相对应。
具体地,同步请求为同步通信链路中的请求指令。异步请求为异步通信链路中的请求指令。异步请求与同步请求相对应指异步请求与同步请求的指令内容一致,即完成相同的指令内容。异步请求与同步请求的通信链路不同,异步请求的指令通过异步通信链路调用数据,满足异步通信链路的协议要求,同步请求的指令通过同步通信链路调用数据,满足同步通信链路的协议要求。通信链路可以根据远程过程调用协议建立。当第一服务器接收到终端发送的同步请求后,与终端建立同步通信链路并且根据该同步请求的指令内容向第二服务器发送异步请求,第一服务器与第二服务器建立异步通信链路。第一服务器在本地的消息队列中注册终端发送的同步请求,以便于查询获取到第一服务器与终端之间的同步通信链路。第一异步响应消息为第一服务器与第二服务器之间的异步通信链路中根据异步请求得到的响应消息。第一异步响应消息与异步请求相对应是指第一异步响应消息是根据异步请求的指令内容而反馈的响应消息。由于异步请求与同步请求的指令内容相同,第一异步响应消息的内容即为根据同步请求的指令内容所作出的。当第一服务器接收到第二服务器根据异步请求通过异步通信链路反馈的第一异步响应消息时,第一服务器在本地的消息队列中查询到通过步骤S102注册的同步请求,并根据该同步请求查询到该同步请求的通信线程,进而获取到第一服务器与终端之间的同步通信链路。线程指轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元。通信线程是指用于建立并保持终端与第一服务器之间的同步通信链路的线程。第一同步响应消息为终端与第一服务器之间的同步通信链路中的响应消息。第一同步响应消息与第一异步响应消息相对应是指第一同步响应消息与第一异步响应消息的消息内容相一致,即都为根据相同指令内容而得到的响应消息。第一服务器通过同步请求的通信线程获取到第一服务器与终端之间的同步通信链路后,第一服务器将与第一异步响应消息的消息内容保持相一致的第一同步响应消息通过该同步通信链路发送至终端。
在一个示例中,本申请所述的请求处理方法,还包括:响应于所述第一服务器发送的异步请求,向第三服务器发送第二异步响应消息;其中,所述第二异步响应消息与所述异步请求相对应;其中,所述第一服务器通过分布式协调组件从所述第三服务器监控获取所述第二异步响应消息,并向所述终端发送第二同步响应消息;其中,所述第二同步响应消息与所述第二异步响应消息相对应。
具体地,第一服务器发送的异步请求包括该同步请求的标识信息,例如同步请求的RPC报文编号。分布式协调组件是指设于第一服务器和第三服务器并且在第一服务器和第三服务器之间利用监控机制进行响应消息协调的程序组件。当第一服务器接收到终端发送的同步请求后,通过分布式协调组件注册该同步请求,分布式协调组件将该同步请求的标识发送至第四服务器,第四服务器将该同步请求的标识存储至数据列表,以完成该同步请求的注册。第一服务器通过分布式协调组件根据该同步请求的标识对第四服务器的数据列表进行监控,监控数据列表是否被第四服务器通过分布式协调组件以第二异步响应消息更新。第二异步响应消息为第二服务器与第三服务器之间的异步通信链路中根据异步请求得到的响应消息。第二异步响应消息与异步请求相对应是指第二异步响应消息是根据异步请求的指令内容而反馈的响应消息。由于异步请求与同步请求的指令内容相同,第二异步响应消息的内容即为根据同步请求的指令内容所作出的响应消息。第二服务器接收到异步请求后,并没有向第一服务器发送第一异步响应消息,而是向第三服务器发送第二异步响应消息,该第二异步响应消息包括同步请求的标识信息。第三服务器通过本地的分布式协调组件将第二异步响应消息发送至第四服务器。第四服务器会接收到若干第三服务器发送的第二异步响应消息,第四服务器在数据列表中查询同步请求的标识信息,以查询到在第四服务器注册的同步请求,第四服务器根据注册的同步请求以第二异步响应消息更新数据列表。由于注册的同步请求具有标识信息,第二异步响应消息也包括同步请求的标识信息,因此可以查找到具有相同标识信息的同步请求和第二异步响应消息,并在数据列表中建立同步请求与第二异步响应消息的关联关系,以实现利用第二异步响应消息更新数据列表。第一服务器通过分布式协调组件监控第四服务器的数据列表,当发现数据列表中已经注册的同步请求被第二异步响应消息更新后,第一服务器通过分布式协调组件请求获取该第二异步响应消息,以获取到根据同步请求的指令内容所作出的响应消息。第二同步响应消息为终端与第一服务器之间的同步通信链路中的响应消息。第二同步响应消息与第二异步响应消息相对应是指第二同步响应消息与第二异步响应消息的消息内容相一致,即都为根据相同指令内容而得到的响应消息。第一服务器通过分布式协调组件根据在第四服务器注册的同步请求获取到第二异步响应消息后,将第二同步响应消息通过同步通信链路发送至终端。
在一个示例中,本申请所述的请求处理方法,还包括:响应于所述第一服务器发送的异步请求,向第三服务器发送第三异步响应消息;其中,所述第三异步响应消息与所述异步请求相对应;其中,所述第一服务器通过分布式缓存组件从所述第三服务器订阅获取所述第三异步响应消息,并向所述终端发送第三同步响应消息;其中,所述第三同步响应消息与所述第三异步响应消息相对应。
具体地,第一服务器发送的异步请求包括该同步请求的标识信息,例如同步请求的RPC报文编号。分布式缓存组件是指设于第一服务器和第三服务器并且在第一服务器和第三服务器之间利用订阅机制进行响应消息协调的程序组件。当第一服务器接收到终端发送的同步请求后,通过分布式缓存组件向第四服务器发送订阅信息,该订阅信息包括第一服务器的本地地址且订阅信息用于订阅与异步请求相对应的第三异步响应消息。第三异步响应消息为第二服务器与第三服务器之间的异步通信链路中根据异步请求得到的响应消息。第三异步响应消息与异步请求相对应是指第三异步响应消息是根据异步请求的指令内容而反馈的响应消息。由于异步请求与同步请求的指令内容相同,第三异步响应消息的内容即为根据同步请求的指令内容所作出的响应消息。第二服务器接收到异步请求后,并没有向第一服务器发送第一异步响应消息,而是向第三服务器发送第三异步响应消息,该第三异步响应消息包括同步请求的标识信息。第三服务器通过本地的分布式协调组件将第二异步响应消息发送至第四服务器。第四服务器通过分布式缓存组件根据第三异步响应消息包括的同步请求的标识信息查询到该同步请求的订阅信息并根据该订阅信息的第一服务器的本地地址向第一服务器发送第三异步响应消息。第三同步响应消息为终端与第一服务器之间的同步通信链路中的响应消息。第三同步响应消息与第三异步响应消息相对应是指第三同步响应消息与第三异步响应消息的消息内容相一致,即都为根据相同指令内容而得到的响应消息。第一服务器通过分布式缓存组件从第四服务器订阅获取第三异步响应消息后,将第三同步响应消息通过同步通信链路发送至终端。
图5为本申请第五方面实施例的请求处理方法的流程示意图,如图5所示,本申请第五方面实施例的请求处理方法,应用于第三服务器,该方法包括:
步骤S501,响应于接收到第二服务器发送的第二异步响应消息,通过分布式协调组件向第四服务器发送所述第二异步响应消息。
或者,步骤S502,响应于接收到所述第二服务器发送的第三异步响应消息,通过分布式缓存组件向第四服务器发送所述第三异步响应消息。
其中,所述第二服务器响应于第一服务器发送的异步请求,发送所述第二异步响应消息或所述第三异步响应消息;所述第一服务器响应于终端发送的同步请求,向所述第二服务器发送异步请求;所述异步请求与所述同步请求相对应。
其中,所述第一服务器通过所述分布式协调组件从所述第四服务器监控获取所述第二异步响应消息,或者,所述第一服务器通过所述分布式缓存组件从所述第四服务器订阅获取所述第三异步响应消息;所述第一服务器根据所述同步请求的通信进程向所述终端发送第二同步响应消息或者第三同步响应消息;其中,所述第二同步响应消息与所述第二异步响应消息相对应,所述第三同步响应消息与所述第三异步响应消息相对应。
具体地,第一服务器发送的异步请求包括该同步请求的标识信息,例如同步请求的RPC报文编号。分布式协调组件是指设于第一服务器和第三服务器并且在第一服务器和第三服务器之间利用监控机制进行响应消息协调的程序组件。当第一服务器接收到终端发送的同步请求后,通过分布式协调组件注册该同步请求,分布式协调组件将该同步请求的标识发送至第四服务器,第四服务器将该同步请求的标识存储至数据列表,以完成该同步请求的注册。第一服务器通过分布式协调组件根据该同步请求的标识对第四服务器的数据列表进行监控,监控数据列表是否被第四服务器通过分布式协调组件以第二异步响应消息更新。第二异步响应消息为第二服务器与第三服务器之间的异步通信链路中根据异步请求得到的响应消息。第二异步响应消息与异步请求相对应是指第二异步响应消息是根据异步请求的指令内容而反馈的响应消息。由于异步请求与同步请求的指令内容相同,第二异步响应消息的内容即为根据同步请求的指令内容所作出的响应消息。第二服务器接收到异步请求后,并没有向第一服务器发送第一异步响应消息,而是向第三服务器发送第二异步响应消息,该第二异步响应消息包括同步请求的标识信息。第三服务器通过本地的分布式协调组件将第二异步响应消息发送至第四服务器。第四服务器会接收到若干第三服务器发送的第二异步响应消息,第四服务器在数据列表中查询同步请求的标识信息,以查询到在第四服务器注册的同步请求,第四服务器根据注册的同步请求以第二异步响应消息更新数据列表。由于注册的同步请求具有标识信息,第二异步响应消息也包括同步请求的标识信息,因此可以查找到具有相同标识信息的同步请求和第二异步响应消息,并在数据列表中建立同步请求与第二异步响应消息的关联关系,以实现利用第二异步响应消息更新数据列表。第一服务器通过分布式协调组件监控第四服务器的数据列表,当发现数据列表中已经注册的同步请求被第二异步响应消息更新后,第一服务器通过分布式协调组件请求获取该第二异步响应消息,以获取到根据同步请求的指令内容所作出的响应消息。第二同步响应消息为终端与第一服务器之间的同步通信链路中的响应消息。第二同步响应消息与第二异步响应消息相对应是指第二同步响应消息与第二异步响应消息的消息内容相一致,即都为根据相同指令内容而得到的响应消息。第一服务器通过分布式协调组件根据在第四服务器注册的同步请求获取到第二异步响应消息后,将第二同步响应消息通过同步通信链路发送至终端。分布式缓存组件是指设于第一服务器和第三服务器并且在第一服务器和第三服务器之间利用订阅机制进行响应消息协调的程序组件。当第一服务器接收到终端发送的同步请求后,通过分布式缓存组件向第四服务器发送订阅信息,该订阅信息包括第一服务器的本地地址且订阅信息用于订阅与异步请求相对应的第三异步响应消息。第三异步响应消息为第二服务器与第三服务器之间的异步通信链路中根据异步请求得到的响应消息。第三异步响应消息与异步请求相对应是指第三异步响应消息是根据异步请求的指令内容而反馈的响应消息。由于异步请求与同步请求的指令内容相同,第三异步响应消息的内容即为根据同步请求的指令内容所作出的响应消息。第二服务器接收到异步请求后,并没有向第一服务器发送第一异步响应消息,而是向第三服务器发送第三异步响应消息,该第三异步响应消息包括同步请求的标识信息。第三服务器通过本地的分布式协调组件将第二异步响应消息发送至第四服务器。第四服务器通过分布式缓存组件根据第三异步响应消息包括的同步请求的标识信息查询到该同步请求的订阅信息并根据该订阅信息的第一服务器的本地地址向第一服务器发送第三异步响应消息。第三同步响应消息为终端与第一服务器之间的同步通信链路中的响应消息。第三同步响应消息与第三异步响应消息相对应是指第三同步响应消息与第三异步响应消息的消息内容相一致,即都为根据相同指令内容而得到的响应消息。第一服务器通过分布式缓存组件从第四服务器订阅获取第三异步响应消息后,将第三同步响应消息通过同步通信链路发送至终端。
图6为本申请第六方面实施例的请求处理方法的流程示意图,如图6所示,本申请第六方面实施例的请求处理方法,应用于第四服务器,该方法包括:
步骤S601,响应于第三服务器通过分布式协调组件发送的第二异步响应消息,通过所述分布式协调组件根据第一服务器注册的同步请求以所述第二异步响应消息更新数据列表。
或者,步骤S602,响应于第三服务器通过分布式缓存组件发送的第三异步响应消息,通过所述分布式缓存组件根据所述第三异步响应消息查询到第一服务器的订阅信息并根据所述订阅信息的本地地址发送所述第三异步响应消息。
其中,所述第二异步响应消息或所述第三异步响应消息为第二服务器接收到第一服务器发送的异步请求后,向所述第三服务器发送的;所述异步请求为所述第一服务器接收到终端发送的同步请求后,向所述第二服务器发送的;所述异步请求与所述同步请求相对应。
其中,所述第一服务器通过所述分布式协调组件监控所述数据列表以获取所述第二异步响应消息并向所述终端发送第二同步响应消息,或者,所述第一服务器通过所述分布式缓存组件接收到所述第三异步响应消息并向所述终端发送第三同步响应消息;其中,所述第二同步响应消息与所述第二异步响应消息相对应,所述第三同步响应消息与所述第三异步响应消息相对应。
具体地,第一服务器发送的异步请求包括该同步请求的标识信息,例如同步请求的RPC报文编号。分布式协调组件是指设于第一服务器和第三服务器并且在第一服务器和第三服务器之间利用监控机制进行响应消息协调的程序组件。当第一服务器接收到终端发送的同步请求后,通过分布式协调组件注册该同步请求,分布式协调组件将该同步请求的标识发送至第四服务器,第四服务器将该同步请求的标识存储至数据列表,以完成该同步请求的注册。第一服务器通过分布式协调组件根据该同步请求的标识对第四服务器的数据列表进行监控,监控数据列表是否被第四服务器通过分布式协调组件以第二异步响应消息更新。第二异步响应消息为第二服务器与第三服务器之间的异步通信链路中根据异步请求得到的响应消息。第二异步响应消息与异步请求相对应是指第二异步响应消息是根据异步请求的指令内容而反馈的响应消息。由于异步请求与同步请求的指令内容相同,第二异步响应消息的内容即为根据同步请求的指令内容所作出的响应消息。第二服务器接收到异步请求后,并没有向第一服务器发送第一异步响应消息,而是向第三服务器发送第二异步响应消息,该第二异步响应消息包括同步请求的标识信息。第三服务器通过本地的分布式协调组件将第二异步响应消息发送至第四服务器。第四服务器会接收到若干第三服务器发送的第二异步响应消息,第四服务器在数据列表中查询同步请求的标识信息,以查询到在第四服务器注册的同步请求,第四服务器根据注册的同步请求以第二异步响应消息更新数据列表。由于注册的同步请求具有标识信息,第二异步响应消息也包括同步请求的标识信息,因此可以查找到具有相同标识信息的同步请求和第二异步响应消息,并在数据列表中建立同步请求与第二异步响应消息的关联关系,以实现利用第二异步响应消息更新数据列表。第一服务器通过分布式协调组件监控第四服务器的数据列表,当发现数据列表中已经注册的同步请求被第二异步响应消息更新后,第一服务器通过分布式协调组件请求获取该第二异步响应消息,以获取到根据同步请求的指令内容所作出的响应消息。第二同步响应消息为终端与第一服务器之间的同步通信链路中的响应消息。第二同步响应消息与第二异步响应消息相对应是指第二同步响应消息与第二异步响应消息的消息内容相一致,即都为根据相同指令内容而得到的响应消息。第一服务器通过分布式协调组件根据在第四服务器注册的同步请求获取到第二异步响应消息后,将第二同步响应消息通过同步通信链路发送至终端。分布式缓存组件是指设于第一服务器和第三服务器并且在第一服务器和第三服务器之间利用订阅机制进行响应消息协调的程序组件。当第一服务器接收到终端发送的同步请求后,通过分布式缓存组件向第四服务器发送订阅信息,该订阅信息包括第一服务器的本地地址且订阅信息用于订阅与异步请求相对应的第三异步响应消息。第三异步响应消息为第二服务器与第三服务器之间的异步通信链路中根据异步请求得到的响应消息。第三异步响应消息与异步请求相对应是指第三异步响应消息是根据异步请求的指令内容而反馈的响应消息。由于异步请求与同步请求的指令内容相同,第三异步响应消息的内容即为根据同步请求的指令内容所作出的响应消息。第二服务器接收到异步请求后,并没有向第一服务器发送第一异步响应消息,而是向第三服务器发送第三异步响应消息,该第三异步响应消息包括同步请求的标识信息。第三服务器通过本地的分布式协调组件将第二异步响应消息发送至第四服务器。第四服务器通过分布式缓存组件根据第三异步响应消息包括的同步请求的标识信息查询到该同步请求的订阅信息并根据该订阅信息的第一服务器的本地地址向第一服务器发送第三异步响应消息。第三同步响应消息为终端与第一服务器之间的同步通信链路中的响应消息。第三同步响应消息与第三异步响应消息相对应是指第三同步响应消息与第三异步响应消息的消息内容相一致,即都为根据相同指令内容而得到的响应消息。第一服务器通过分布式缓存组件从第四服务器订阅获取第三异步响应消息后,将第三同步响应消息通过同步通信链路发送至终端。
根据本申请实施例的第七方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储指令,所述指令根据本申请图1至图6所示的请求处理方法进行执行。
根据本申请实施例的第八方面,提供一种服务器,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行如本申请图1至图6所示请求处理方法的操作。
图7为本申请的第一服务器的结构示意图,如图7所示,第一服务器71包括:请求模块711、消息队列模块712、通信线程模块713和第一响应模块714。
请求模块711,用于响应于终端发送的同步请求,向第二服务器发送异步请求;其中,所述异步请求与所述同步请求相对应。
消息队列模块712,用于在本地消息队列注册所述同步请求。
通信线程模块713,用于若接收到所述第二服务器发送的第一异步响应消息,则根据在所述本地消息队列注册的所述同步请求查询到所述同步请求的通信线程;其中,所述第一异步响应消息与所述异步请求相对应。
第一响应模块714,用于根据所述同步请求的通信线程向所述终端发送第一同步响应消息;其中,所述第一同步响应消息与所述第一异步响应消息相对应。
第一服务器71还包括:第一分布式协调组件模块715。
第一分布式协调组件模块715用于:响应于终端发送的同步请求,通过分布式协调组件在第四服务器注册所述同步请求;通过所述分布式协调组件监控所述第四服务器的数据列表;其中,所述第四服务器通过所述分布式协调组件从第三服务器接收与所述异步请求相对应的第二异步响应消息,并通过所述分布式协调组件根据所述注册的所述同步请求以所述第二异步响应消息更新所述数据列表,其中,所述第二异步响应消息是所述第三服务器从所述第二服务器接收的;若所述数据列表被所述第四服务器通过所述分布式协调组件以所述第二异步响应消息更新,则通过所述分布式协调组件从所述第四服务器获取所述第二异步响应消息。
第一响应模块714还用于:向所述终端发送第二同步响应消息;其中,所述第二同步响应消息与所述第二异步响应消息相对应。
第一服务器71还包括:第一分布式缓存组件模块716。
第一分布式缓存组件模块716用于:响应于终端发送的同步请求,根据所述同步请求通过分布式缓存组件向第四服务器发送订阅信息,所述订阅信息包括本地地址且所述订阅信息用于订阅与所述异步请求相对应的第三异步响应消息;其中,所述第四服务器通过所述分布式缓存组件从第三服务器接收所述第三异步响应消息,其中,所述第三异步响应消息是所述第三服务器从所述第二服务器接收的,其中,所述第四服务器通过所述分布式缓存组件根据所述第三异步响应消息查询到所述订阅信息并根据所述订阅信息的所述本地地址发送所述第三异步响应消息;
第一响应模块714还用于:若接收到所述第四服务器通过所述分布式缓存组件发送的所述第三异步响应消息,则向所述终端发送第三同步响应消息;其中,所述第三同步响应消息与所述第三异步响应消息相对应。
图8为本申请的第二服务器的结构示意图,如图8所示,第二服务器72包括:第二响应模块721。
第二响应模块721用于:响应于第一服务器发送的异步请求,向所述第一服务器发送第一异步响应消息;其中,所述第一异步响应消息与所述异步请求相对应;其中,所述第一服务器根据终端发送的同步请求发送所述异步请求,所述异步请求与所述同步请求相对应,所述第一服务器接收到所述第一异步响应消息后,根据所述同步请求的通信线程向所述终端发送第一同步响应消息;其中,所述第一同步响应消息与所述第一异步响应消息相对应。
或者,第二响应模块721用于:响应于所述第一服务器发送的异步请求,向第三服务器发送第二异步响应消息;其中,所述第二异步响应消息与所述异步请求相对应;其中,所述第一服务器通过分布式协调组件从所述第三服务器监控获取所述第二异步响应消息,并向所述终端发送第二同步响应消息;其中,所述第二同步响应消息与所述第二异步响应消息相对应。
或者,第二响应模块721用于:响应于所述第一服务器发送的异步请求,向第三服务器发送第三异步响应消息;其中,所述第三异步响应消息与所述异步请求相对应;其中,所述第一服务器通过分布式缓存组件从所述第三服务器订阅获取所述第三异步响应消息,并向所述终端发送第三同步响应消息;其中,所述第三同步响应消息与所述第三异步响应消息相对应。
图9为本申请的第三服务器的结构示意图,如图9所示,第三服务器73包括:第二分布式协调组件模块731或第二分布式缓存组件模块732。
第二分布式协调组件模块731,用于响应于接收到第二服务器发送的第二异步响应消息,通过分布式协调组件向第四服务器发送所述第二异步响应消息。
第二分布式缓存组件模块732,用于响应于接收到所述第二服务器发送的第三异步响应消息,通过分布式缓存组件向第四服务器发送所述第三异步响应消息。
其中,所述第二服务器响应于第一服务器发送的异步请求,发送所述第二异步响应消息或所述第三异步响应消息;所述第一服务器响应于终端发送的同步请求,向所述第二服务器发送异步请求;所述异步请求与所述同步请求相对应。
其中,所述第一服务器通过所述分布式协调组件从所述第四服务器监控获取所述第二异步响应消息,或者,所述第一服务器通过所述分布式缓存组件从所述第四服务器订阅获取所述第三异步响应消息;所述第一服务器根据所述同步请求的通信进程向所述终端发送第二同步响应消息或者第三同步响应消息;其中,所述第二同步响应消息与所述第二异步响应消息相对应,所述第三同步响应消息与所述第三异步响应消息相对应。
图10为本申请的第四服务器的结构示意图,如图10所示,第四服务器74包括:第三分布式协调组件模块741或第三分布式缓存组件模块742。
第三分布式协调组件模块741,用于响应于第三服务器通过分布式协调组件发送的第二异步响应消息,通过所述分布式协调组件根据第一服务器注册的同步请求以所述第二异步响应消息更新数据列表。
第三分布式缓存组件模块742,用于响应于第三服务器通过分布式缓存组件发送的第三异步响应消息,通过所述分布式缓存组件根据所述第三异步响应消息查询到第一服务器的订阅信息并根据所述订阅信息的本地地址发送所述第三异步响应消息。
其中,所述第二异步响应消息或所述第三异步响应消息为第二服务器接收到第一服务器发送的异步请求后,向所述第三服务器发送的;所述异步请求为所述第一服务器接收到终端发送的同步请求后,向所述第二服务器发送的;所述异步请求与所述同步请求相对应。
其中,所述第一服务器通过所述分布式协调组件监控所述数据列表以获取所述第二异步响应消息并向所述终端发送第二同步响应消息,或者,所述第一服务器通过所述分布式缓存组件接收到所述第三异步响应消息并向所述终端发送第三同步响应消息;其中,所述第二同步响应消息与所述第二异步响应消息相对应,所述第三同步响应消息与所述第三异步响应消息相对应。
图11为本申请的第一服务器、第二服务器、第三服务器和第四服务器的连接示意图,图12为本申请的请求处理方法的原理示意图,如图11和12所示,本申请实施例的请求处理方法的具体原理为:
第一服务器与终端建立同步通信链路并接收同步请求后,与第二服务器建立异步通信链路并向第二服务器发送与同步请求的指令内容相一致的异步请求。
第二服务器接收到异步请求后,向第一服务器直接返回第一异步响应消息,或者,与第三服务器建立异步通信链接后向第三服务器发送根据第一服务发送的异步请求的指令内容而得到的异步响应消息。第三服务器接收该异步响应消息。根据第一服务器和第三服务器预先设有的分布式协调组件或者分布式缓存组件,将该异步响应消息区分为第二异步响应消息或第三异步响应消息。第一服务器通过分布式协调组件监控获取第三服务器的第二异步响应消息,或者,第一服务器通过分布式缓存组件订阅获取第三服务器的第三异步响应消息。
第一服务器获取第一异步响应消息、第二异步响应消息或第三异步响应消息后,根据之前与终端建立的同步通信链路,向终端返回第一同步响应消息、第二同步响应消息或第三同步响应消息。其中,第一异步响应消息、第二异步响应消息或第三异步响应消息均为第二服务器根据异步请求的指令内容发送的用于反馈的响应消息,由于异步请求与同步请求的指令内容一致,所以第一异步响应消息、第二异步响应消息或第三异步响应消息均为针对同步请求的指令内容得到的响应消息。由于终端与第一服务器在同步通信链路下通信,因此,需要把第一异步响应消息、第二异步响应消息或第三异步响应消息转换为同步通信链路下的第一同步响应消息、第二同步响应消息或第三同步响应消息,由此终端获取到针对同步请求的响应消息。
对于第二服务器向第一服务器直接返回第一异步响应消息的情况,被称为单点同请异返。单点同请异返的情况,需要根据同步请求的通信线程对第一服务器与终端之间的同步通信链路进行控制。
对于第二服务器向第三服务器发送异步响应消息,第一服务器从第三服务器获取第二异步响应消息或第三异步响应消息的情况,被称为多点同请异返。多点同请异返的情况,需要根据同步请求的通信进程对第一服务器与终端之间的同步通信链路以及第一服务器与第三服务器之间的异步通信链路进行控制。第一服务器与第三服务器之间的异步通信链路可通过分布式协调组件或者分布式缓存组件实现。
第四服务器用于支持分布式协调组件或者分布式缓存组件,以实现第一服务器与第三服务器通过异步通信链路获取第二异步响应消息或第三异步响应消息。分布式协调组件通过监控数据列表的方式,使第一服务器获取第三服务器的第二异步响应消息。分布式缓存组件通过订阅异步响应消息的方式,使第一服务器获取第三服务器的第三异步响应消息。
在分布式集群环境下,第二服务器既可以直接向第一服务器发送异步响应消息,也可以通过第三服务器向第一服务器发送异步响应消息,可以满足灵活配置需求,并且满足实时性要求很高的使用场景需求。
本发明所指终端包括但不限于任何一种可与用户进行人机交互(例如通过触摸板进行人机交互)的电子产品,例如智能手机、平板电脑等移动电子产品,所述移动电子产品可以采用任意操作系统,如android操作系统、iOS操作系统等。其中,所述服务器包括一种能够按照事先设定或存储的指令,自动进行数值计算和信息处理的电子设备,其硬件包括但不限于微处理器、专用集成电路(ASIC)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、嵌入式设备等。所述服务器包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云;在此,云由基于云计算(Cloud Computing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个虚拟超级计算机。所述网络包括但不限于互联网、广域网、城域网、局域网、VPN网络、无线自组织网络(Ad Hoc网络)等。优选地,所述终端和服务器还可以是运行于所述终端、服务器、或终端与服务器过网络相集成所构成的设备上的程序。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。而调用本申请的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本申请的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
Claims (19)
1.一种请求处理方法,其特征在于,包括:
响应于终端发送的同步请求,向第二服务器发送异步请求;其中,所述异步请求与所述同步请求相对应;
在本地消息队列注册所述同步请求;
若接收到所述第二服务器发送的第一异步响应消息,则根据在所述本地消息队列注册的所述同步请求查询到所述同步请求的通信线程;其中,所述第一异步响应消息与所述异步请求相对应;
根据所述同步请求的通信线程向所述终端发送第一同步响应消息;其中,所述第一同步响应消息与所述第一异步响应消息相对应。
2.根据权利要求1所述的请求处理方法,其特征在于,所述向第二服务器发送异步请求之后,还包括:
若在第一预设时间段内未接收到所述第二服务器发送的所述第一异步响应消息,结束所述同步请求的通信线程。
3.根据权利要求1或2所述的请求处理方法,其特征在于,还包括:
响应于所述终端发送的同步请求,通过分布式协调组件在第四服务器注册所述同步请求;
通过所述分布式协调组件监控所述第四服务器的数据列表;其中,所述第四服务器通过所述分布式协调组件从第三服务器接收与所述异步请求相对应的第二异步响应消息,并通过所述分布式协调组件根据所述注册的所述同步请求以所述第二异步响应消息更新所述数据列表,其中,所述第二异步响应消息是所述第三服务器从所述第二服务器接收的;
若所述数据列表被所述第四服务器通过所述分布式协调组件以所述第二异步响应消息更新,则通过所述分布式协调组件从所述第四服务器获取所述第二异步响应消息;
向所述终端发送第二同步响应消息;其中,所述第二同步响应消息与所述第二异步响应消息相对应。
4.根据权利要求3所述的请求处理方法,其特征在于,在向第二服务器发送异步请求之后,还包括:
若在第二预设时间段内所述数据列表未被所述第二异步响应消息更新,则结束所述同步请求的通信线程。
5.根据权利要求3所述的请求处理方法,其特征在于,所述向所述终端发送第二同步响应消息,包括:
根据在所述本地消息队列注册的所述同步请求查询到所述同步请求的通信进程;
根据所述同步请求的通信进程向所述终端发送第二同步响应消息。
6.根据权利要求1或2所述的请求处理方法,其特征在于,还包括:
响应于所述终端发送的同步请求,根据所述同步请求通过分布式缓存组件向第四服务器发送订阅信息,所述订阅信息包括本地地址且所述订阅信息用于订阅与所述异步请求相对应的第三异步响应消息;其中,所述第四服务器通过所述分布式缓存组件从第三服务器接收所述第三异步响应消息,其中,所述第三异步响应消息是所述第三服务器从所述第二服务器接收的,其中,所述第四服务器通过所述分布式缓存组件根据所述第三异步响应消息查询到所述订阅信息并根据所述订阅信息的所述本地地址发送所述第三异步响应消息;
若接收到所述第四服务器通过所述分布式缓存组件发送的所述第三异步响应消息,则向所述终端发送第三同步响应消息;其中,所述第三同步响应消息与所述第三异步响应消息相对应。
7.根据权利要求6所述的请求处理方法,其特征在于,所述向第二服务器发送异步请求之后,还包括:
若在第三预设时间段内未接收到所述第四服务器通过所述分布式缓存组件发送的所述第三异步响应消息,则结束所述同步请求的通信线程。
8.根据权利要求6或7所述的请求处理方法,其特征在于,所述向所述终端发送第三同步响应消息,包括:
根据在所述本地消息队列注册的所述同步请求查询到所述同步请求的通信进程;
根据所述同步请求的通信进程向所述终端发送第三同步响应消息。
9.一种请求处理方法,其特征在于,包括:
响应于终端发送的同步请求,向第二服务器发送异步请求;其中,所述异步请求与所述同步请求相对应;
通过分布式协调组件在第四服务器注册所述同步请求;
通过所述分布式协调组件监控所述第四服务器的数据列表;其中,所述第四服务器通过所述分布式协调组件从第三服务器接收与所述异步请求相对应的第二异步响应消息,并通过所述分布式协调组件根据所述注册的所述同步请求以所述第二异步响应消息更新所述数据列表,其中,所述第二异步响应消息是所述第三服务器从所述第二服务器接收的;
若所述数据列表被所述第四服务器通过所述分布式协调组件以所述第二异步响应消息更新,则通过所述分布式协调组件从所述第四服务器获取所述第二异步响应消息;
向所述终端发送第二同步响应消息;其中,所述第二同步响应消息与所述第二异步响应消息相对应。
10.根据权利要求9所述的请求处理方法,其特征在于,还包括:
在本地消息队列注册所述同步请求;
若接收到所述第二服务器发送的第一异步响应消息,则根据在所述本地消息队列注册的所述同步请求查询到所述同步请求的通信线程;其中,所述第一异步响应消息与所述异步请求相对应;
根据所述同步请求的通信线程向所述终端发送第一同步响应消息;其中,所述第一同步响应消息与所述第一异步响应消息相对应。
11.一种请求处理方法,其特征在于,包括:
响应于终端发送的同步请求,向第二服务器发送异步请求;其中,所述异步请求与所述同步请求相对应;
根据所述同步请求通过分布式缓存组件向第四服务器发送订阅信息,所述订阅信息包括本地地址且所述订阅信息用于订阅与所述异步请求相对应的第三异步响应消息;其中,所述第四服务器通过所述分布式缓存组件从第三服务器接收所述第三异步响应消息,其中,所述第三异步响应消息是所述第三服务器从所述第二服务器接收的,其中,所述第四服务器通过所述分布式缓存组件根据所述第三异步响应消息查询到所述订阅信息并根据所述订阅信息的所述本地地址发送所述第三异步响应消息;
若接收到所述第四服务器通过所述分布式缓存组件发送的所述第三异步响应消息,则向所述终端发送第三同步响应消息;其中,所述第三同步响应消息与所述第三异步响应消息相对应。
12.根据权利要求11所述的请求处理方法,其特征在于,还包括:
在本地消息队列注册所述同步请求;
若接收到所述第二服务器发送的第一异步响应消息,则根据在所述本地消息队列注册的所述同步请求查询到所述同步请求的通信线程;其中,所述第一异步响应消息与所述异步请求相对应;
根据所述同步请求的通信线程向所述终端发送第一同步响应消息;其中,所述第一同步响应消息与所述第一异步响应消息相对应。
13.一种请求处理方法,其特征在于,包括:
响应于第一服务器发送的异步请求,向所述第一服务器发送第一异步响应消息;其中,所述第一异步响应消息与所述异步请求相对应;其中,所述第一服务器根据终端发送的同步请求发送所述异步请求,所述异步请求与所述同步请求相对应,所述第一服务器接收到所述第一异步响应消息后,根据所述同步请求的通信线程向所述终端发送第一同步响应消息;其中,所述第一同步响应消息与所述第一异步响应消息相对应。
14.根据权利要求13所述的请求处理方法,其特征在于,还包括:
响应于所述第一服务器发送的异步请求,向第三服务器发送第二异步响应消息;其中,所述第二异步响应消息与所述异步请求相对应;其中,所述第一服务器通过分布式协调组件从所述第三服务器监控获取所述第二异步响应消息,并向所述终端发送第二同步响应消息;其中,所述第二同步响应消息与所述第二异步响应消息相对应。
15.根据权利要求13所述的请求处理方法,其特征在于,还包括:
响应于所述第一服务器发送的异步请求,向第三服务器发送第三异步响应消息;其中,所述第三异步响应消息与所述异步请求相对应;其中,所述第一服务器通过分布式缓存组件从所述第三服务器订阅获取所述第三异步响应消息,并向所述终端发送第三同步响应消息;其中,所述第三同步响应消息与所述第三异步响应消息相对应。
16.一种请求处理方法,其特征在于,包括:
响应于接收到第二服务器发送的第二异步响应消息,通过分布式协调组件向第四服务器发送所述第二异步响应消息;
或者,响应于接收到所述第二服务器发送的第三异步响应消息,通过分布式缓存组件向第四服务器发送所述第三异步响应消息;
其中,所述第二服务器响应于第一服务器发送的异步请求,发送所述第二异步响应消息或所述第三异步响应消息;所述第一服务器响应于终端发送的同步请求,向所述第二服务器发送异步请求;所述异步请求与所述同步请求相对应;
其中,所述第一服务器通过所述分布式协调组件从所述第四服务器监控获取所述第二异步响应消息,或者,所述第一服务器通过所述分布式缓存组件从所述第四服务器订阅获取所述第三异步响应消息;所述第一服务器根据所述同步请求的通信进程向所述终端发送第二同步响应消息或者第三同步响应消息;其中,所述第二同步响应消息与所述第二异步响应消息相对应,所述第三同步响应消息与所述第三异步响应消息相对应。
17.一种请求处理方法,其特征在于,包括:
响应于第三服务器通过分布式协调组件发送的第二异步响应消息,通过所述分布式协调组件根据第一服务器注册的同步请求以所述第二异步响应消息更新数据列表;
或者,响应于第三服务器通过分布式缓存组件发送的第三异步响应消息,通过所述分布式缓存组件根据所述第三异步响应消息查询到第一服务器的订阅信息并根据所述订阅信息的本地地址发送所述第三异步响应消息;
其中,所述第二异步响应消息或所述第三异步响应消息为第二服务器接收到第一服务器发送的异步请求后,向所述第三服务器发送的;所述异步请求为所述第一服务器接收到终端发送的同步请求后,向所述第二服务器发送的;所述异步请求与所述同步请求相对应;
其中,所述第一服务器通过所述分布式协调组件监控所述数据列表以获取所述第二异步响应消息并向所述终端发送第二同步响应消息,或者,所述第一服务器通过所述分布式缓存组件接收到所述第三异步响应消息并向所述终端发送第三同步响应消息;其中,所述第二同步响应消息与所述第二异步响应消息相对应,所述第三同步响应消息与所述第三异步响应消息相对应。
18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储指令,所述指令根据权利要求1至17中任一项所述的请求处理方法进行执行。
19.一种服务器,其特征在于,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行如权利要求1至17中任一项所述请求处理方法的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810846454.9A CN109150988A (zh) | 2018-07-27 | 2018-07-27 | 一种请求处理方法及其服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810846454.9A CN109150988A (zh) | 2018-07-27 | 2018-07-27 | 一种请求处理方法及其服务器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109150988A true CN109150988A (zh) | 2019-01-04 |
Family
ID=64798182
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810846454.9A Pending CN109150988A (zh) | 2018-07-27 | 2018-07-27 | 一种请求处理方法及其服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109150988A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114679429A (zh) * | 2022-03-29 | 2022-06-28 | 深圳信息职业技术学院 | 一种基于多云容器平台的业务跨区响应方法 |
CN115334066A (zh) * | 2022-10-13 | 2022-11-11 | 飞天诚信科技股份有限公司 | 一种分布式集群系统及其处理同步请求响应的方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040010510A1 (en) * | 2002-07-10 | 2004-01-15 | Timo Hotti | Method and system for database synchronization |
CN102375955A (zh) * | 2010-08-17 | 2012-03-14 | 伊姆西公司 | 网络文件系统联合命名空间内文件加锁的系统与方法 |
CN107590072A (zh) * | 2017-08-30 | 2018-01-16 | 深圳乐信软件技术有限公司 | 一种应用开发和测试的方法和装置 |
CN108319508A (zh) * | 2017-01-18 | 2018-07-24 | 中国移动通信集团公司 | Http同步请求转为异步处理的方法及服务器 |
-
2018
- 2018-07-27 CN CN201810846454.9A patent/CN109150988A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040010510A1 (en) * | 2002-07-10 | 2004-01-15 | Timo Hotti | Method and system for database synchronization |
CN102375955A (zh) * | 2010-08-17 | 2012-03-14 | 伊姆西公司 | 网络文件系统联合命名空间内文件加锁的系统与方法 |
CN108319508A (zh) * | 2017-01-18 | 2018-07-24 | 中国移动通信集团公司 | Http同步请求转为异步处理的方法及服务器 |
CN107590072A (zh) * | 2017-08-30 | 2018-01-16 | 深圳乐信软件技术有限公司 | 一种应用开发和测试的方法和装置 |
Non-Patent Citations (2)
Title |
---|
LEOBASIC: "同步转异步+RPC的⼀个POS⾏业应⽤-关键技术实现", 《HTTPS://WWW.ITEYE.COM/BLOG/JUST2DO-2177004》 * |
进击的皇虫: "分布式Java(Distributed Java)", 《HTTPS://WWW.BOOKSTACK.CN/BOOKS/DISTRIBUTED-JAVA》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114679429A (zh) * | 2022-03-29 | 2022-06-28 | 深圳信息职业技术学院 | 一种基于多云容器平台的业务跨区响应方法 |
CN114679429B (zh) * | 2022-03-29 | 2023-02-03 | 深圳信息职业技术学院 | 一种基于多云容器平台的业务跨区响应方法 |
CN115334066A (zh) * | 2022-10-13 | 2022-11-11 | 飞天诚信科技股份有限公司 | 一种分布式集群系统及其处理同步请求响应的方法 |
CN115334066B (zh) * | 2022-10-13 | 2023-02-24 | 飞天诚信科技股份有限公司 | 一种分布式集群系统及其处理同步请求响应的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107079050B (zh) | 服务层会话迁移和共享 | |
EP2812801B1 (en) | Application context transfer for distributed computing resources | |
CN103581245A (zh) | 一种内容分发网络内容分发的方法及系统 | |
EP2648137A2 (en) | Generic reasoner distribution method | |
CN107493191B (zh) | 一种集群节点及自调度容器集群系统 | |
US8606908B2 (en) | Wake-up server | |
US20110161961A1 (en) | Method and apparatus for optimized information transmission using dedicated threads | |
CN112165413B (zh) | 设备状态上报方法及装置、电子装置 | |
CN102394880A (zh) | 内容分发网络中的跳转响应处理方法和设备 | |
US11218371B2 (en) | Method and apparatus for performing communication in internet of things | |
CN109150988A (zh) | 一种请求处理方法及其服务器 | |
CN105164989A (zh) | 减少服务器-客户端会话的数目 | |
CN109788301A (zh) | 一种流媒体的直播方法、终端设备、直播系统及计算机可读存储介质 | |
CN114710571B (zh) | 数据包处理系统 | |
Kothari et al. | Dqs-cloud: A data quality-aware autonomic cloud for sensor services | |
CN110365786A (zh) | 作业处理系统、异步作业调度方法和计算机设备 | |
CN107294911A (zh) | 一种数据包监听方法及装置、远程过程调用系统、设备 | |
WO2018132557A1 (en) | Dynamic protocol switching | |
CN102902593B (zh) | 基于缓存机制的协议分发处理系统 | |
CN116915827A (zh) | 物联网边缘网关的数据传输方法、装置、电子设备及介质 | |
CN113542424A (zh) | 数据处理方法、装置、设备及计算机程序产品 | |
JP2017220720A (ja) | 通信監視装置および通信監視方法 | |
US11337041B2 (en) | Methods and apparatus for distributing publish-subscribe messages | |
WO2018010420A1 (zh) | 一种无线网络接入方法、设备、终端、系统、存储介质 | |
US9667512B2 (en) | Providing and resolving an IP address for swarm-based services |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190104 |