基于微服务的协作处理方法、系统及服务器技术方案

技术编号:15288034 阅读:96 留言:0更新日期:2017-05-10 12:30
本发明专利技术公开了基于微服务的协作处理方法、系统及服务器,其中,所述协作处理方法通过服务接口向后台的微服务的工作接口发起请求;之后所述服务接口接收所述微服务的处理结果,并根据处理结果更新对应微服务的请求状态数据,查询所有微服务的请求状态数据,并判断是否存在处理状态为失败的微服务,若是,则向处理状态为失败的微服务重新发起请求,所述服务接口接收所有处理状态为失败的微服务的处理结果;之后整合所有微服务的处理结果返回至用户请求端,通过查询的方式将处理失败的微服务交给查询接口处理,并将功能操作与数据返回进行拆分,解决了多个服务之间非幂等操作与幂等操作的协同,保证数据的正确性。

Cooperative processing method, system and server based on micro service

The present invention discloses the cooperative processing method, micro service system and server, based on the cooperative processing method through the service interface to the background of the micro interface service request processing results; after the service interface receives the service request and the micro, according to the results of processing the corresponding micro state data update service all service requests, query the micro state data, and whether there is micro treatment services, if failed, to the treatment of micro service status for the failure of the re launch the request, the service interface receives all processing state micro service processing result of the failure; after the integration of all processing results back to the micro service end user request failed, by way of the query processing of micro services to the query interface, and the function of data operation and return the demolition In this paper, the coordination between non idempotent operation and idempotent operation is solved to ensure the correctness of data.

【技术实现步骤摘要】

