CN104506584B - 请求处理方法与请求处理装置 - Google Patents
请求处理方法与请求处理装置 Download PDFInfo
- Publication number
- CN104506584B CN104506584B CN201410743735.3A CN201410743735A CN104506584B CN 104506584 B CN104506584 B CN 104506584B CN 201410743735 A CN201410743735 A CN 201410743735A CN 104506584 B CN104506584 B CN 104506584B
- Authority
- CN
- China
- Prior art keywords
- sub
- services system
- services
- request
- information
- 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.)
- Active
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供了一种请求处理方法和一种请求处理装置,其中,所述请求处理方法,包括:通过所述服务器的应用层的应用接口接收来自终端的请求;根据所述请求中包括的服务***信息,从所述服务器的多个子服务***中调用目标子服务***以处理所述请求,其中,所述多个子服务***互相独立,且所述目标子服务***为所述多个子服务***中的至少一个子服务***。通过本发明的技术方案,可以打破数据集成模式,不再以数据为中心集成各个子***,以减少各个子***的代码,提高子***的维护效率、安全性和扩展性。
Description
技术领域
本发明涉及请求处理技术领域,具体而言,涉及一种请求处理方法和一种请求处理装置。
背景技术
目前的***一般都采用数据集成,而数据集成是一种比较传统的***集成方式,其中心是数据。比如交易***会操作订单表和用户表以生成订单。而短信通知***也会访问订单表和用户表,根据订单的状态来发出不同的短信以通知不同的用户:比如给金额较大的订单对应的用户发一些促销活动短信,给一些未完成订单的用户发短信提醒其完成订单。这就是一种数据集成方式,但交易***和短信通知***均依靠订单表和用户表进行集成,这种集成方式的优点在于实现简单,缺点在于:
因为多个***都访问同一个数据库的同几张表,因此,业务数据库负担较大;
安全性差:每个***都以HTTP(Hyper Text Transfer Protocol,超文本传输协议)方式将接口暴露在外,接口的安全性较差;
扩展性问题:交易***如果以后想把订单表从RDBMS(Relational DatabaseManagement System)迁走可能就没那么容易了,因为还有很多其他***也依赖该订单表,真可谓牵一发而动全身;或者各个***可能擅自做主给表增减字段,而带来不好后果;
代码重复:如果交易***和短信通知***由两个不同部门的团队开发,那么每个***中都会有针对订单表和用户表的Dao(Data Access Object,数据访问对象)、Cache(高级缓冲存储器)、Service(服务)代码。
总之,现有的数据集成的代码庞杂,理解困难,新人上手也困难;维护困难,需要维护的人多,团队管理成本高,且团队效率越低;***启动一般较慢;持续部署困难:每一次小改动都需要重新部署整个应用;技术堆栈固化:尝试新技术的代价太高;扩展困难:应用某些部分偏IO密集型、某些部分却偏CPU密集型,但应用却只部署在一台机器上,很难用单一硬件来满足应用各部分对硬件资源的不同要求。
因此,如何打破数据集成模式,不再以数据为中心集成各个子***,以减少各个子***的代码,提高子***的维护效率、安全性和扩展性,成为亟待解决的问题。
发明内容
本发明正是基于上述技术问题,提出了一种新的技术方案,可以打破数据集成模式,不再以数据为中心集成各个子***,以减少各个子***的代码,提高子***的维护效率、安全性和扩展性。
有鉴于此,本发明的一方面提出了一种请求处理方法,用于服务器,包括:通过所述服务器的应用层的应用接口接收来自终端的请求;根据所述请求中包括的服务***信息,从所述服务器的多个子服务***中调用目标子服务***以处理所述请求,其中,所述多个子服务***互相独立,且所述目标子服务***为所述多个子服务***中的至少一个子服务***。
在该技术方案中,由于服务器中的多个子服务***互相独立,没有耦合,因此,服务器的应用层的应用接口接收到终端的请求后,会根据请求中包括的服务***信息,从服务器的多个子服务***中调用一个或多个相互独立的子服务***即目标子服务***,以快速响应该请求,提高用户的使用体验;且由于多个子服务***互相独立,没有存储相互关联的数据,是一个可独立部署的完整***,因此,服务器在接收到不同的请求并调用不同的子***时,不会牵连到其他子***,这可以打破数据集成模式,使各个子***不再以数据为中心集成,另外,由于各个子***是独立编码的,代码量少而简单,因此,通过本发明可以提高子***的维护效率和扩展性。例如:原工作圈服务都放到一个web工程,通过本发明则可以将其拆分成圈子***、关系***、评论***、赞***、通知***、账户***、设置***等,而各个子***则可以独立地对外提供服务,通过应用层组装即可对外提供服务。
在上述技术方案中,优选地,所述服务器包括配置中心,用于将所述服务***信息与所述多个子服务***中的每个子服务***的配置信息对应存储,所述配置信息包括:每个所述子服务***的网络协议地址、每个所述子服务***的远程过程调用协议接口、每个所述子服务***的路径、每个所述子服务***的路径下的服务列表中的至少一种信息,所述服务***信息包括所述目标子服务***的路径和/或所述目标子服务***的服务列表,以及,所述多个子服务***中的每个子服务***均包括远程过程调用协议接口。
在该技术方案中,配置中心通过将每个子服务***的配置信息和终端的服务***信息封装后进行对应存储,便于根据终端的请求为终端快速地、准确地调用不同的子服务***,同时,也便于在服务器的子服务***的配置信息发生变化(如配置中心中的某些子服务***的配置信息被删除或配置中心中被新增了其他子服务***的配置信息)时,及时地向终端推送通知信息,以使终端及时地删除缓存中存储的这些子服务***的服务***信息或向缓存中添加新增的子服务***的服务***信息。
在上述技术方案中,优选地,所述从所述服务器的多个子服务***中调用目标子服务***以处理所述请求,具体包括:所述应用层接收到所述请求后,将所述请求发送至所述配置中心,所述配置中心根据所述请求中的服务***信息和每个所述子服务***的配置信息确定所述目标子服务***;所述配置中心在确定所述目标子服务***后,通知所述应用层所述目标子服务***,以使所述应用层通过所述目标子服务***的远程过程调用协议接口调用所述目标子服务***,以使所述目标子服务服务***处理所述请求。
在该技术方案中,应用层在接收到终端的请求且获取到该请求对应的目标子服务***后,会通过目标子服务***中的每个子服务***的RPC(Remote Procedure CallProtocol,远程过程调用协议)接口调用这些目标子服务***,以响应终端的请求,其中,RPC接口为Avro(数据序列化的接口);Thrift(数据类型和服务接口);Spring_rmi(远程方法调用接口)等。
在上述技术方案中,优选地,还包括:所述配置中心按照预定周期向所述多个子服务***中的每个子服务***发送“心跳”请求,并判断在第一预设时间内是否接收到来自每个所述子服务***的“心跳”响应,若判断在第一所述预设时间内未接收到来自任一所述子服务***的“心跳”响应,则统计在第二预设时间内连续未接收到任一所述子服务***的“心跳”响应的次数,并在所述次数大于预设次数时,所述配置中心删除任一所述子服务***的配置信息;以及所述配置中心在删除任一所述子服务***的配置信息后,通知所述终端,以使所述终端删除与所述配置信息相对应的所述服务***信息。
在该技术方案中,配置中心会按照预定周期向多个子服务***中的每个子服务***发送“心跳”请求,以判断每个子服务***的状态是否异常,如果任一子服务***在第一预设时间内没有响应配置中心的“心跳”请求,并在第二预设时间内连续多次没有响应配置中心的“心跳”请求,则配置中心将判断该子服务***的状态异常,会自动删除该子服务***的配置信息,并通知终端该子服务***已被移除,以使终端也从本地缓存中删除与该配置信息相对应的服务***信息,避免再次向服务器发送使该子服务***处理请求的请求信息。另外,由于每个子服务***互相独立,没有存储相互关联的数据,是一个可独立部署的完整***,因此,配置中心在删除该配置信息相对应的服务***信息,也不会影响到其它子服务***,避免出现牵一发而动全身的情况。
在上述技术方案中,优选地,还包括:所述配置中心在接收到配置信息添加命令时,添加新的配置信息,并通知所述终端,以使所述终端添加与所述新的配置信息相对应的新的服务***信息。
在该技术方案中,由于每个子服务***互相独立,因此,开发者可以自由地向配置中心中添加要新增的子服务***的配置信息,而配置中心在添加新的配置信息后,会及时地通知终端,服务器在接收到该请求后,会将与该新增的配置信息相对应的新的服务***信息添加到本地缓存中,这样,终端再次向服务器发送请求时,就会按照预设算法从包括该新的服务***信息的本地缓存中选择相应的服务***信息,然后使终端调用与该服务***信息相对应的目标子服务***,以快速响应该请求。另外,由于每个子服务***互相独立,代码量很少,因此便于升级、维护,且开发者也可以根据实际情况使用不同的编程语言编写不同的子服务***。
本发明的另一方面提出了一种请求处理装置,用于服务器,包括:接收单元,通过所述服务器的应用层的应用接口接收来自终端的请求;调用单元,根据所述请求中包括的服务***信息,从所述服务器的多个子服务***中调用目标子服务***以处理所述请求,其中,所述多个子服务***互相独立,且所述目标子服务***为所述多个子服务***中的至少一个子服务***。
在该技术方案中,由于服务器中的多个子服务***互相独立,没有耦合,因此,服务器的应用层的应用接口接收到终端的请求后,会根据请求中包括的服务***信息,从服务器的多个子服务***中调用一个或多个相互独立的子服务***即目标子服务***,以快速响应该请求,提高用户的使用体验;且由于多个子服务***互相独立,没有存储相互关联的数据,是一个可独立部署的完整***,因此,服务器在接收到不同的请求并调用不同的子***时,不会牵连到其他子***,这可以打破数据集成模式,使各个子***不再以数据为中心集成,另外,由于各个子***是独立编码的,代码量少而简单,因此,通过本发明可以提高子***的维护效率和扩展性。例如:原工作圈服务都放到一个web工程,通过本发明则可以将其拆分成圈子***、关系***、评论***、赞***、通知***、账户***、设置***等,而各个子***则可以独立地对外提供服务,通过应用层组装即可对外提供服务。
在上述技术方案中,优选地,所述服务器包括配置中心,用于将所述服务***信息与所述多个子服务***中的每个子服务***的配置信息对应存储,其中,所述配置信息包括:每个所述子服务***的网络协议地址、每个所述子服务***的远程过程调用协议接口、每个所述子服务***的路径、每个所述子服务***的路径下的服务列表中的至少一种信息,所述服务***信息包括所述目标子服务***的路径和/或所述目标子服务***的服务列表,以及,所述多个子服务***中的每个子服务***均包括远程过程调用协议接口。
在该技术方案中,配置中心通过将每个子服务***的配置信息和终端的服务***信息封装后进行对应存储,便于根据终端的请求为终端快速地、准确地调用不同的子服务***,同时,也便于在服务器的子服务***的配置信息发生变化(如配置中心中的某些子服务***的配置信息被删除或配置中心中被新增了其他子服务***的配置信息)时,及时地向终端推送通知信息,以使终端及时地删除缓存中存储的这些子服务***的服务***信息或向缓存中添加新增的子服务***的服务***信息。
在上述技术方案中,优选地,所述调用单元具体用于:在所述应用层接收到所述请求后,将所述请求发送至所述配置中心,以使所述配置中心根据所述请求中的服务***信息和每个所述子服务***的配置信息确定所述目标子服务***;以及在所述配置中心确定所述目标子服务***后,通知所述应用层所述目标子服务***,以使所述应用层通过所述目标子服务***的远程过程调用协议接口调用所述目标子服务***,以使所述目标子服务服务***处理所述请求。
在该技术方案中,应用层在接收到终端的请求且获取到该请求对应的目标子服务***后,会通过目标子服务***中的每个子服务***的RPC(Remote Procedure CallProtocol,远程过程调用协议)接口调用这些目标子服务***,以响应终端的请求,其中,RPC接口为Avro(数据序列化的接口);Thrift(数据类型和服务接口);Spring_rmi(远程方法调用接口)等。
在上述技术方案中,优选地,还包括:发送单元,通过所述配置中心按照预定周期向所述多个子服务***中的每个子服务***发送“心跳”请求,判断单元,判断在第一预设时间内是否接收到来自每个所述子服务***的“心跳”响应,统计单元,若判断在第一所述预设时间内未接收到来自任一所述子服务***的“心跳”响应,则统计在第二预设时间内连续未接收到任一所述子服务***的“心跳”响应的次数,删除单元,在所述次数大于预设次数时,通过所述配置中心删除任一所述子服务***的配置信息,以及通知单元,在所述配置中心删除任一所述子服务***的配置信息后,通知所述终端,以使所述终端删除与所述配置信息相对应的所述服务***信息。
在该技术方案中,配置中心会按照预定周期向多个子服务***中的每个子服务***发送“心跳”请求,以判断每个子服务***的状态是否异常,如果任一子服务***在第一预设时间内没有响应配置中心的“心跳”请求,并在第二预设时间内连续多次没有响应配置中心的“心跳”请求,则配置中心将判断该子服务***的状态异常,会自动删除该子服务***的配置信息,并通知终端该子服务***已被移除,以使终端也从本地缓存中删除与该配置信息相对应的服务***信息,避免再次向服务器发送使该子服务***处理请求的请求信息。另外,由于每个子服务***互相独立,没有存储相互关联的数据,是一个可独立部署的完整***,因此,配置中心在删除该配置信息相对应的服务***信息,也不会影响到其它子服务***,避免出现牵一发而动全身的情况。
在上述技术方案中,优选地,还包括:添加单元,在所述配置中心接收到配置信息添加命令时,向所述配置中心添加新的配置信息,并通知所述终端,以使所述终端添加与所述新的配置信息相对应的新的服务***信息。
在该技术方案中,由于每个子服务***互相独立,因此,开发者可以自由地向配置中心中添加要新增的子服务***的配置信息,而配置中心在添加新的配置信息后,会及时地通知终端,服务器在接收到该请求后,会将与该新增的配置信息相对应的新的服务***信息添加到本地缓存中,这样,终端再次向服务器发送请求时,就会按照预设算法从包括该新的服务***信息的本地缓存中选择相应的服务***信息,然后使终端调用与该服务***信息相对应的目标子服务***,以快速响应该请求。另外,由于每个子服务***互相独立,代码量很少,因此便于升级、维护,且开发者也可以根据实际情况使用不同的编程语言编写不同的子服务***。
通过上述技术方案,可以打破数据集成模式,不再以数据为中心集成各个子***,以减少各个子***的代码,提高子***的维护效率、安全性和扩展性。
附图说明
图1示出了根据本发明的实施例的请求处理方法的流程示意图;
图2示出了根据本发明的实施例的请求处理装置的结构示意图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
图1示出了根据本发明的实施例的请求处理方法的流程示意图。
如图1所示,根据本发明的实施例的请求处理方法,包括:步骤102,通过所述服务器的应用层的应用接口接收来自终端的请求;步骤104,根据所述请求中包括的服务***信息,从所述服务器的多个子服务***中调用目标子服务***以处理所述请求,其中,所述多个子服务***互相独立,且所述目标子服务***为所述多个子服务***中的至少一个子服务***。
在该技术方案中,由于服务器中的多个子服务***互相独立,没有耦合,因此,服务器的应用层的应用接口接收到终端的请求后,会根据请求中包括的服务***信息,从服务器的多个子服务***中调用一个或多个相互独立的子服务***即目标子服务***,以快速响应该请求,提高用户的使用体验;且由于多个子服务***互相独立,没有存储相互关联的数据,是一个可独立部署的完整***,因此,服务器在接收到不同的请求并调用不同的子***时,不会牵连到其他子***,这可以打破数据集成模式,使各个子***不再以数据为中心集成,另外,由于各个子***是独立编码的,代码量少而简单,因此,通过本发明可以提高子***的维护效率和扩展性。例如:原工作圈服务都放到一个web工程,通过本发明则可以将其拆分成圈子***、关系***、评论***、赞***、通知***、账户***、设置***等,而各个子***则可以独立地对外提供服务,通过应用层组装即可对外提供服务。
在上述技术方案中,优选地,所述服务器包括配置中心,用于将所述服务***信息与所述多个子服务***中的每个子服务***的配置信息对应存储,所述配置信息包括:每个所述子服务***的网络协议地址、每个所述子服务***的远程过程调用协议接口、每个所述子服务***的路径、每个所述子服务***的路径下的服务列表中的至少一种信息,所述服务***信息包括所述目标子服务***的路径和/或所述目标子服务***的服务列表,以及,所述多个子服务***中的每个子服务***均包括远程过程调用协议接口。
在该技术方案中,配置中心通过将每个子服务***的配置信息和终端的服务***信息封装后进行对应存储,便于根据终端的请求为终端快速地、准确地调用不同的子服务***,同时,也便于在服务器的子服务***的配置信息发生变化(如配置中心中的某些子服务***的配置信息被删除或配置中心中被新增了其他子服务***的配置信息)时,及时地向终端推送通知信息,以使终端及时地删除缓存中存储的这些子服务***的服务***信息或向缓存中添加新增的子服务***的服务***信息。
在上述技术方案中,优选地,所述从所述服务器的多个子服务***中调用目标子服务***以处理所述请求,具体包括:所述应用层接收到所述请求后,将所述请求发送至所述配置中心,所述配置中心根据所述请求中的服务***信息和每个所述子服务***的配置信息确定所述目标子服务***;所述配置中心在确定所述目标子服务***后,通知所述应用层所述目标子服务***,以使所述应用层通过所述目标子服务***的远程过程调用协议接口调用所述目标子服务***,以使所述目标子服务服务***处理所述请求。
在该技术方案中,应用层在接收到终端的请求且获取到该请求对应的目标子服务***后,会通过目标子服务***中的每个子服务***的RPC(Remote Procedure CallProtocol,远程过程调用协议)接口调用这些目标子服务***,以响应终端的请求,其中,RPC接口为Avro(数据序列化的接口);Thrift(数据类型和服务接口);Spring_rmi(远程方法调用接口)等。
在上述技术方案中,优选地,还包括:所述配置中心按照预定周期向所述多个子服务***中的每个子服务***发送“心跳”请求,并判断在第一预设时间内是否接收到来自每个所述子服务***的“心跳”响应,若判断在第一所述预设时间内未接收到来自任一所述子服务***的“心跳”响应,则统计在第二预设时间内连续未接收到任一所述子服务***的“心跳”响应的次数,并在所述次数大于预设次数时,所述配置中心删除任一所述子服务***的配置信息;以及所述配置中心在删除任一所述子服务***的配置信息后,通知所述终端,以使所述终端删除与所述配置信息相对应的所述服务***信息。
在该技术方案中,配置中心会按照预定周期向多个子服务***中的每个子服务***发送“心跳”请求,以判断每个子服务***的状态是否异常,如果任一子服务***在第一预设时间内没有响应配置中心的“心跳”请求,并在第二预设时间内连续多次没有响应配置中心的“心跳”请求,则配置中心将判断该子服务***的状态异常,会自动删除该子服务***的配置信息,并通知终端该子服务***已被移除,以使终端也从本地缓存中删除与该配置信息相对应的服务***信息,避免再次向服务器发送使该子服务***处理请求的请求信息。另外,由于每个子服务***互相独立,没有存储相互关联的数据,是一个可独立部署的完整***,因此,配置中心在删除该配置信息相对应的服务***信息,也不会影响到其它子服务***,避免出现牵一发而动全身的情况。
在上述技术方案中,优选地,还包括:所述配置中心在接收到配置信息添加命令时,添加新的配置信息,并通知所述终端,以使所述终端添加与所述新的配置信息相对应的新的服务***信息。
在该技术方案中,由于每个子服务***互相独立,因此,开发者可以自由地向配置中心中添加要新增的子服务***的配置信息,而配置中心在添加新的配置信息后,会及时地通知终端,服务器在接收到该请求后,会将与该新增的配置信息相对应的新的服务***信息添加到本地缓存中,这样,终端再次向服务器发送请求时,就会按照预设算法从包括该新的服务***信息的本地缓存中选择相应的服务***信息,然后使终端调用与该服务***信息相对应的目标子服务***,以快速响应该请求。另外,由于每个子服务***互相独立,代码量很少,因此便于升级、维护,且开发者也可以根据实际情况使用不同的编程语言编写不同的子服务***。
图2示出了根据本发明的实施例的请求处理装置的结构示意图。
如图2所示,根据本发明的实施例的请求处理装置200,包括:接收单元202,通过所述服务器的应用层的应用接口接收来自终端的请求;调用单元204,根据所述请求中包括的服务***信息,从所述服务器的多个子服务***中调用目标子服务***以处理所述请求,其中,所述多个子服务***互相独立,且所述目标子服务***为所述多个子服务***中的至少一个子服务***。
在该技术方案中,由于服务器中的多个子服务***互相独立,没有耦合,因此,服务器的应用层的应用接口接收到终端的请求后,会根据请求中包括的服务***信息,从服务器的多个子服务***中调用一个或多个相互独立的子服务***即目标子服务***,以快速响应该请求,提高用户的使用体验;且由于多个子服务***互相独立,没有存储相互关联的数据,是一个可独立部署的完整***,因此,服务器在接收到不同的请求并调用不同的子***时,不会牵连到其他子***,这可以打破数据集成模式,使各个子***不再以数据为中心集成,另外,由于各个子***是独立编码的,代码量少而简单,因此,通过本发明可以提高子***的维护效率和扩展性。例如:原工作圈服务都放到一个web工程,通过本发明则可以将其拆分成圈子***、关系***、评论***、赞***、通知***、账户***、设置***等,而各个子***则可以独立地对外提供服务,通过应用层组装即可对外提供服务。
在上述技术方案中,优选地,所述服务器包括配置中心,用于将所述服务***信息与所述多个子服务***中的每个子服务***的配置信息对应存储,其中,所述配置信息包括:每个所述子服务***的网络协议地址、每个所述子服务***的远程过程调用协议接口、每个所述子服务***的路径、每个所述子服务***的路径下的服务列表中的至少一种信息,所述服务***信息包括所述目标子服务***的路径和/或所述目标子服务***的服务列表,以及,所述多个子服务***中的每个子服务***均包括远程过程调用协议接口。
在该技术方案中,配置中心通过将每个子服务***的配置信息和终端的服务***信息封装后进行对应存储,便于根据终端的请求为终端快速地、准确地调用不同的子服务***,同时,也便于在服务器的子服务***的配置信息发生变化(如配置中心中的某些子服务***的配置信息被删除或配置中心中被新增了其他子服务***的配置信息)时,及时地向终端推送通知信息,以使终端及时地删除缓存中存储的这些子服务***的服务***信息或向缓存中添加新增的子服务***的服务***信息。
在上述技术方案中,优选地,所述调用单元204具体用于:在所述应用层接收到所述请求后,将所述请求发送至所述配置中心,以使所述配置中心根据所述请求中的服务***信息和每个所述子服务***的配置信息确定所述目标子服务***;以及在所述配置中心确定所述目标子服务***后,通知所述应用层所述目标子服务***,以使所述应用层通过所述目标子服务***的远程过程调用协议接口调用所述目标子服务***,以使所述目标子服务服务***处理所述请求。
在该技术方案中,应用层在接收到终端的请求且获取到该请求对应的目标子服务***后,会通过目标子服务***中的每个子服务***的RPC(Remote Procedure CallProtocol,远程过程调用协议)接口调用这些目标子服务***,以响应终端的请求,其中,RPC接口为Avro(数据序列化的接口);Thrift(数据类型和服务接口);Spring_rmi(远程方法调用接口)等。
在上述技术方案中,优选地,还包括:发送单元206,通过所述配置中心按照预定周期向所述多个子服务***中的每个子服务***发送“心跳”请求,判断单元208,判断在第一预设时间内是否接收到来自每个所述子服务***的“心跳”响应,统计单元210,若判断在第一所述预设时间内未接收到来自任一所述子服务***的“心跳”响应,则统计在第二预设时间内连续未接收到任一所述子服务***的“心跳”响应的次数,删除单元212,在所述次数大于预设次数时,通过所述配置中心删除任一所述子服务***的配置信息,以及通知单元214,在所述配置中心删除任一所述子服务***的配置信息后,通知所述终端,以使所述终端删除与所述配置信息相对应的所述服务***信息。
在该技术方案中,配置中心会按照预定周期向多个子服务***中的每个子服务***发送“心跳”请求,以判断每个子服务***的状态是否异常,如果任一子服务***在第一预设时间内没有响应配置中心的“心跳”请求,并在第二预设时间内连续多次没有响应配置中心的“心跳”请求,则配置中心将判断该子服务***的状态异常,会自动删除该子服务***的配置信息,并通知终端该子服务***已被移除,以使终端也从本地缓存中删除与该配置信息相对应的服务***信息,避免再次向服务器发送使该子服务***处理请求的请求信息。另外,由于每个子服务***互相独立,没有存储相互关联的数据,是一个可独立部署的完整***,因此,配置中心在删除该配置信息相对应的服务***信息,也不会影响到其它子服务***,避免出现牵一发而动全身的情况。
在上述技术方案中,优选地,还包括:添加单元216,在所述配置中心接收到配置信息添加命令时,向所述配置中心添加新的配置信息,并通知所述终端,以使所述终端添加与所述新的配置信息相对应的新的服务***信息。
在该技术方案中,由于每个子服务***互相独立,因此,开发者可以自由地向配置中心中添加要新增的子服务***的配置信息,而配置中心在添加新的配置信息后,会及时地通知终端,服务器在接收到该请求后,会将与该新增的配置信息相对应的新的服务***信息添加到本地缓存中,这样,终端再次向服务器发送请求时,就会按照预设算法从包括该新的服务***信息的本地缓存中选择相应的服务***信息,然后使终端调用与该服务***信息相对应的目标子服务***,以快速响应该请求。另外,由于每个子服务***互相独立,代码量很少,因此便于升级、维护,且开发者也可以根据实际情况使用不同的编程语言编写不同的子服务***。
以上结合附图详细说明了本发明的技术方案,通过本发明的技术方案,可以打破数据集成模式,不再以数据为中心集成各个子***,以减少各个子***的代码,提高子***的维护效率、安全性和扩展性。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种请求处理方法,用于服务器,其特征在于,包括:
通过所述服务器的应用层的应用接口接收来自终端的请求;
根据所述请求中包括的服务***信息,从所述服务器的多个子服务***中调用目标子服务***以处理所述请求,其中,所述多个子服务***互相独立,且所述目标子服务***为所述多个子服务***中的至少一个子服务***;
所述服务器包括配置中心,用于将所述服务***信息与所述多个子服务***中的每个子服务***的配置信息对应存储,所述配置信息包括:每个所述子服务***的网络协议地址、每个所述子服务***的远程过程调用协议接口、每个所述子服务***的路径、每个所述子服务***的路径下的服务列表中的至少一种信息,所述服务***信息包括所述目标子服务***的路径和/或所述目标子服务***的服务列表,以及,
所述多个子服务***中的每个子服务***均包括远程过程调用协议接口。
2.根据权利要求1所述的请求处理方法,其特征在于,
所述从所述服务器的多个子服务***中调用目标子服务***以处理所述请求,具体包括:
所述应用层接收到所述请求后,将所述请求发送至所述配置中心,所述配置中心根据所述请求中的服务***信息和每个所述子服务***的配置信息确定所述目标子服务***;
所述配置中心在确定所述目标子服务***后,通知所述应用层所述目标子服务***,以使所述应用层通过所述目标子服务***的远程过程调用协议接口调用所述目标子服务***,以使所述目标子服务服务***处理所述请求。
3.根据权利要求1或2所述的请求处理方法,其特征在于,还包括:
所述配置中心按照预定周期向所述多个子服务***中的每个子服务***发送“心跳”请求,并判断在第一预设时间内是否接收到来自每个所述子服务***的“心跳”响应,若判断在第一所述预设时间内未接收到来自任一所述子服务***的“心跳”响应,则统计在第二预设时间内连续未接收到任一所述子服务***的“心跳”响应的次数,并在所述次数大于预设次数时,所述配置中心删除任一所述子服务***的配置信息;以及
所述配置中心在删除任一所述子服务***的配置信息后,通知所述终端,以使所述终端删除与所述配置信息相对应的所述服务***信息。
4.根据权利要求3所述的请求处理方法,其特征在于,还包括:
所述配置中心在接收到配置信息添加命令时,添加新的配置信息,并通知所述终端,以使所述终端添加与所述新的配置信息相对应的新的服务***信息。
5.一种请求处理装置,用于服务器,其特征在于,包括:
接收单元,通过所述服务器的应用层的应用接口接收来自终端的请求;
调用单元,根据所述请求中包括的服务***信息,从所述服务器的多个子服务***中调用目标子服务***以处理所述请求,其中,所述多个子服务***互相独立,且所述目标子服务***为所述多个子服务***中的至少一个子服务***;
所述服务器包括配置中心,用于将所述服务***信息与所述多个子服务***中的每个子服务***的配置信息对应存储,其中,所述配置信息包括:每个所述子服务***的网络协议地址、每个所述子服务***的远程过程调用协议接口、每个所述子服务***的路径、每个所述子服务***的路径下的服务列表中的至少一种信息,所述服务***信息包括所述目标子服务***的路径和/或所述目标子服务***的服务列表,以及,
所述多个子服务***中的每个子服务***均包括远程过程调用协议接口。
6.根据权利要求5所述的请求处理装置,其特征在于,
所述调用单元具体用于:
在所述应用层接收到所述请求后,将所述请求发送至所述配置中心,以使所述配置中心根据所述请求中的服务***信息和每个所述子服务***的配置信息确定所述目标子服务***;以及
在所述配置中心确定所述目标子服务***后,通知所述应用层所述目标子服务***,以使所述应用层通过所述目标子服务***的远程过程调用协议接口调用所述目标子服务***,以使所述目标子服务服务***处理所述请求。
7.根据权利要求5或6所述的请求处理装置,其特征在于,还包括:
发送单元,通过所述配置中心按照预定周期向所述多个子服务***中的每个子服务***发送“心跳”请求,
判断单元,判断在第一预设时间内是否接收到来自每个所述子服务***的“心跳”响应,
统计单元,若判断在第一所述预设时间内未接收到来自任一所述子服务***的“心跳”响应,则统计在第二预设时间内连续未接收到任一所述子服务***的“心跳”响应的次数,
删除单元,在所述次数大于预设次数时,通过所述配置中心删除任一所述子服务***的配置信息,以及
通知单元,在所述配置中心删除任一所述子服务***的配置信息后,通知所述终端,以使所述终端删除与所述配置信息相对应的所述服务***信息。
8.根据权利要求7所述的请求处理装置,其特征在于,还包括:
添加单元,在所述配置中心接收到配置信息添加命令时,向所述配置中心添加新的配置信息,并通知所述终端,以使所述终端添加与所述新的配置信息相对应的新的服务***信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410743735.3A CN104506584B (zh) | 2014-12-08 | 2014-12-08 | 请求处理方法与请求处理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410743735.3A CN104506584B (zh) | 2014-12-08 | 2014-12-08 | 请求处理方法与请求处理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104506584A CN104506584A (zh) | 2015-04-08 |
CN104506584B true CN104506584B (zh) | 2018-06-22 |
Family
ID=52948299
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410743735.3A Active CN104506584B (zh) | 2014-12-08 | 2014-12-08 | 请求处理方法与请求处理装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104506584B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104852931B (zh) * | 2015-06-12 | 2019-02-01 | 北京京东尚科信息技术有限公司 | 一种通信方法和装置 |
CN106936937B (zh) * | 2015-12-29 | 2020-09-08 | 阿里巴巴集团控股有限公司 | 用于互联网业务交互的通用接口的实现方法和装置 |
CN106960335A (zh) * | 2017-03-28 | 2017-07-18 | 中国建设银行股份有限公司 | ***外调用方法、装置和通信*** |
KR102441572B1 (ko) * | 2017-06-14 | 2022-09-08 | 모토로라 모빌리티 엘엘씨 | 시스템 정보 요청들에 대한 경합 해결 수행 |
CN109391588B (zh) * | 2017-08-04 | 2021-03-12 | 北京国双科技有限公司 | 请求处理方法和装置 |
CN109391589B (zh) * | 2017-08-04 | 2021-06-29 | 北京国双科技有限公司 | 请求处理方法和装置 |
CN109257337B (zh) * | 2018-08-28 | 2021-09-07 | 科大国创软件股份有限公司 | 物联网设备协议转换方法及基于该方法的灯杆运营平台 |
CN111371631B (zh) * | 2018-12-25 | 2022-04-19 | 成都鼎桥通信技术有限公司 | 一种心跳机制检测方法、终端设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102333067A (zh) * | 2010-07-14 | 2012-01-25 | 蔡权伟 | 一种全方位综合金融信息服务***,交易及信息查询方法 |
CN102413181A (zh) * | 2011-11-16 | 2012-04-11 | 中国软件与技术服务股份有限公司 | 一种提升服务器性能的方法及其*** |
CN103391278A (zh) * | 2012-05-11 | 2013-11-13 | 杨雪 | 终端连接服务器的方法和*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7263555B2 (en) * | 2003-04-30 | 2007-08-28 | International Business Machines Corporation | Apparatus and method for dynamic sharing of server network interface resources |
-
2014
- 2014-12-08 CN CN201410743735.3A patent/CN104506584B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102333067A (zh) * | 2010-07-14 | 2012-01-25 | 蔡权伟 | 一种全方位综合金融信息服务***,交易及信息查询方法 |
CN102413181A (zh) * | 2011-11-16 | 2012-04-11 | 中国软件与技术服务股份有限公司 | 一种提升服务器性能的方法及其*** |
CN103391278A (zh) * | 2012-05-11 | 2013-11-13 | 杨雪 | 终端连接服务器的方法和*** |
Also Published As
Publication number | Publication date |
---|---|
CN104506584A (zh) | 2015-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104506584B (zh) | 请求处理方法与请求处理装置 | |
US20220070304A1 (en) | Information Reminding Method and Apparatus, and Electronic Terminal | |
JP6451773B2 (ja) | 管理装置、管理方法、プログラム、および、管理システム | |
US10110699B2 (en) | Method and system to enable mobile users to receive personalized notifications | |
CN105991408B (zh) | 一种消息处理方法、装置及处理服务器 | |
WO2017177830A1 (zh) | 基于二维码以对被监护人进行寻找的方法及*** | |
CN110149392A (zh) | 一种推送消息的管理方法及装置 | |
CN110515748B (zh) | 一种消息处理的方法及相关装置 | |
CN105610681B (zh) | 基于即时通讯的信息处理方法及装置 | |
JP6970950B2 (ja) | 映像通話の仲介装置、方法及びコンピュータ読み取り可能な記録媒体 | |
US10079778B2 (en) | Customer controlled video network | |
KR101885586B1 (ko) | 마이크로서비스관리장치 및 방법 | |
US11315086B2 (en) | API charging system, API charging management method, and API charging program | |
WO2010102587A1 (zh) | 垃圾信息上报方法、装置及*** | |
CN109658580A (zh) | 基于用户移动终端的医院排序叫号方法及*** | |
CN105933467A (zh) | 一种客户端主机信息变更的周期性检测方法 | |
CN105843465A (zh) | 一种作者关注方法、终端、服务器和*** | |
CN109729011A (zh) | 流量转发方法、装置和计算机可读存储介质 | |
CN111639907A (zh) | 流程管理方法、装置、设备及计算机存储介质 | |
US10833882B2 (en) | Systems and methods of viral enablement of features by peer-to-peer connection | |
CN105745911B (zh) | 用于使用订购简档存储库提供实时数据网络使用信息的方法、***和计算机可读介质 | |
JP2006253967A (ja) | 位置情報管理装置、位置情報管理方法、位置情報管理プログラム、コンピュータに読み取り可能な記録媒体及び位置情報管理システム | |
CN109036505A (zh) | 一种互查hiv感染状态的方法及装置 | |
US20120167179A1 (en) | Flexible multimedia priority services | |
TW201524160A (zh) | 應用於網路架構的請求資訊處理方法及系統 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |