请求处理方法与请求处理装置制造方法
【专利摘要】本发明提供了一种请求处理方法和一种请求处理装置,其中,所述请求处理方法,包括:通过所述服务器的应用层的应用接口接收来自终端的请求;根据所述请求中包括的服务系统信息,从所述服务器的多个子服务系统中调用目标子服务系统以处理所述请求,其中,所述多个子服务系统互相独立,且所述目标子服务系统为所述多个子服务系统中的至少一个子服务系统。通过本发明的技术方案,可以打破数据集成模式,不再以数据为中心集成各个子系统,以减少各个子系统的代码,提高子系统的维护效率、安全性和扩展性。
【专利说明】请求处理方法与请求处理装置
【技术领域】
[0001]本发明涉及请求处理【技术领域】,具体而言,涉及一种请求处理方法和一种请求处理装置。
【背景技术】
[0002]目前的系统一般都采用数据集成,而数据集成是一种比较传统的系统集成方式,其中心是数据。比如交易系统会操作订单表和用户表以生成订单。而短信通知系统也会访问订单表和用户表,根据订单的状态来发出不同的短信以通知不同的用户:比如给金额较大的订单对应的用户发一些促销活动短信,给一些未完成订单的用户发短信提醒其完成订单。这就是一种数据集成方式,但交易系统和短信通知系统均依靠订单表和用户表进行集成,这种集成方式的优点在于实现简单,缺点在于:
[0003]因为多个系统都访问同一个数据库的同几张表,因此,业务数据库负担较大;
[0004]安全性差:每个系统都以HTTP (Hyper Text Transfer Protocol,超文本传输协议)方式将接口暴露在外,接口的安全性较差;
[0005]扩展性问题:交易系统如果以后想把订单表从RDBMS (Relat1nal DatabaseManagement System)迀走可能就没那么容易了,因为还有很多其他系统也依赖该订单表,真可谓牵一发而动全身;或者各个系统可能擅自做主给表增减字段,而带来不好后果;
[0006]代码重复:如果交易系统和短信通知系统由两个不同部门的团队开发,那么每个系统中都会有针对订单表和用户表的Dao (Data Access Object,数据访问对象)、Cache (高级缓冲存储器)、Service (服务)代码。
[0007]总之,现有的数据集成的代码庞杂,理解困难,新人上手也困难;维护困难,需要维护的人多,团队管理成本高,且团队效率越低;系统启动一般较慢;持续部署困难:每一次小改动都需要重新部署整个应用;技术堆栈固化:尝试新技术的代价太高;扩展困难:应用某些部分偏10密集型、某些部分却偏CPU密集型,但应用却只部署在一台机器上,很难用单一硬件来满足应用各部分对硬件资源的不同要求。
[0008]因此,如何打破数据集成模式,不再以数据为中心集成各个子系统,以减少各个子系统的代码,提高子系统的维护效率、安全性和扩展性,成为亟待解决的问题。
【发明内容】
[0009]本发明正是基于上述技术问题,提出了一种新的技术方案,可以打破数据集成模式,不再以数据为中心集成各个子系统,以减少各个子系统的代码,提高子系统的维护效率、安全性和扩展性。
[0010]有鉴于此,本发明的一方面提出了一种请求处理方法,用于服务器,包括:通过所述服务器的应用层的应用接口接收来自终端的请求;根据所述请求中包括的服务系统信息,从所述服务器的多个子服务系统中调用目标子服务系统以处理所述请求,其中,所述多个子服务系统互相独立,且所述目标子服务系统为所述多个子服务系统中的至少一个子服务系统。
[0011]在该技术方案中,由于服务器中的多个子服务系统互相独立,没有耦合,因此,月艮务器的应用层的应用接口接收到终端的请求后,会根据请求中包括的服务系统信息,从服务器的多个子服务系统中调用一个或多个相互独立的子服务系统即目标子服务系统,以快速响应该请求,提高用户的使用体验;且由于多个子服务系统互相独立,没有存储相互关联的数据,是一个可独立部署的完整系统,因此,服务器在接收到不同的请求并调用不同的子系统时,不会牵连到其他子系统,这可以打破数据集成模式,使各个子系统不再以数据为中心集成,另外,由于各个子系统是独立编码的,代码量少而简单,因此,通过本发明可以提高子系统的维护效率和扩展性。例如:原工作圈服务都放到一个web工程,通过本发明则可以将其拆分成圈子系统、关系系统、评论系统、赞系统、通知系统、账户系统、设置系统等,而各个子系统则可以独立地对外提供服务,通过应用层组装即可对外提供服务。
[0012]在上述技术方案中,优选地,所述服务器包括配置中心,用于将所述服务系统信息与所述多个子服务系统中的每个子服务系统的配置信息对应存储,所述配置信息包括:每个所述子服务系统的网络协议地址、每个所述子服务系统的远程过程调用协议接口、每个所述子服务系统的路径、每个所述子服务系统的路径下的服务列表中的至少一种信息,所述服务系统信息包括所述目标子服务系统的路径和/或所述目标子服务系统的服务列表,以及,所述多个子服务系统中的每个子服务系统均包括远程过程调用协议接口。
[0013]在该技术方案中,配置中心通过将每个子服务系统的配置信息和终端的服务系统信息封装后进行对应存储,便于根据终端的请求为终端快速地、准确地调用不同的子服务系统,同时,也便于在服务器的子服务系统的配置信息发生变化(如配置中心中的某些子服务系统的配置信息被删除或配置中心中被新增了其他子服务系统的配置信息)时,及时地向终端推送通知信息,以使终端及时地删除缓存中存储的这些子服务系统的服务系统信息或向缓存中添加新增的子服务系统的服务系统信息。
[0014]在上述技术方案中,优选地,所述从所述服务器的多个子服务系统中调用目标子服务系统以处理所述请求,具体包括:所述应用层接收到所述请求后,将所述请求发送至所述配置中心,所述配置中心根据所述请求中的服务系统信息和每个所述子服务系统的配置信息确定所述目标子服务系统;所述配置中心在确定所述目标子服务系统后,通知所述应用层所述目标子服务系统,以使所述应用层通过所述目标子服务系统的远程过程调用协议接口调用所述目标子服务系统,以使所述目标子服务服务系统处理所述请求。
[0015]在该技术方案中,应用层在接收到终端的请求且获取到该请求对应的目标子服务系统后,会通过目标子服务系统中的每个子服务系统的RPC(Remote Procedure CallProtocol,远程过程调用协议)接口调用这些目标子服务系统,以响应终端的请求,其中,RPC接口为Avro (数据序列化的接口);Thrift (数据类型和服务接口);Spring_rmi (远程方法调用接口)等。
[0016]在上述技术方案中,优选地,还包括:所述配置中心按照预定周期向所述多个子服务系统中的每个子服务系统发送“心跳”请求,并判断在第一预设时间内是否接收到来自每个所述子服务系统的“心跳”响应,若判断在第一所述预设时间内未接收到来自任一所述子服务系统的“心跳”响应,则统计在第二预设时间内连续未接收到任一所述子服务系统的“心跳”响应的次数,并在所述次数大于预设次数时,所述配置中心删除任一所述子服务系统的配置信息;以及所述配置中心在删除任一所述子服务系统的配置信息后,通知所述终端,以使所述终端删除与所述配置信息相对应的所述服务系统信息。
[0017]在该技术方案中,配置中心会按照预定周期向多个子服务系统中的每个子服务系统发送“心跳”请求,以判断每个子服务系统的状态是否异常,如果任一子服务系统在第一预设时间内没有响应配置中心的“心跳”请求,并在第二预设时间内连续多次没有响应配置中心的“心跳”请求,则配置中心将判断该子服务系统的状态异常,会自动删除该子服务系统的配置信息,并通知终端该子服务系统已被移除,以使终端也从本地缓存中删除与该配置信息相对应的服务系统信息,避免再次向服务器发送使该子服务系统处理请求的请求信息。另外,由于每个子服务系统互相独立,没有存储相互关联的数据,是一个可独立部署的完整系统,因此,配置中心在删除该配置信息相对应的服务系统信息,也不会影响到其它子服务系统,避免出现牵一发而动全身的情况。
[0018]在上述技术方案中,优选地,还包括:所述配置中心在接收到配置信息添加命令时,添加新的配置信息,并通知所述终端,以使所述终端添加与所述新的配置信息相对应的新的服务系统信息。
[0019]在该技术方案中,由于每个子服务系统互相独立,因此,开发者可以自由地向配置中心中添加要新增的子服务系统的配置信息,而配置中心在添加新的配置信息后,会及时地通知终端,服务器在接收到该请求后,会将与该新增的配置信息相对应的新的服务系统信息添加到本地缓存中,这样,终端再次向服务器发送请求时,就会按照预设算法从包括该新的服务系统信息的本地缓存中选择相应的服务系统信息,然后使终端调用与该服务系统信息相对应的目标子服务系统,以快速响应该请求。另外,由于每个子服务系统互相独立,代码量很少,因此便于升级、维护,且开发者也可以根据实际情况使用不同的编程语言编写不同的子服务系统。
[0020]本发明的另一方面提出了一种请求处理装置,用于服务器,包括:接收单元,通过所述服务器的应用层的应用接口接收来自终端的请求;调用单元,根据所述请求中包括的服务系统信息,从所述服务器的多个子服务系统中调用目标子服务系统以处理所述请求,其中,所述多个子服务系统互相独立,且所述目标子服务系统为所述多个子服务系统中的至少一个子服务系统。
[0021]在该技术方案中,由于服务器中的多个子服务系统互相独立,没有耦合,因此,月艮务器的应用层的应用接口接收到终端的请求后,会根据请求中包括的服务系统信息,从服务器的多个子服务系统中调用一个或多个相互独立的子服务系统即目标子服务系统,以快速响应该请求,提高用户的使用体验;且由于多个子服务系统互相独立,没有存储相互关联的数据,是一个可独立部署的完整系统,因此,服务器在接收到不同的请求并调用不同的子系统时,不会牵连到其他子系统,这可以打破数据集成模式,使各个子系统不再以数据为中心集成,另外,由于各个子系统是独立编码的,代码量少而简单,因此,通过本发明可以提高子系统的维护效率和扩展性。例如:原工作圈服务都放到一个web工程,通过本发明则可以将其拆分成圈子系统、关系系统、评论系统、赞系统、通知系统、账户系统、设置系统等,而各个子系统则可以独立地对外提供服务,通过应用层组装即可对外提供服务。
[0022]在上述技术方案中,优选地,所述服务器包括配置中心,用于将所述服务系统信息与所述多个子服务系统中的每个子服务系统的配置信息对应存储,其中,所述配置信息包括:每个所述子服务系统的网络协议地址、每个所述子服务系统的远程过程调用协议接口、每个所述子服务系统的路径、每个所述子服务系统的路径下的服务列表中的至少一种信息,所述服务系统信息包括所述目标子服务系统的路径和/或所述目标子服务系统的服务列表,以及,所述多个子服务系统中的每个子服务系统均包括远程过程调用协议接口。
[0023]在该技术方案中,配置中心通过将每个子服务系统的配置信息和终端的服务系统信息封装后进行对应存储,便于根据终端的请求为终端快速地、准确地调用不同的子服务系统,同时,也便于在服务器的子服务系统的配置信息发生变化(如配置中心中的某些子服务系统的配置信息被删除或配置中心中被新增了其他子服务系统的配置信息)时,及时地向终端推送通知信息,以使终端及时地删除缓存中存储的这些子服务系统的服务系统信息或向缓存中添加新增的子服务系统的服务系统信息。
[0024]在上述技术方案中,优选地,所述调用单元具体用于:在所述应用层接收到所述请求后,将所述请求发送至所述配置中心,以使所述配置中心根据所述请求中的服务系统信息和每个所述子服务系统的配置信息确定所述目标子服务系统;以及在所述配置中心确定所述目标子服务系统后,通知所述应用层所述目标子服务系统,以使所述应用层通过所述目标子服务系统的远程过程调用协议接口调用所述目标子服务系统,以使所述目标子服务服务系统处理所述请求。
[0025]在该技术方案中,应用层在接收到终端的请求且获取到该请求对应的目标子服务系统后,会通过目标子服务系统中的每个子服务系统的RPC(Remote Procedure CallProtocol,远程过程调用协议)接口调用这些目标子服务系统,以响应终端的请求,其中,RPC接口为Avro (数据序列化的接口);Thrift (数据类型和服务接口);Spring_rmi (远程方法调用接口)等。
[0026]在上述技术方案中,优选地,还包括:发送单元,通过所述配置中心按照预定周期向所述多个子服务系统中的每个子服务系统发送“心跳”请求,判断单元,判断在第一预设时间内是否接收到来自每个所述子服务系统的“心跳”响应,统计单元,若判断在第一所述预设时间内未接收到来自任一所述子服务系统的“心跳”响应,则统计在第二预设时间内连续未接收到任一所述子服务系统的“心跳”响应的次数,删除单元,在所述次数大于预设次数时,通过所述配置中心删除任一所述子服务系统的配置信息,以及通知单元,在所述配置中心删除任一所述子服务系统的配置信息后,通知所述终端,以使所述终端删除与所述配置信息相对应的所述服务系统信息。
[0027]在该技术方案中,配置中心会按照预定周期向多个子服务系统中的每个子服务系统发送“心跳”请求,以判断每个子服务系统的状态是否异常,如果任一子服务系统在第一预设时间内没有响应配置中心的“心跳”请求,并在第二预设时间内连续多次没有响应配置中心的“心跳”请求,则配置中心将判断该子服务系统的状态异常,会自动删除该子服务系统的配置信息,并通知终端该子服务系统已被移除,以使终端也从本地缓存中删除与该配置信息相对应的服务系统信息,避免再次向服务器发送使该子服务系统处理请求的请求信息。另外,由于每个子服务系统互相独立,没有存储相互关联的数据,是一个可独立部署的完整系统,因此,配置中心在删除该配置信息相对应的服务系统信息,也不会影响到其它子服务系统,避免出现牵一发而动全身的情况。
[0028]在上述技术方案中,优选地,还包括:添加单元,在所述配置中心接收到配置信息添加命令时,向所述配置中心添加新的配置信息,并通知所述终端,以使所述终端添加与所述新的配置信息相对应的新的服务系统信息。
[0029]在该技术方案中,由于每个子服务系统互相独立,因此,开发者可以自由地向配置中心中添加要新增的子服务系统的配置信息,而配置中心在添加新的配置信息后,会及时地通知终端,服务器在接收到该请求后,会将与该新增的配置信息相对应的新的服务系统信息添加到本地缓存中,这样,终端再次向服务器发送请求时,就会按照预设算法从包括该新的服务系统信息的本地缓存中选择相应的服务系统信息,然后使终端调用与该服务系统信息相对应的目标子服务系统,以快速响应该请求。另外,由于每个子服务系统互相独立,代码量很少,因此便于升级、维护,且开发者也可以根据实际情况使用不同的编程语言编写不同的子服务系统。
[0030]通过上述技术方案,可以打破数据集成模式,不再以数据为中心集成各个子系统,以减少各个子系统的代码,提高子系统的维护效率、安全性和扩展性。
【专利附图】
【附图说明】
[0031]图1示出了根据本发明的实施例的请求处理方法的流程示意图;
[0032]图2示出了根据本发明的实施例的请求处理装置的结构示意图。
【具体实施方式】
[0033]为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和【具体实施方式】对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
[0034]在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
[0035]图1示出了根据本发明的实施例的请求处理方法的流程示意图。
[0036]如图1所示,根据本发明的实施例的请求处理方法,包括:步骤102,通过所述服务器的应用层的应用接口接收来自终端的请求;步骤104,根据所述请求中包括的服务系统信息,从所述服务器的多个子服务系统中调用目标子服务系统以处理所述请求,其中,所述多个子服务系统互相独立,且所述目标子服务系统为所述多个子服务系统中的至少一个子服务系统。
[0037]在该技术方案中,由于服务器中的多个子服务系统互相独立,没有耦合,因此,月艮务器的应用层的应用接口接收到终端的请求后,会根据请求中包括的服务系统信息,从服务器的多个子服务系统中调用一个或多个相互独立的子服务系统即目标子服务系统,以快速响应该请求,提高用户的使用体验;且由于多个子服务系统互相独立,没有存储相互关联的数据,是一个可独立部署的完整系统,因此,服务器在接收到不同的请求并调用不同的子系统时,不会牵连到其他子系统,这可以打破数据集成模式,使各个子系统不再以数据为中心集成,另外,由于各个子系统是独立编码的,代码量少而简单,因此,通过本发明可以提高子系统的维护效率和扩展性。例如:原工作圈服务都放到一个web工程,通过本发明则可以将其拆分成圈子系统、关系系统、评论系统、赞系统、通知系统、账户系统、设置系统等,而各个子系统则可以独立地对外提供服务,通过应用层组装即可对外提供服务。
[0038]在上述技术方案中,优选地,所述服务器包括配置中心,用于将所述服务系统信息与所述多个子服务系统中的每个子服务系统的配置信息对应存储,所述配置信息包括:每个所述子服务系统的网络协议地址、每个所述子服务系统的远程过程调用协议接口、每个所述子服务系统的路径、每个所述子服务系统的路径下的服务列表中的至少一种信息,所述服务系统信息包括所述目标子服务系统的路径和/或所述目标子服务系统的服务列表,以及,所述多个子服务系统中的每个子服务系统均包括远程过程调用协议接口。
[0039]在该技术方案中,配置中心通过将每个子服务系统的配置信息和终端的服务系统信息封装后进行对应存储,便于根据终端的请求为终端快速地、准确地调用不同的子服务系统,同时,也便于在服务器的子服务系统的配置信息发生变化(如配置中心中的某些子服务系统的配置信息被删除或配置中心中被新增了其他子服务系统的配置信息)时,及时地向终端推送通知信息,以使终端及时地删除缓存中存储的这些子服务系统的服务系统信息或向缓存中添加新增的子服务系统的服务系统信息。
[0040]在上述技术方案中,优选地,所述从所述服务器的多个子服务系统中调用目标子服务系统以处理所述请求,具体包括:所述应用层接收到所述请求后,将所述请求发送至所述配置中心,所述配置中心根据所述请求中的服务系统信息和每个所述子服务系统的配置信息确定所述目标子服务系统;所述配置中心在确定所述目标子服务系统后,通知所述应用层所述目标子服务系统,以使所述应用层通过所述目标子服务系统的远程过程调用协议接口调用所述目标子服务系统,以使所述目标子服务服务系统处理所述请求。
[0041]在该技术方案中,应用层在接收到终端的请求且获取到该请求对应的目标子服务系统后,会通过目标子服务系统中的每个子服务系统的RPC(Remote Procedure CallProtocol,远程过程调用协议)接口调用这些目标子服务系统,以响应终端的请求,其中,RPC接口为Avro (数据序列化的接口);Thrift (数据类型和服务接口);Spring_rmi (远程方法调用接口)等。
[0042]在上述技术方案中,优选地,还包括:所述配置中心按照预定周期向所述多个子服务系统中的每个子服务系统发送“心跳”请求,并判断在第一预设时间内是否接收到来自每个所述子服务系统的“心跳”响应,若判断在第一所述预设时间内未接收到来自任一所述子服务系统的“心跳”响应,则统计在第二预设时间内连续未接收到任一所述子服务系统的“心跳”响应的次数,并在所述次数大于预设次数时,所述配置中心删除任一所述子服务系统的配置信息;以及所述配置中心在删除任一所述子服务系统的配置信息后,通知所述终端,以使所述终端删除与所述配置信息相对应的所述服务系统信息。
[0043]在该技术方案中,配置中心会按照预定周期向多个子服务系统中的每个子服务系统发送“心跳”请求,以判断每个子服务系统的状态是否异常,如果任一子服务系统在第一预设时间内没有响应配置中心的“心跳”请求,并在第二预设时间内连续多次没有响应配置中心的“心跳”请求,则配置中心将判断该子服务系统的状态异常,会自动删除该子服务系统的配置信息,并通知终端该子服务系统已被移除,以使终端也从本地缓存中删除与该配置信息相对应的服务系统信息,避免再次向服务器发送使该子服务系统处理请求的请求信息。另外,由于每个子服务系统互相独立,没有存储相互关联的数据,是一个可独立部署的完整系统,因此,配置中心在删除该配置信息相对应的服务系统信息,也不会影响到其它子服务系统,避免出现牵一发而动全身的情况。
[0044]在上述技术方案中,优选地,还包括:所述配置中心在接收到配置信息添加命令时,添加新的配置信息,并通知所述终端,以使所述终端添加与所述新的配置信息相对应的新的服务系统信息。
[0045]在该技术方案中,由于每个子服务系统互相独立,因此,开发者可以自由地向配置中心中添加要新增的子服务系统的配置信息,而配置中心在添加新的配置信息后,会及时地通知终端,服务器在接收到该请求后,会将与该新增的配置信息相对应的新的服务系统信息添加到本地缓存中,这样,终端再次向服务器发送请求时,就会按照预设算法从包括该新的服务系统信息的本地缓存中选择相应的服务系统信息,然后使终端调用与该服务系统信息相对应的目标子服务系统,以快速响应该请求。另外,由于每个子服务系统互相独立,代码量很少,因此便于升级、维护,且开发者也可以根据实际情况使用不同的编程语言编写不同的子服务系统。
[0046]图2示出了根据本发明的实施例的请求处理装置的结构示意图。
[0047]如图2所示,根据本发明的实施例的请求处理装置200,包括:接收单元202,通过所述服务器的应用层的应用接口接收来自终端的请求;调用单元204,根据所述请求中包括的服务系统信息,从所述服务器的多个子服务系统中调用目标子服务系统以处理所述请求,其中,所述多个子服务系统互相独立,且所述目标子服务系统为所述多个子服务系统中的至少一个子服务系统。
[0048]在该技术方案中,由于服务器中的多个子服务系统互相独立,没有耦合,因此,月艮务器的应用层的应用接口接收到终端的请求后,会根据请求中包括的服务系统信息,从服务器的多个子服务系统中调用一个或多个相互独立的子服务系统即目标子服务系统,以快速响应该请求,提高用户的使用体验;且由于多个子服务系统互相独立,没有存储相互关联的数据,是一个可独立部署的完整系统,因此,服务器在接收到不同的请求并调用不同的子系统时,不会牵连到其他子系统,这可以打破数据集成模式,使各个子系统不再以数据为中心集成,另外,由于各个子系统是独立编码的,代码量少而简单,因此,通过本发明可以提高子系统的维护效率和扩展性。例如:原工作圈服务都放到一个web工程,通过本发明则可以将其拆分成圈子系统、关系系统、评论系统、赞系统、通知系统、账户系统、设置系统等,而各个子系统则可以独立地对外提供服务,通过应用层组装即可对外提供服务。
[0049]在上述技术方案中,优选地,所述服务器包括配置中心,用于将所述服务系统信息与所述多个子服务系统中的每个子服务系统的配置信息对应存储,其中,所述配置信息包括:每个所述子服务系统的网络协议地址、每个所述子服务系统的远程过程调用协议接口、每个所述子服务系统的路径、每个所述子服务系统的路径下的服务列表中的至少一种信息,所述服务系统信息包括所述目标子服务系统的路径和/或所述目标子服务系统的服务列表,以及,所述多个子服务系统中的每个子服务系统均包括远程过程调用协议接口。
[0050]在该技术方案中,配置中心通过将每个子服务系统的配置信息和终端的服务系统信息封装后进行对应存储,便于根据终端的请求为终端快速地、准确地调用不同的子服务系统,同时,也便于在服务器的子服务系统的配置信息发生变化(如配置中心中的某些子服务系统的配置信息被删除或配置中心中被新增了其他子服务系统的配置信息)时,及时地向终端推送通知信息,以使终端及时地删除缓存中存储的这些子服务系统的服务系统信息或向缓存中添加新增的子服务系统的服务系统信息。
[0051]在上述技术方案中,优选地,所述调用单元204具体用于:在所述应用层接收到所述请求后,将所述请求发送至所述配置中心,以使所述配置中心根据所述请求中的服务系统信息和每个所述子服务系统的配置信息确定所述目标子服务系统;以及在所述配置中心确定所述目标子服务系统后,通知所述应用层所述目标子服务系统,以使所述应用层通过所述目标子服务系统的远程过程调用协议接口调用所述目标子服务系统,以使所述目标子服务服务系统处理所述请求。
[0052]在该技术方案中,应用层在接收到终端的请求且获取到该请求对应的目标子服务系统后,会通过目标子服务系统中的每个子服务系统的RPC(Remote Procedure CallProtocol,远程过程调用协议)接口调用这些目标子服务系统,以响应终端的请求,其中,RPC接口为Avro (数据序列化的接口);Thrift (数据类型和服务接口);Spring_rmi (远程方法调用接口)等。
[0053]在上述技术方案中,优选地,还包括:发送单元206,通过所述配置中心按照预定周期向所述多个子服务系统中的每个子服务系统发送“心跳”请求,判断单元208,判断在第一预设时间内是否接收到来自每个所述子服务系统的“心跳”响应,统计单元210,若判断在第一所述预设时间内未接收到来自任一所述子服务系统的“心跳”响应,则统计在第二预设时间内连续未接收到任一所述子服务系统的“心跳”响应的次数,删除单元212,在所述次数大于预设次数时,通过所述配置中心删除任一所述子服务系统的配置信息,以及通知单元214,在所述配置中心删除任一所述子服务系统的配置信息后,通知所述终端,以使所述终端删除与所述配置信息相对应的所述服务系统信息。
[0054]在该技术方案中,配置中心会按照预定周期向多个子服务系统中的每个子服务系统发送“心跳”请求,以判断每个子服务系统的状态是否异常,如果任一子服务系统在第一预设时间内没有响应配置中心的“心跳”请求,并在第二预设时间内连续多次没有响应配置中心的“心跳”请求,则配置中心将判断该子服务系统的状态异常,会自动删除该子服务系统的配置信息,并通知终端该子服务系统已被移除,以使终端也从本地缓存中删除与该配置信息相对应的服务系统信息,避免再次向服务器发送使该子服务系统处理请求的请求信息。另外,由于每个子服务系统互相独立,没有存储相互关联的数据,是一个可独立部署的完整系统,因此,配置中心在删除该配置信息相对应的服务系统信息,也不会影响到其它子服务系统,避免出现牵一发而动全身的情况。
[0055]在上述技术方案中,优选地,还包括:添加单元216,在所述配置中心接收到配置信息添加命令时,向所述配置中心添加新的配置信息,并通知所述终端,以使所述终端添加与所述新的配置信息相对应的新的服务系统信息。
[0056]在该技术方案中,由于每个子服务系统互相独立,因此,开发者可以自由地向配置中心中添加要新增的子服务系统的配置信息,而配置中心在添加新的配置信息后,会及时地通知终端,服务器在接收到该请求后,会将与该新增的配置信息相对应的新的服务系统信息添加到本地缓存中,这样,终端再次向服务器发送请求时,就会按照预设算法从包括该新的服务系统信息的本地缓存中选择相应的服务系统信息,然后使终端调用与该服务系统信息相对应的目标子服务系统,以快速响应该请求。另外,由于每个子服务系统互相独立,代码量很少,因此便于升级、维护,且开发者也可以根据实际情况使用不同的编程语言编写不同的子服务系统。
[0057]以上结合附图详细说明了本发明的技术方案,通过本发明的技术方案,可以打破数据集成模式,不再以数据为中心集成各个子系统,以减少各个子系统的代码,提高子系统的维护效率、安全性和扩展性。
[0058]以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种请求处理方法,用于服务器,其特征在于,包括: 通过所述服务器的应用层的应用接口接收来自终端的请求; 根据所述请求中包括的服务系统信息,从所述服务器的多个子服务系统中调用目标子服务系统以处理所述请求,其中,所述多个子服务系统互相独立,且所述目标子服务系统为所述多个子服务系统中的至少一个子服务系统。
2.根据权利要求1所述的请求处理方法,其特征在于, 所述服务器包括配置中心,用于将所述服务系统信息与所述多个子服务系统中的每个子服务系统的配置信息对应存储,所述配置信息包括:每个所述子服务系统的网络协议地址、每个所述子服务系统的远程过程调用协议接口、每个所述子服务系统的路径、每个所述子服务系统的路径下的服务列表中的至少一种信息,所述服务系统信息包括所述目标子服务系统的路径和/或所述目标子服务系统的服务列表,以及, 所述多个子服务系统中的每个子服务系统均包括远程过程调用协议接口。
3.根据权利要求2所述的请求处理方法,其特征在于, 所述从所述服务器的多个子服务系统中调用目标子服务系统以处理所述请求,具体包括: 所述应用层接收到所述请求后,将所述请求发送至所述配置中心,所述配置中心根据所述请求中的服务系统信息和每个所述子服务系统的配置信息确定所述目标子服务系统; 所述配置中心在确定所述目标子服务系统后,通知所述应用层所述目标子服务系统,以使所述应用层通过所述目标子服务系统的远程过程调用协议接口调用所述目标子服务系统,以使所述目标子服务服务系统处理所述请求。
4.根据权利要求1至3中任一项所述的请求处理方法,其特征在于,还包括: 所述配置中心按照预定周期向所述多个子服务系统中的每个子服务系统发送“心跳”请求,并判断在第一预设时间内是否接收到来自每个所述子服务系统的“心跳”响应,若判断在第一所述预设时间内未接收到来自任一所述子服务系统的“心跳”响应,则统计在第二预设时间内连续未接收到任一所述子服务系统的“心跳”响应的次数,并在所述次数大于预设次数时,所述配置中心删除任一所述子服务系统的配置信息;以及 所述配置中心在删除任一所述子服务系统的配置信息后,通知所述终端,以使所述终端删除与所述配置信息相对应的所述服务系统信息。
5.根据权利要求4所述的请求处理方法,其特征在于,还包括: 所述配置中心在接收到配置信息添加命令时,添加新的配置信息,并通知所述终端,以使所述终端添加与所述新的配置信息相对应的新的服务系统信息。
6.一种请求处理装置,用于服务器,其特征在于,包括: 接收单元,通过所述服务器的应用层的应用接口接收来自终端的请求; 调用单元,根据所述请求中包括的服务系统信息,从所述服务器的多个子服务系统中调用目标子服务系统以处理所述请求,其中,所述多个子服务系统互相独立,且所述目标子服务系统为所述多个子服务系统中的至少一个子服务系统。
7.根据权利要求6所述的请求处理装置,其特征在于, 所述服务器包括配置中心,用于将所述服务系统信息与所述多个子服务系统中的每个子服务系统的配置信息对应存储,其中,所述配置信息包括:每个所述子服务系统的网络协议地址、每个所述子服务系统的远程过程调用协议接口、每个所述子服务系统的路径、每个所述子服务系统的路径下的服务列表中的至少一种信息,所述服务系统信息包括所述目标子服务系统的路径和/或所述目标子服务系统的服务列表,以及, 所述多个子服务系统中的每个子服务系统均包括远程过程调用协议接口。
8.根据权利要求7所述的请求处理装置,其特征在于, 所述调用单元具体用于: 在所述应用层接收到所述请求后,将所述请求发送至所述配置中心,以使所述配置中心根据所述请求中的服务系统信息和每个所述子服务系统的配置信息确定所述目标子服务系统;以及 在所述配置中心确定所述目标子服务系统后,通知所述应用层所述目标子服务系统,以使所述应用层通过所述目标子服务系统的远程过程调用协议接口调用所述目标子服务系统,以使所述目标子服务服务系统处理所述请求。
9.根据权利要求6至8中任一项所述的请求处理装置,其特征在于,还包括: 发送单元,通过所述配置中心按照预定周期向所述多个子服务系统中的每个子服务系统发送“心跳”请求, 判断单元,判断在第一预设时间内是否接收到来自每个所述子服务系统的“心跳”响应, 统计单元,若判断在第一所述预设时间内未接收到来自任一所述子服务系统的“心跳”响应,则统计在第二预设时间内连续未接收到任一所述子服务系统的“心跳”响应的次数, 删除单元,在所述次数大于预设次数时,通过所述配置中心删除任一所述子服务系统的配置信息,以及 通知单元,在所述配置中心删除任一所述子服务系统的配置信息后,通知所述终端,以使所述终端删除与所述配置信息相对应的所述服务系统信息。
10.根据权利要求9所述的请求处理装置,其特征在于,还包括: 添加单元,在所述配置中心接收到配置信息添加命令时,向所述配置中心添加新的配置信息,并通知所述终端,以使所述终端添加与所述新的配置信息相对应的新的服务系统信息。
【文档编号】H04L29/08GK104506584SQ201410743735
【公开日】2015年4月8日 申请日期:2014年12月8日 优先权日:2014年12月8日
【发明者】郝学武 申请人:畅捷通信息技术股份有限公司