本专利技术涉及分布式系统
,特别涉及基于微服务的协作处理方法、系统及服务器
技术介绍
微服务是一个新兴的软件架构,把一个大型的单个应用程序和服务拆分为数十个的支持微服务,一个微服务的策略可以让工作变得更为简便,它可扩展单个组件而不是整个的应用程序堆栈,从而满足服务等级协议。然而,各个服务之间的协作会因为各种原因而变的不同步,比如A服务请求B服务完成一个任务,并且这个服务的操作不具备幂等性。那么如果在请求后出现错误,A服务就不清楚服务是否完成,由于B服务功能不具备幂等性,所以A服务不能向B服务重新发请操作。比如,B服务是一个扣费操作,如果先前的操作是成功的,但只是在返回给A服务时出现了估障导致A服务没有收到成功消息,如果A服务再次向B服务发出同样请求那么就会出现多扣费的现情况。因此微服务中的非幂等与幂等操作还存在协作问题亟需解决。因而现有技术还有待改进和提高。
技术实现思路
鉴于上述现有技术的不足之处,本专利技术的目的在于提供基于微服务的协作处理方法、系统及服务器,通过查询的方式将处理失败的微服务交给查询接口处理,并将功能操作与数据返回进行拆分,存在非幂等操作时可避免由于重复操作导致的数据不一致,在幂等操作中则可减少服务请求次数,减轻负载压力。为了达到上述目的,本专利技术采取了以下技术方案:一种基于微服务的协作处理方法,其包括如下步骤:A、服务接口向后台的微服务的工作接口发起请求;B、所述服务接口接收所述微服务的处理结果,并根据处理结果更新对应微服务的请求状态数据;C、查询所有微服务的请求状态数据,并判断是否存在处理状态为失败的微服务,若是,则执行步骤D;若否,则执行步骤E;D、向处理状态为失败的微服务重新发起请求,所述服务接口接收所有处理状态为失败的微服务的处理结果;E、整合所有微服务的处理结果返回至用户请求端。所述的基于微服务的协作处理方法中,所述步骤A之前还包括步骤:A01、服务接口进行数据预处理,并获取一预设标识符作为密钥,将所述密钥、每个微服务的请求状态数据和处理结果一并存入数据库中。所述的基于微服务的协作处理方法中,所述步骤A01之后、步骤A之前还包括步骤:A02、将所有微服务的初始请求状态数据设置为处理中,初始处理结果设置为空,并存入数据库中;A03、判断存入数据库时是否出错,若是,则直接返回处理错误至请求端;若否,则继续执行步骤A。所述的基于微服务的协作处理方法中,所述步骤A具体包括:所述服务接口选择后台微服务中的一个微服务,向其工作接口发起请求,并将所述密钥一并发送至该微服务。所述的基于微服务的协作处理方法中,所述步骤B包括步骤:B1、所述服务接口接收该被选择的微服务的处理结果;B2、所述服务接口根据接收的处理结果更新该被选择的微服务的请求状态数据,并返回步骤A,继续向下一个微服务的工作接口发起请求,直到所有微服务都执行完毕。所述的基于微服务的协作处理方法中,所述步骤C包括步骤:C1、通过所述密钥请求调用所述服务接口的查询接口;C2、所述查询接口查询所有微服务的请求状态数据,并判断是否存在处理失败的微服务;C3、若存在处理状态为失败的微服务,根据所述密钥查询所有处理状态为失败的微服务,并执行步骤D;若不存在处理状态为失败的微服务,则执行步骤E。所述的基于微服务的协作处理方法中,所述步骤D包括步骤:D1、向其中一个处理状态为失败的微服务的工作接口重新发起请求;D2、所述服务接口接收该处理状态为失败的微服务返回的处理结果;D3、返回步骤D1,继续向下一个处理状态为失败的微服务的工作接口发起请求,直到所有处理状态为失败的微服务都执行完毕。一种基于微服务的协作处理系统,其包括:第一请求发起模块,用于控制服务接口向后台的微服务的工作接口发起请求;第一接收更新模块,用于控制服务接口接收所述微服务的处理结果,并根据处理结果更新对应微服务的请求状态数据;查询模块,用于查询所有微服务的请求状态数据,并判断是否存在处理状态为失败的微服务;第二请求发起模块,用于当存在处理状态为失败的微服务时,向各个处理状态为失败的微服务重新发起请求,以及控制所述服务接口接收所有处理状态为失败的微服务的处理结果;数据返回模块,用于整合所有微服务的处理结果返回至用户请求端。所述的基于微服务的协作处理系统中,还包括:预处理模块,用于控制服务接口进行数据预处理,并获取一预设标识符作为密钥,将所述密钥、每个微服务的请求状态数据和处理结果一并存入数据库中;初始化模块,用于将所有微服务的初始请求状态数据设置为处理中,初始处理结果设置为空,并存入数据库中;判断模块,用于判断存入数据库时是否出错,若是,则直接返回处理错误至请求端,若否则控制服务接口向后台的微服务的工作接口发起请求。一种服务器,其包括如上所述的基于微服务的协作处理系统。相较于现有技术,本专利技术提供的基于微服务的协作处理方法、系统及服务器中,所述基于微服务的协作处理方法通过服务接口向后台的微服务的工作接口发起请求;之后所述服务接口接收所述微服务的处理结果,并根据处理结果更新对应微服务的请求状态数据,查询所有微服务的请求状态数据,并判断是否存在处理状态为失败的微服务,若是,则向处理状态为失败的微服务重新发起请求,所述服务接口接收所有处理状态为失败的微服务的处理结果;之后整合所有微服务的处理结果返回至用户请求端,通过查询的方式将处理失败的微服务交给查询接口处理,并将功能操作与数据返回进行拆分,存在非幂等操作时可避免由于重复操作导致的数据不一致,在幂等操作中则可减少服务请求次数,减轻负载压力。附图说明图1为本专利技术提供的基于微服务的协作处理方法的流程图。图2为本专利技术提供的基于微服务的协作处理方法中步骤S101、S102、S103的流程图。图3为本专利技术提供的基于微服务的协作处理方法中步骤S20的流程图。图4为本专利技术提供的基于微服务的协作处理方法中步骤S30的流程图。图5为本专利技术提供的基于微服务的协作处理方法中步骤S40的流程图。图6为本专利技术提供的基于微服务的协作处理系统的结构框图。图7为本专利技术提供的基于微服务的协作处理中第一接收更新模块的结构框图。图8为本专利技术提供的基于微服务的协作处理中查询模块的结构框图。图9为本专利技术提供的基于微服务的协作处理中第二请求发起模块的结构框图。具体实施方式鉴于现有技术中多个服务之间非幂等操作与幂等操作间无法协作等缺点,本专利技术的目的在于提供基于微服务的协作处理方法、系统及服务器,通过查询的方式将处理失败的微服务交给查询接口处理,并将功能操作与数据返回进行拆分,存在非幂等操作时可避免由于重复操作导致的数据不一致,在幂等操作中则可减少服务请求次数,减轻负载压力。为使本专利技术的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本专利技术进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本专利技术,并不用于限定本专利技术。请参阅图1,本专利技术提供的基于微服务的协作处理方法包括如下步骤:S10、服务接口向后台的微服务的工作接口发起请求;S20、所述服务接口接收所述微服务的处理结果,并根据处理结果更新对应微服务的请求状态数据;S30、查询所有微服务的请求状态数据,并判断是否存在处理状态为失败的微服务,若是,则执行步骤S40;若否,则执行步骤S50;S40、向处理状本文档来自技高网...
基于微服务的协作处理方法、系统及服务器

