CN109800083A - 一种微服务协同调用的方法、装置、系统及存储介质 - Google Patents
一种微服务协同调用的方法、装置、系统及存储介质 Download PDFInfo
- Publication number
- CN109800083A CN109800083A CN201811549809.4A CN201811549809A CN109800083A CN 109800083 A CN109800083 A CN 109800083A CN 201811549809 A CN201811549809 A CN 201811549809A CN 109800083 A CN109800083 A CN 109800083A
- Authority
- CN
- China
- Prior art keywords
- micro services
- request
- resource
- node
- call request
- 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
- 238000000034 method Methods 0.000 title claims abstract description 63
- 230000009471 action Effects 0.000 claims abstract description 29
- 238000005096 rolling process Methods 0.000 claims abstract description 29
- 230000003862 health status Effects 0.000 claims description 22
- 238000013468 resource allocation Methods 0.000 claims description 18
- 238000004891 communication Methods 0.000 claims description 6
- 230000005540 biological transmission Effects 0.000 claims description 3
- 230000008569 process Effects 0.000 abstract description 6
- 230000006870 function Effects 0.000 description 8
- 230000002159 abnormal effect Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000036541 health Effects 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 235000013399 edible fruits Nutrition 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
Abstract
本发明提出一种微服务协同调用的方法、装置、系统及计算机可读存储介质,属于云技术领域。所述方法包括:获取微服务调用请求,所述微服务调用请求包括资源参数;为所述微服务调用请求申请请求ID;根据所述资源参数将所述微服务调用请求连同所述请求ID发送给微服务节点,由微服务节点分配根据所述资源参数资源并将分配的资源与所述请求ID绑定;接收微服务节点返回的请求处理结果;当所述结果为资源申请失败消息时,向已返回资源申请成功消息的微服务节点发送回滚操作请求,所述回滚操作请求携带所述请求ID,由各微服务节点根据所述请求ID释放与所述请求ID绑定的资源。采用本发明能够实现在调用过程中当某个微服务节点异常时进行操作回滚、释放已经分配的资源。
Description
技术领域
本发明涉及云技术领域,尤其涉及一种微服务协同调用的方法、装置、系统及计算机可读存储介质。
背景技术
微服务架构是一项在云中部署应用和服务的新技术。微服务不需要像普通服务那样成为一种独立的功能或者独立的资源。微服务的基本思想在于考虑围绕着业务领域组件来创建应用,这些应用可独立地进行开发、管理和加速。在分散的组件中使用微服务云架构和平台,使部署、管理和服务功能交付变得更加简单。因此,业界对微服务的结构模式认可度非常高,通常会将复杂的业务拆分成微服务的模式(不同的微服务分布在不同的微服务节点上,不同的微服务节点可以部署在单个或多个服务器上),并将服务封装成API(Application Programming Interface,应用程序接口)的形式对外提供服务。
一般一个请求需要调用多个微服务才能完成这个请求。以典型的云计算公司为例,其在虚拟化的时候,会把各个资源虚拟化成一个资源池,以微服务的形式对外提供资源的申请和释放,例如CPU(Central Processing Unit,中央处理器)资源、内存资源等。通常一个完整的业务请求,需要调用多个微服务才能完成。比如申请一台云主机服务,就需要CPU服务、内存服务、磁盘服务、带宽服务等多个微服务协同调用。
然而实际应用中,在协调调用多个微服务时,可能会出现许多的问题,当出现问题时,需要快速针对出现问题的调用请求进行处理,如需要微服务在异常时进行操作回滚、释放已经分配的资源、异常定位等。但是,现有技术中暂时还没用来快速处理上述问题的解决方案。
发明内容
本发明提供一种微服务协同调用的方法、装置、系统及计算机可读存储介质,其主要目的在于通过为微服务调用请求申请请求ID,使微服务在为所述微服务调用请求分配资源时,将分配的资源与其请求ID绑定,实现在调用过程中当某个微服务节点异常时进行操作回滚、释放已经分配的资源、异常定位等。
为实现上述目的,本发明第一方面提供一种微服务调用的方法,应用于微服务框架中的服务器,所述方法包括:
获取微服务调用请求,所述微服务调用请求包括资源参数;
为所述微服务调用请求申请请求ID;
根据所述资源参数将所述微服务调用请求连同所述请求ID发送给微服务节点,由微服务节点根据所述资源参数分配资源并将分配的资源与所述请求ID绑定;
接收微服务节点返回的请求处理结果;
当所述请求处理结果为资源申请失败消息时,向已返回资源申请成功消息的微服务节点发送回滚操作请求,所述回滚操作请求携带所述请求ID,由所述已返回资源申请成功消息的微服务节点根据所述请求ID释放与所述请求ID绑定的资源。
在其中一个实施例中,所述接收所述微服务返回的请求处理结果之后,所述方法还包括:
根据请求处理结果将请求参数以及请求结果和/或失败原因生成日志,所述日志包含所述请求ID;
将生成的日志写入预设的日志平台。
在其中一个实施例中,所述根据所述微服务调用请求的资源参数将所述微服务调用请求连同所述请求ID发送给微服务节点之后,所述方法还包括:
接收微服务节点反馈的微服务调用请求的健康状态;
将所述微服务调用请求的健康状态写入操作数据库;
所述监控的健康状态的参数包括:正常、失败、请求负载或请求时长中的至少一种。
在其中一个实施例中,所述资源参数包括服务节点ID及服务调用顺序,所述根据所述资源参数将所述微服务调用请求连同所述请求ID发送给微服务节点,包括:
根据所述服务节点ID及服务调用顺序将所述微服务调用请求连同所述请求ID依次发送给所述资源参数指向的多个微服务节点;
所述接收微服务节点返回的请求处理结果之后,所述方法还包括:
当所述结果为资源申请成功消息时,将所述微服务调用请求连同所述请求ID发送给下一微服务节点。
为实现上述目的,本发明第二方面提供一种微服务调用的方法,应用于微服务框架中的微服务节点,所述方法包括:
微服务节点接收服务器发送的微服务调用请求及所述微服务调用请求的请求ID;
根据所述微服务调用请求执行资源分配操作;
若为所述微服务调用请求分配资源成功,则将分配的资源与所述请求ID绑定,并向所述服务器返回资源申请成功消息,所述资源申请成功消息携带所述请求ID;
若为所述微服务调用请求分配资源失败,则向所述服务器返回资源申请失败消息,所述资源申请失败消息携带所述请求ID。
在其中一个实施例中,所述向所述服务器返回资源申请成功消息之后,所述方法还包括:
接收所述服务器返回的回滚操作请求;
根据所述回滚操作请求携带的请求ID释放与所述回滚操作请求携带的请求ID绑定的资源。
为实现上述目的,本发明第三方面还提供一种微服务调用的装置,适用于微服务框架中的服务器,包括:
请求获取模块,用于获取微服务调用请求,所述微服务调用请求包括资源参数;
ID请求模块,用于为所述微服务调用请求申请请求ID;
发送模块,用于根据所述资源参数将所述微服务调用请求连同所述请求ID发送给微服务节点,由微服务节点根据所述参数资源分配资源并将分配的资源与所述请求ID绑定;
接收模块,用于接收微服务节点返回的请求处理结果;
所述发送模块,还用于在所述请求处理结果为资源申请失败消息时,向已返回资源申请成功消息的微服务节点发送回滚操作请求,所述回滚操作请求携带所述请求ID,由所述已返回资源申请成功消息的微服务节点根据所述请求ID释放与所述请求ID绑定的资源。
为实现上述目标,本发明第四方面还提供一种微服务调用的装置,微服务框架中的微服务节点,所述微服务节点包括:
接收模块,用于接收服务器发送的微服务调用请求及所述微服务调用请求的请求ID;
资源分配模块,用于根据所述微服务调用请求执行资源分配操作;
接收模块,用于接收服务器发送的微服务调用请求及所述微服务调用请求的请求ID;
资源分配模块,用于根据所述微服务调用请求执行资源分配操作;
资源绑定模块,用于在为所述微服务调用请求分配资源成功时,将分配的资源与所述请求ID绑定;
发送模块,还用于在分配资源成功时向所述服务器发送资源申请成功消息,所述资源申请成功消息携带所述请求ID,或者还用于在为所述微服务调用请求分配资源失败时,向所述服务器发送资源申请失败消息,所述资源申请失败消息携带所述请求ID。
为实现上述目的,本发明第五方面还提供一种微服务调用系统,包括服务器以及与所述服务器通信连接的微服务节点:
所述服务器包括第一存储器和第一处理器,所述第一存储器中存储有微服务调用程序,所述微服务调用程序被所述第一处理器执行时实现如第一方面所述的方法步骤;
所述微服务节点包括第二存储器和第二处理器,所述第二存储器中存储有微服务调用程序,所述微服务调用程序被所述第二处理器执行时实现如第二方面所述的方法步骤。
此外,为实现上述目的,本发明第五方面还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有微服务调用程序,所述微服务调用程序被处理器执行时,实现如第一方面所述的微服务调用的方法的步骤。
本发明提出的微服务协同调用的方法、装置、系统及计算机可读存储介质,通过为接收的微服务调用请求申请请求ID,使被调用的微服务节点在分配资源后将分配的资源与该请求ID绑定,从而在微服务节点返回的请求处理结果为资源申请失败消息时,能够快速的向已返回资源申请成功消息的微服务节点发送携带该请求ID的回滚操作请求,使得各微服务节点直接根据所述请求ID释放与所述请求ID绑定的资源,实现快速针对出现问题的调用请求进行处理的目的。
附图说明
为了更清楚地说明本发明中的方案,下面将对实施例描述中所需要使用的附图作一个简单介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一提供的一种适用于微服务框架中的服务器的微服务调用的方法的流程图;
图2为本发明实施例二提供的一种适用于微服务框架中的微服务节点的微服务调用的方法的流程图;
图3为本发明实施例三的利用微服务申请云主机的微服务架构示意图;
图4为本发明实施例三提供的利用微服务申请云主机的微服务调用的方法的流程图;
图5为本发明实施例四提供的一种适用于微服务框架中的服务器的微服务调用的装置的模块结构示意图;
图6为本发明实施例五提供的一种适用于微服务框架中的微服务节点的微服务调用的装置的模块结构示意图;
图7为本发明实施例六提供的一种微服务调用系统的示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例提供了一种微服务调用的方法,应用于微服务框架中的服务器,请参阅图1,该方法包括:
步骤S101、获取微服务调用请求,该微服务调用请求包括资源参数;
步骤S102、为该微服务调用请求申请请求ID(Identification,身份标识);
步骤S103、根据该资源参数将该微服务调用请求连同该请求ID发送给微服务节点,由微服务节点根据该资源参数分配资源并将分配的资源与该请求ID绑定;
步骤S104、接收微服务节点返回的请求处理结果;
步骤S105、当该结果为资源申请失败消息时,向已返回资源申请成功消息的微服务节点发送回滚操作请求,该回滚操作请求携带该请求ID,由各微服务节点根据该请求ID释放与该请求ID绑定的资源。
在一个可行的实例中,所述资源参数包括服务节点ID及服务调用顺序,该根据该资源参数将该微服务调用请求连同该请求ID发送给微服务节点,包括:
根据该服务节点ID及服务调用顺序将该微服务调用请求连同该请求ID依次发送给该资源参数指向的多个微服务节点;
该接收微服务节点返回的请求处理结果之后,该方法还包括:
当该结果为资源申请成功消息时,将该微服务调用请求连同该请求ID发送给下一微服务节点。
实际应用中,资源请求中的资源参数可以包括多种资源,不同的微服务节点负责分配不同的资源,因此,资源参数会指向不同的微服务节点。
实际应用中,由于微服务调用请求中请求的各资源存在依赖关系,后面的资源要依赖前面的资源,因此其业务逻辑是流水线形式,也就是说请求资源的顺序就是按照依赖关系依次向提供各资源的微服务节点发送请求。
实际应用中,微服务调用请求携带的资源参数还可以包括用户ID、项目ID、请求时间等。
本实施例的微服务节点一般会返回成功或失败的消息。
当服务器接收到当前微服务节点返回的资源申请成功消息,获取与该请求ID绑定的资源之后,会向下一微服务节点发送该微服务请求。
当接收当前微服务返回的资源申请失败消息之后,会向之前返回资源申请成功消息的所有微服务节点发送回滚操作请求并在该回滚操作请求携带该请求ID,由各微服务根据该请求ID释放与该请求ID绑定的资源。
实际应中,请求失败后释放当前请求获取的资源,被释放的资源可以继续供其他请求使用,实现资源的合理利用。
在一个可行的实例中,该接收微服务返回的请求处理结果之后,该方法还包括:
根据请求处理结果将请求参数以及请求结果和/或失败原因生成日志,该日志包含该请求ID;
将生成的日志写入预设的日志平台。
实际应用中,每当服务器接收一个微服务返回的请求处理结果时,便可根据该结果生成日志,无需等待所有结果进行汇总。
在一个可行的实施例中,该根据微服务调用请求的资源参数将该微服务调用请求连同该请求ID发送给至少一个微服务节点之后,该方法还包括:
接收微服务节点反馈的微服务调用请求的健康状态;
将该微服务调用请求的健康状态写入操作数据库;
该健康状态的参数包括:正常/失败或请求负载、请求时长等参数。
具体的,请求负载是指业务的并发数量,比如根据业务量确定请求负载。
健康状态是由微服务节点反馈,如果向微服务节点发送微服务调用请求后在预设的时间内回复就表示健康,否则表示出现异常。将健康状态写入操作数据库后可以实现快速定位问题,实时监控,出问题了可及时处理,比如负载高了就可以扩容。
本实施例的微服务协同调用的方法,通过为接收的微服务调用请求申请请求ID,使被调用的微服务节点在分配资源后,将分配的资源与该请求ID绑定,从而在微服务节点返回的请求处理结果为资源申请失败消息时,能够快速的向已返回资源申请成功消息的微服务节点发送携带该请求ID的回滚操作请求,使得各微服务节点直接根据该请求ID释放与该请求ID绑定的资源,实现快速针对出现问题的调用请求进行处理的目的。
在前述实施例的基础上,本发明实施例二提供了另一种微服务调用的方法,适用于微服务框架中的微服务节点。请参阅图2,该方法包括:
步骤S201、微服务节点接收服务器发送的微服务调用请求及该微服务调用请求的请求ID;
步骤S202、根据该微服务调用请求执行资源分配操作,若资源分配成功,执行步骤S203,否则执行步骤S204;
步骤S203、将分配的资源与该请求ID绑定,并向该服务器返回资源申请成功消息,该资源申请成功消息携带该请求ID;
步骤S204、向该服务器返回资源申请失败消息,该资源申请失败消息携带该请求ID。
在一个可行的实施例中,该向该服务器返回资源申请成功消息之后,该方法还包括:
接收该服务器返回的回滚操作请求;
根据该回滚操作请求携带的请求ID释放与该回滚操作请求携带的请求ID绑定的资源。
本实施例的微服务协同调用的方法,通过为接收的微服务调用请求申请请求ID,使被调用的微服务节点在分配资源后,将分配的资源与该请求ID绑定,从而在微服务节点返回的请求处理结果为资源申请失败消息时,能够快速的向已返回资源申请成功消息的微服务节点发送携带该请求ID的回滚操作请求,使得各微服务节点直接根据该请求ID释放与该请求ID绑定的资源,实现快速针对出现问题的调用请求进行处理的目的。
在前述实施例的基础上,本发明实施例三提供了另一种微服务协同调用的方法,该方法以利用微服务申请云主机为例进行说明。请参阅图3,本实施例中云主机申请服务被划分为Request ID申请、CPU资源申请、内存资源申请、硬盘资源申请及带宽资源申请,分别对应Request ID微服务节点、CPU资源分配微服务节点、内存资源分配微服务节点、硬盘资源分配微服务节点及带宽资源分配微服务节点。请参阅图4,方法流程包括:
步骤S301、客户端向服务器发起一个微服务调用请求。
实际应用中,客户端包括手机、平板电脑、笔记本电脑、掌上电脑、个人数字助理(Personal Digital Assistant,PDA)、便捷式媒体播放器(Portable Media Player,PMP)、导航装置、可穿戴设备、智能手环、计步器等移动终端,以及诸如数字TV、台式计算机等固定终端。
步骤S302、服务器从RequestID微服务节点申请一个全局的申请ID(Request ID),若申请成功,执行步骤S303,否则,请求结束,向客户端返回失败消息。
步骤S303、服务器向CPU资源分配微服务节点发送微服务调用请求申请CPU资源,该微服务调用请求携带申请ID。
步骤S304、CPU资源分配微服务节点为本次微服务调用请求分配CPU资源,若成功执行步骤S305,否则执行步骤S316。
步骤S305、CPU资源分配微服务节点为分配的CPU资源绑定Request ID,并向服务器返回资源申请成功消息。
步骤S306、服务器接收资源申请成功消息,向内存资源分配微服务节点发送微服务调用请求申请内存资源,该微服务调用请求携带申请ID。
步骤S307、内存资源分配微服务节点为本次微服务调用请求分配内存资源,若成功,执行步骤S308,否则,执行步骤S316.
步骤S308、内存资源分配微服务节点为分配的内存资源绑定Request ID,并向服务器返回资源申请成功消息。
步骤S309、服务器接收资源申请成功消息,向硬盘资源分配微服务节点发送微服务调用请求申请硬盘资源,该微服务调用请求携带申请ID。
步骤S310、硬盘资源分配微服务节点为本次微服务调用请求分配硬盘资源,若成功,执行步骤S311,否则,执行步骤S316.
步骤S311、硬盘资源分配微服务节点为分配的硬盘资源绑定Request ID,并向服务器返回资源申请成功消息。
步骤S312、服务器接收资源申请成功消息,向带宽资源分配微服务节点发送微服务调用请求申请带宽资源,该微服务调用请求携带申请ID。
步骤S313、带宽资源分配微服务节点为本次微服务调用请求分配带宽资源,若成功,执行步骤S314,否则,执行步骤S316.
步骤S314、带宽资源分配节点为分配的带宽资源绑定Request ID,并向服务器返回资源申请成功消息。
步骤S315、服务器接收资源申请成功消息,将本次次请求申请的Request ID状态标记为成功,并向客户端返回云主机申请成功消息。
步骤S316、向服务器端发送资源申请失败消息。
步骤S317、服务器接收资源申请失败消息,向所有已返回资源申请成功消息的微服务节点发送回滚操作请求,该回滚操作请求携带Request ID,并执行步骤S318。
步骤S318、将本次次请求申请的Request ID状态标记为失败,向客户端返回云主机申请失败消息。
本步骤中,如果资源申请失败消息是CPU资源分配微服务节点返回的,则直接执行步骤318;如果资源申请失败消息是内存资源资源分配微服务节点发送的,则向CPU资源分配微服务节点发送回滚操作请求;如果资源申请失败消息是硬盘资源分配微服务节点发送的,则向CPU资源分配微服务节点和内存资源资源分配微服务节点发送回滚操作请求;如果资源申请失败消息是带宽资源资源分配节点返回的,则向CPU资源分配微服务节点、内存资源资源分配微服务节点和硬盘资源分配微服务节点发送回滚操作请求。
步骤S319、接收回滚操作请求的微服务节点释放与该Request ID绑定的资源。
实际应用中,每当服务器接收一个微服务返回的请求处理结果时,便可根据该结果生成日志。
实际应用中,当微服务节点接收到微服务调用请求后,都会向服务器反馈该微服务调用请求的健康状态,由服务器将所述微服务调用请求的健康状态写入操作数据库。例如可以设置如果在向微服务节点发送微服务调用请求之后3秒内回复就表示健康,超过3秒表示出现异常。将健康状态写入操作数据库后可以实现快速定位问题,实时监控,出问题了可及时处理,比如负载高了就可以扩容。
本实施例中,每个微服务节点都需要支持如下操作:为微服务调用请求分配资源和回滚操作,这两个操作都需要接受Request ID作为请求参数;在资源分配成功之后,都需要把申请的资源绑定到Request ID,方便后续执行回滚操作。
本实施例中将请求参数以及请求结果、失败原因写日志,并写入统一的日志平台,通过日志以及Request ID,可以快速定位请求异常出现在对应哪个微服务,并且查看请求失败的具体原因。并且请求的健康状态可以写入数据库(Date Base,DB)。能够实时监控、统计微服务的健康状况,包括:正常、失败、请求负载等数据。在出现异常的情况下,能够及时的定位并且恢复服务。
在前述实施例的基础上,本发明实施例四提供了一种微服务调用的装置,适用于微服务框架中的服务器,请参与图5,该装置包括:
请求获取模块501,用于获取微服务调用请求,该微服务调用请求包括资源参数;
ID请求模块502,用于为该微服务调用请求申请请求ID;
发送模块503,用于根据该资源参数将该微服务调用请求连同该请求ID发送给微服务节点,由微服务节点根据该资源参数分配资源并将分配的资源与该请求ID绑定;
接收模块504,用于接收微服务节点返回的请求处理结果;
所述发送模块503,还用于在该结果为资源申请失败消息时,向已返回资源申请成功消息的微服务节点发送回滚操作请求,该回滚操作请求携带该请求ID,由各微服务节点根据该请求ID释放与该请求ID绑定的资源。
在一个可行的实例中,资源参数包括服务节点ID及服务调用顺序,该发送模块,还用于根据该服务节点ID及服务调用顺序将该微服务调用请求连同该请求ID依次发送给该资源参数指向的多个微服务节点,以及用于在该接收模块504接收微服务节点返回的请求处理结果为资源申请成功消息时,将该微服务调用请求连同该请求ID发送给下一微服务节点。
实际应用中,由于微服务调用请求中请求的各资源存在依赖关系,后面的资源要依赖前面的资源,因此其业务逻辑是流水线形式,也就是说请求资源的顺序就是按照依赖关系依次向提供各资源的微服务节点发送请求。
实际应用中,微服务调用请求携带的资源参数还可以包括用户ID、项目ID、请求时间等。
本实施例的微服务节点一般会返回成功或失败的消息。
当服务器接收到当前微服务节点返回的资源申请成功消息,获取与该请求ID绑定的资源之后,会向下一微服务节点发送该微服务请求。
当接收当前微服务返回的资源申请失败消息之后,会向之前返回资源申请成功消息的所有微服务节点发送回滚操作请求并在该回滚操作请求携带该请求ID,由各微服务根据该请求ID释放与该请求ID绑定的资源。
实际应中,请求失败后释放当前请求获取的资源,被释放的资源可以继续供其他请求使用,实现资源的合理利用。
在其中一个实施例中,该装置还包括:
日志生成模块,用于根据请求处理结果将请求参数以及请求结果和/或失败原因生成日志,该日志包含该请求ID;
日志存储模块,用于将生成的日志写入预设的日志平台。
在其中一个实施例中,该装置还包括:
健康状态存储模块,用于在接收模块504接收微服务节点反馈的微服务调用请求的健康状态之后,将该微服务调用请求的健康状态写入操作数据库;
健康状态的参数包括:正常/失败或请求负载、请求时长。
具体的,请求负载是指业务的并发数量,比如根据业务量确定请求负载。
健康状态是由微服务节点反馈,如果向微服务节点发送微服务调用请求后在预设的时间内回复就表示健康,否则表示出现异常。将健康状态写入操作数据库后可以实现快速定位问题,实时监控,出问题了可及时处理,比如负载高了就可以扩容。
本实施例的微服务调用的装置,通过为接收的微服务调用请求申请请求ID,使被调用的微服务节点在分配资源后将分配的资源与该请求ID绑定,从而在微服务节点返回的请求处理结果为资源申请失败消息时,能够快速的向已返回资源申请成功消息的微服务节点发送携带该请求ID的回滚操作请求,使得各微服务节点直接根据该请求ID释放与该请求ID绑定的资源,实现快速针对出现问题的调用请求进行处理的目的。
在前述实施例的基础上,本发明实施例五提供了另一种微服务调用的装置,微服务框架中的微服务节点,请参阅图6,该装置包括:
接收模块601,用于接收该微服务调用请求及该请求ID;
资源分配模块602,用于根据该微服务调用请求执行资源分配操作;
资源绑定模块603,用于在为所述微服务调用请求分配资源成功时,将分配的资源与所述请求ID绑定;
发送模块604,还用于在分配资源成功时向所述服务器发送资源申请成功消息,所述资源申请成功消息携带所述请求ID,或者还用于在为所述微服务调用请求分配资源失败时,向所述服务器发送资源申请失败消息,所述资源申请失败消息携带所述请求ID。
在一个可行的实例中,该装置还包括资源释放模块,用于在接收模块601接收到该服务器返回的回滚操作请求时,根据该回滚操作请求携带的请求ID释放与该回滚操作请求携带的请求ID绑定的资源。
本实施例的微服务调用的装置,在为接收的微服务调用请求分配资源之后,将分配的资源与该微服务调用请求的请求ID绑定,从而使服务器在微服务节点返回的请求处理结果为资源申请失败消息时,能够快速的向已返回资源申请成功消息的微服务节点发送携带该请求ID的回滚操作请求,使得各微服务节点直接根据该请求ID释放与该请求ID绑定的资源,实现快速针对出现问题的调用请求进行处理的目的。
在前述实施例的基础上,本发明实施例五提供一种微服务调用系统,请参阅图7,包括服务器701以及与所述服务器通信连接的微服务节点702。
该服务器包括通过系统总线相互通信连接存储器7011、处理器7012、网络接口7013。需要指出的是,图中仅示出了具有组件7011-7013的服务器701,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的服务器是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable GateArray,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
该服务器可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。该服务器可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
该存储器7011至少包括一种类型的可读存储介质,该可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,该存储器7011可以是该服务器701的内部存储单元,例如该服务器701的硬盘或内存。在另一些实施例中,该存储器7011也可以是该服务器701的外部存储设备,例如该服务器701上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,该存储器7011还可以既包括该服务器701的内部存储单元也包括其外部存储设备。本实施例中,该存储器7011通常用于存储安装于该服务器701的操作系统和各类应用软件,例如第一实施例的微服务协同调用方法的程序代码等。此外,该存储器7011还可以用于暂时地存储已经输出或者将要输出的各类数据。
该处理器7012在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器7012通常用于控制该服务器701的总体操作。本实施例中,该处理器7012用于运行该存储器7011中存储的程序代码或者处理数据,例如运行第一实施例的微服务协同调用方法的程序代码。
该微服务节点702包括通过系统总线相互通信连接存储器7021、处理器7022、网络接口7023。需要指出的是,图中仅示出了具有组件7021-7023的微服务节点702,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的微服务节点是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路ASIC、可编程门阵列FPGA、数字处理器DSP、嵌入式设备等。
该微服务节点可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。该微服务节点可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
该存储器7021至少包括一种类型的可读存储介质,该可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,该存储器7021可以是该微服务节点702的内部存储单元,例如该微服务节点702的硬盘或内存。在另一些实施例中,该存储器7021也可以是该微服务节点702的外部存储设备,例如该微服务节点702上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,该存储器7021还可以既包括该微服务节点702的内部存储单元也包括其外部存储设备。本实施例中,该存储器7021通常用于存储安装于该微服务节点702的操作系统和各类应用软件,例如第二实施例的微服务协同调用方法的程序代码等。此外,该存储器7021还可以用于暂时地存储已经输出或者将要输出的各类数据。
该处理器7022在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器7022通常用于控制该微服务节点702的总体操作。本实施例中,该处理器7022用于运行该存储器7021中存储的程序代码或者处理数据,例如运行第二实施例的微服务协同调用方法的程序代码。
该网络接口703可包括无线网络接口或有线网络接口,该网络接口7033通常用于在该服务器701、微服务节点702之间以及与其他电子设备之间建立通信连接。
在前述实施例的基础上,本发明实施例六提供一种计算机可读存储介质,该计算机可读存储介质上存有微服务调用程序,该微服务调用程序被处理器执行时,实现如实施例一或实施例二所述的微服务调用的方法的步骤。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种微服务调用的方法,应用于微服务框架中的服务器,其特征在于,所述方法包括:
获取微服务调用请求,所述微服务调用请求包括资源参数;
为所述微服务调用请求申请请求ID;
根据所述资源参数将所述微服务调用请求连同所述请求ID发送给微服务节点,由微服务节点根据所述资源参数分配资源并将分配的资源与所述请求ID绑定;
接收微服务节点返回的请求处理结果;
当所述请求处理结果为资源申请失败消息时,向已返回资源申请成功消息的微服务节点发送回滚操作请求,所述回滚操作请求携带所述请求ID,由所述已返回资源申请成功消息的微服务节点根据所述请求ID释放与所述请求ID绑定的资源。
2.如权利要求1所述的微服务调用的方法,其特征在于,所述接收所述微服务返回的请求处理结果之后,所述方法还包括:
根据所述请求处理结果将请求参数以及请求结果和/或失败原因生成日志,所述日志包含所述请求ID;
将生成的日志写入预设的日志平台。
3.如权利要求1所述的微服务调用的方法,其特征在于,所述根据所述微服务调用请求的资源参数将所述微服务调用请求连同所述请求ID发送给微服务节点之后,所述方法还包括:
接收微服务节点反馈的微服务调用请求的健康状态,所述健康状态的参数包括:正常、失败、请求负载、请求时长中的至少一个;
将所述微服务调用请求的健康状态写入操作数据库。
4.如权利要求1所述的微服务调用的方法,其特征在于,所述资源参数包括服务节点ID及服务调用顺序;所述根据所述资源参数将所述微服务调用请求连同所述请求ID发送给微服务节点的步骤包括:
根据所述服务节点ID及服务调用顺序将所述微服务调用请求连同所述请求ID依次发送给所述资源参数指向的多个微服务节点;
所述接收微服务节点返回的请求处理结果的步骤之后,所述方法还包括:
当所述结果为资源申请成功消息时,将所述微服务调用请求连同所述请求ID发送给下一微服务节点。
5.一种微服务调用的方法,应用于微服务框架中的微服务节点,其特征在于,所述方法包括:
微服务节点接收服务器发送的微服务调用请求及所述微服务调用请求的请求ID;
根据所述微服务调用请求执行资源分配操作;
若为所述微服务调用请求分配资源成功,则将分配的资源与所述请求ID绑定,并向所述服务器返回资源申请成功消息,所述资源申请成功消息携带所述请求ID;
若为所述微服务调用请求分配资源失败,则向所述服务器返回资源申请失败消息,所述资源申请失败消息携带所述请求ID。
6.如权利要求5所述的微服务调用的方法,其特征在于,所述向所述服务器返回资源申请成功消息之后,所述方法还包括:
所述微服务节点接收所述服务器返回的回滚操作请求;
根据所述回滚操作请求携带的请求ID释放与所述回滚操作请求携带的请求ID绑定的资源。
7.一种微服务调用的装置,适用于微服务框架中的服务器,其特征在于,包括:
请求获取模块,用于获取微服务调用请求,所述微服务调用请求包括资源参数;
ID请求模块,用于为所述微服务调用请求申请请求ID;
发送模块,用于根据所述资源参数将所述微服务调用请求连同所述请求ID发送给微服务节点,由微服务节点根据所述资源参数分配资源并将分配的资源与所述请求ID绑定;
接收模块,用于接收微服务节点返回的请求处理结果;
所述发送模块,还用于在所述请求处理结果为资源申请失败消息时,向已返回资源申请成功消息的微服务节点发送回滚操作请求,所述回滚操作请求携带所述请求ID,由所述已返回资源申请成功消息的微服务节点根据所述请求ID释放与所述请求ID绑定的资源。
8.一种微服务调用的装置,适用于微服务框架中的微服务节点,其特征在于,包括:
接收模块,用于接收服务器发送的微服务调用请求及所述微服务调用请求的请求ID;
资源分配模块,用于根据所述微服务调用请求执行资源分配操作;
资源绑定模块,用于在为所述微服务调用请求分配资源成功时,将分配的资源与所述请求ID绑定;
发送模块,还用于在分配资源成功时向所述服务器发送资源申请成功消息,所述资源申请成功消息携带所述请求ID,或者还用于在为所述微服务调用请求分配资源失败时,向所述服务器发送资源申请失败消息,所述资源申请失败消息携带所述请求ID。
9.一种微服务调用系统,其特征在于,包括服务器以及与所述服务器通信连接的微服务节点;
所述服务器包括第一存储器和第一处理器,所述第一存储器中存储有微服务调用程序,所述微服务调用程序被所述第一处理器执行时实现如权利要求1至4任一项所述的方法步骤;
所述微服务节点包括第二存储器和第二处理器,所述第二存储器中存储有微服务调用程序,所述微服务调用程序被所述第二处理器执行时实现如权利要求5或6所述的方法步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有微服务调用程序,所述微服务调用程序被处理器执行时,实现如权利要求1至6中任一项所述的微服务调用的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811549809.4A CN109800083A (zh) | 2018-12-18 | 2018-12-18 | 一种微服务协同调用的方法、装置、系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811549809.4A CN109800083A (zh) | 2018-12-18 | 2018-12-18 | 一种微服务协同调用的方法、装置、系统及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109800083A true CN109800083A (zh) | 2019-05-24 |
Family
ID=66557184
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811549809.4A Pending CN109800083A (zh) | 2018-12-18 | 2018-12-18 | 一种微服务协同调用的方法、装置、系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109800083A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111431970A (zh) * | 2020-02-29 | 2020-07-17 | 深圳壹账通智能科技有限公司 | 基于微服务架构的资源分配方法、装置、设备及存储介质 |
CN112231089A (zh) * | 2020-11-02 | 2021-01-15 | 广州市网星信息技术有限公司 | 任务调度方法、装置、设备、系统及存储介质 |
CN112637380A (zh) * | 2020-12-31 | 2021-04-09 | 网络通信与安全紫金山实验室 | 一种分布式集群id资源管理方法、系统、设备及介质 |
CN112667685A (zh) * | 2020-12-29 | 2021-04-16 | 北京先进数通信息技术股份公司 | 一种流水号配置方法、装置、设备及存储介质 |
CN113703945A (zh) * | 2021-08-31 | 2021-11-26 | 平安普惠企业管理有限公司 | 微服务集群的调度方法、装置、设备及存储介质 |
CN114553943A (zh) * | 2022-01-26 | 2022-05-27 | 苏州浪潮智能科技有限公司 | 一种云平台业务层统一信息回滚方法、装置、终端及介质 |
CN112667685B (zh) * | 2020-12-29 | 2024-04-16 | 北京先进数通信息技术股份公司 | 一种流水号配置方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016180164A1 (zh) * | 2015-09-29 | 2016-11-17 | 中兴通讯股份有限公司 | 一种分布式事务回滚方法及装置 |
CN106325978A (zh) * | 2015-06-19 | 2017-01-11 | 阿里巴巴集团控股有限公司 | 分布式事务的处理方法及装置 |
CN106533929A (zh) * | 2016-12-30 | 2017-03-22 | 北京中电普华信息技术有限公司 | 一种微服务开发平台、生成方法以及部署方法和装置 |
CN108427581A (zh) * | 2018-02-07 | 2018-08-21 | 平安普惠企业管理有限公司 | 系统微服务化方法及终端设备 |
CN108924221A (zh) * | 2018-06-29 | 2018-11-30 | 华为技术有限公司 | 分配资源的方法和装置 |
-
2018
- 2018-12-18 CN CN201811549809.4A patent/CN109800083A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106325978A (zh) * | 2015-06-19 | 2017-01-11 | 阿里巴巴集团控股有限公司 | 分布式事务的处理方法及装置 |
WO2016180164A1 (zh) * | 2015-09-29 | 2016-11-17 | 中兴通讯股份有限公司 | 一种分布式事务回滚方法及装置 |
CN106557514A (zh) * | 2015-09-29 | 2017-04-05 | 中兴通讯股份有限公司 | 一种分布式事务回滚方法及装置 |
CN106533929A (zh) * | 2016-12-30 | 2017-03-22 | 北京中电普华信息技术有限公司 | 一种微服务开发平台、生成方法以及部署方法和装置 |
CN108427581A (zh) * | 2018-02-07 | 2018-08-21 | 平安普惠企业管理有限公司 | 系统微服务化方法及终端设备 |
CN108924221A (zh) * | 2018-06-29 | 2018-11-30 | 华为技术有限公司 | 分配资源的方法和装置 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111431970A (zh) * | 2020-02-29 | 2020-07-17 | 深圳壹账通智能科技有限公司 | 基于微服务架构的资源分配方法、装置、设备及存储介质 |
CN111431970B (zh) * | 2020-02-29 | 2023-05-26 | 深圳壹账通智能科技有限公司 | 基于微服务架构的资源分配方法、装置、设备及存储介质 |
CN112231089A (zh) * | 2020-11-02 | 2021-01-15 | 广州市网星信息技术有限公司 | 任务调度方法、装置、设备、系统及存储介质 |
CN112667685A (zh) * | 2020-12-29 | 2021-04-16 | 北京先进数通信息技术股份公司 | 一种流水号配置方法、装置、设备及存储介质 |
CN112667685B (zh) * | 2020-12-29 | 2024-04-16 | 北京先进数通信息技术股份公司 | 一种流水号配置方法、装置、设备及存储介质 |
CN112637380A (zh) * | 2020-12-31 | 2021-04-09 | 网络通信与安全紫金山实验室 | 一种分布式集群id资源管理方法、系统、设备及介质 |
CN112637380B (zh) * | 2020-12-31 | 2022-09-06 | 网络通信与安全紫金山实验室 | 一种分布式集群id资源管理方法、系统、设备及介质 |
CN113703945A (zh) * | 2021-08-31 | 2021-11-26 | 平安普惠企业管理有限公司 | 微服务集群的调度方法、装置、设备及存储介质 |
CN113703945B (zh) * | 2021-08-31 | 2024-02-20 | 深圳市兴海物联科技有限公司 | 微服务集群的调度方法、装置、设备及存储介质 |
CN114553943A (zh) * | 2022-01-26 | 2022-05-27 | 苏州浪潮智能科技有限公司 | 一种云平台业务层统一信息回滚方法、装置、终端及介质 |
CN114553943B (zh) * | 2022-01-26 | 2023-08-08 | 苏州浪潮智能科技有限公司 | 一种云平台业务层统一信息回滚方法、装置、终端及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109800083A (zh) | 一种微服务协同调用的方法、装置、系统及存储介质 | |
CN109471710A (zh) | 任务请求的处理方法、装置、处理器、终端及服务器 | |
CN112667414A (zh) | 基于消息队列的消息消费方法、装置、计算机设备及介质 | |
CN109891391A (zh) | 按需资源供应 | |
CN110221901A (zh) | 容器资源创建方法、装置、设备及计算机可读存储介质 | |
WO2021031472A1 (zh) | 智能合约处理方法、装置、计算机设备及存储介质 | |
US20190207823A1 (en) | Dynamic delivery of software functions | |
CN109656599A (zh) | 用于客户端版本更新的方法及系统 | |
CN112104723A (zh) | 一种多集群的数据处理系统及方法 | |
CN112579622B (zh) | 业务数据的处理方法、装置及设备 | |
CN108900627B (zh) | 一种网络请求方法、终端装置及存储介质 | |
CN112199353A (zh) | 一种数据处理方法及电力客户服务平台 | |
CN115543615A (zh) | 一种资源分配方法、装置、电子设备及存储介质 | |
CN110659104B (zh) | 一种业务监控方法及相关设备 | |
CN108958933B (zh) | 任务执行器的配置参数更新方法、装置及设备 | |
CN109684547A (zh) | 用于处理信息的方法和装置 | |
CN115361382B (zh) | 基于数据群组的数据处理方法、装置、设备和存储介质 | |
CN110659916A (zh) | 一种订单金额的拆分方法和装置 | |
CN108197029A (zh) | 一种获取进程信息的方法和设备 | |
CN113254825A (zh) | 页面生成的方法、装置、电子设备和存储介质 | |
CN110019456A (zh) | 数据导入方法、装置和系统 | |
CN113741862A (zh) | 移动端扩展开发的通信系统和方法 | |
CN111506340B (zh) | 业务规则信息处理方法、装置及系统 | |
CN111353811A (zh) | 一种资源统一发放方法及系统 | |
CN109561146A (zh) | 文件下载方法、装置、终端设备 |
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 |