【技术保护点】
一种基于微服务的协作处理方法,其特征在于,包括如下步骤:A、服务接口向后台的微服务的工作接口发起请求;B、所述服务接口接收所述微服务的处理结果,并根据处理结果更新对应微服务的请求状态数据;C、查询所有微服务的请求状态数据,并判断是否存在处理状态为失败的微服务,若是,则执行步骤D;若否,则执行步骤E;D、向处理状态为失败的微服务重新发起请求,所述服务接口接收所有处理状态为失败的微服务的处理结果;E、整合所有微服务的处理结果返回至用户请求端。

【技术特征摘要】
1.一种基于微服务的协作处理方法,其特征在于,包括如下步骤:A、服务接口向后台的微服务的工作接口发起请求;B、所述服务接口接收所述微服务的处理结果,并根据处理结果更新对应微服务的请求状态数据;C、查询所有微服务的请求状态数据,并判断是否存在处理状态为失败的微服务,若是,则执行步骤D;若否,则执行步骤E;D、向处理状态为失败的微服务重新发起请求,所述服务接口接收所有处理状态为失败的微服务的处理结果;E、整合所有微服务的处理结果返回至用户请求端。2.根据权利要求1所述的基于微服务的协作处理方法,其特征在于,所述步骤A之前还包括步骤:A01、服务接口进行数据预处理,并获取一预设标识符作为密钥,将所述密钥、每个微服务的请求状态数据和处理结果一并存入数据库中。3.根据权利要求2所述的基于微服务的协作处理方法,其特征在于,所述步骤A01之后、步骤A之前还包括步骤:A02、将所有微服务的初始请求状态数据设置为处理中,初始处理结果设置为空,并存入数据库中;A03、判断存入数据库时是否出错,若是,则直接返回处理错误至请求端;若否,则继续执行步骤A。4.根据权利要求2所述的基于微服务的协作处理方法,其特征在于,所述步骤A具体包括:所述服务接口选择后台微服务中的一个微服务,向其工作接口发起请求,并将所述密钥一并发送至该微服务。5.根据权利要求4所述的基于微服务的协作处理方法,其特征在于,所述步骤B包括步骤:B1、所述服务接口接收该被选择的微服务的处理结果;B2、所述服务接口根据接收的处理结果更新该被选择的微服务的请求状态数据,并返回步骤A,继续向下一个微服务的工作接口发起请求,直到所有微服务都执行完毕。6.根据权利要求2所述的基于微服务的协作处理方法,其特征在于,所述步骤C包括步骤:C1、通过所述密钥请求调用所述服务接口的查询接口;C2、所述查询接口查...

【专利技术属性】
技术研发人员:董延平张建
申请(专利权)人:TCL集团股份有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1