本申请涉及计算机技术领域,特别涉及一种微服务访问方法、微服务访问装置、服务器以及计算机可读存储介质。
背景技术:
随着信息技术的不断发展,在不同领域中会应用不同的软件架构,以便适应不同类型的软件。其中,微服务是把一个大型的单个应用程序和服务拆分为数十个的支持微服务的软件架构。一个微服务的策略可以让工作变的更为简便,它可扩展单个组件而不是整个的应用程序堆栈,从而满足服务等级协议。
相关技术中,流程在运行中涉及自动调用微服务系统的协作问题,一般是采用的ejb(enterprisejavabeans,企业级javabean)系统协作方式,对各个系统间的微服务进行访问。但是,ejb较为笨重,不适用于中小型项目,同时采用ejb服务需要单独采购相应的ejb服务,增加了项目成本,不利于后期维护。
因此,如何实现对微服务进行自动访问是本领域技术人员关注的重点问题。
技术实现要素:
本申请的目的是提供一种微服务访问方法、微服务访问装置、服务器以及计算机可读存储介质,通过活动监听引擎的监听结果,向对应的微服务发送访问请求,以便实现微服务访问,而不用采用其他服务,实现了对微服务进行自动访问。
为解决上述技术问题,本申请提供一种微服务访问方法,包括:
采用活动监听引擎对流程进行监听;
当监听到所述流程中目标活动为运行状态时,获取所述目标活动的微服务信息;
根据所述微服务信息向对应的微服务发送访问请求,实现对微服务进行访问。
可选的,还包括:
当所述微服务启动时,将所述微服务的网络地址注册至注册中心系统。
可选的,根据所述微服务信息向对应的微服务发送访问请求,实现对微服务进行访问,包括:
根据所述微服务信息向所述注册中心系统发送信息获取请求,以便所述注册中心系统返回对应的网络地址;
向所述网络地址发送访问请求,以便实现微服务访问。
可选的,所述根据所述微服务信息向对应的微服务发送访问请求的步骤之后,还包括:
执行所述目标活动的下一个活动。
可选的,所述根据所述微服务信息向对应的微服务发送访问请求的步骤之后,还包括:
对返回接口进行监听;
当监听到返回数据时,对所述返回数据进行处理。
本申请还提供一种微服务访问装置,包括:
活动监听模块,用于采用活动监听引擎对流程进行监听;
目标活动信息获取模块,用于当监听到所述流程中目标活动为运行状态时,获取所述目标活动的微服务信息;
微服务访问模块,用于根据所述微服务信息向对应的微服务发送访问请求,实现对微服务进行访问。
可选的,还包括:
微服务注册模块,用于当所述微服务启动时,将所述微服务的网络地址注册至注册中心系统。
可选的,所述微服务访问模块,包括:
网络地址请求单元,用于根据所述微服务信息向所述注册中心系统发送信息获取请求,以便所述注册中心系统返回对应的网络地址;
访问请求发送单元,用于向所述网络地址发送访问请求,以便实现微服务访问。
本申请还提供一种服务器,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上所述的微服务访问方法的步骤。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的微服务访问方法的步骤。
本申请所提供的一种微服务访问方法,包括:采用活动监听引擎对流程进行监听;当监听到所述流程中目标活动为运行状态时,获取所述目标活动的微服务信息;根据所述微服务信息向对应的微服务发送访问请求,实现对微服务进行访问。
通过活动监听引擎对流程进行实时监听,当该活动监听引擎监听到对应的目标活动为运行状态时,根据该目标活动对应的微服务信息进行微服务访问,实现了自动对微服务进行访问,而不是采用ejb系统进行微服务访问,实现了对微服务进行自动访问,降低了项目成本,有利于后期维护。
本申请还提供一种微服务访问装置、服务器以及计算机可读存储介质,具有以上有益效果,在此不做赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例所提供的一种微服务访问方法的流程图;
图2为本申请实施例所提供的一种微服务访问装置的结构示意图。
具体实施方式
本申请的核心是提供一种微服务访问方法、微服务访问装置、服务器以及计算机可读存储介质,通过活动监听引擎的监听结果,向对应的微服务发送访问请求,以便实现微服务访问,而不用采用其他服务,实现了对微服务进行自动访问。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
相关技术中,流程在运行中涉及自动调用微服务系统的协作问题,一般是采用的ejb系统协作方式,对各个系统间的微服务进行访问。但是,ejb较为笨重,不适用于中小型项目,同时采用ejb服务需要单独采购相应的ejb服务,增加了项目成本,不利于后期维护。
因此,本申请提供一种微服务访问方法,通过活动监听引擎对流程进行实时监听,当该活动监听引擎监听到对应的目标活动为运行状态时,根据该目标活动对应的微服务信息进行微服务访问,实现了自动对微服务进行访问,而不是采用ejb系统进行微服务访问,实现了对微服务进行自动访问,降低了项目成本,有利于后期维护。
以下通过一个实施例,对本申请提供的一种微服务访问方法进行说明。
请参考图1,图1为本申请实施例所提供的一种微服务访问方法的流程图。
本实施例中,该方法可以包括:
s101,采用活动监听引擎对流程进行监听;
本步骤旨在采用活动监听引擎对流程进行监听。
其中,活动监听引擎主要是在系统对目标对象进行监听判断的引擎。
可选的,在采用活动监听引擎对流程进行监听的步骤之前,还可以包括:对该活动监听引擎进行配置。
可选的,本实施例还可以包括:
当微服务启动时,将微服务的网络地址注册至注册中心系统。
可见,本可选方案中主要是对微服务的启动进行说明。本可选方案中主要是当微服务启动时,将该微服务的网络地址注册至注册中心系统。可以想到的是,本实施例在实际使用过程中可以包括多个微服务。当任意一个微服务启动时,将该微服务的网络地址注册在注册中心系统。其中,注册过程可以是将该微服务的微服务信息和对应的网络地址记录在注册中心系统的数据库中。
s102,当监听到流程中目标活动为运行状态时,获取目标活动的微服务信息;
在s101的基础上,本步骤旨在当监听到流程中目标活动为运行状态时,获取目标活动的微服务信息。
其中,流程是指由多个目标活动构成的按照一定顺序排列的流程序列。在流程中,当活动被执行到时,该活动的状态从未运行修改为运行。因此,当监听到流程中目标活动的状态为运行状态时,就表示该目标活动被激活正在运行中。此时,就可以访问该目标活动中微服务信息对应的微服务。
其中,获取到的目标活动的微服务信息主要是对微服务进行描述的信息,可以包括服务名称、方法名等。
s103,根据微服务信息向对应的微服务发送访问请求,实现对微服务进行访问。
在s102的基础上,本步骤旨在根据微服务信息向对应的微服务发送访问请求,实现对微服务进行访问。
其中,本步骤中可以根据微服务信息中的信息确定到微服务的名称、方法名。并获取到当前活动id、流程id以及相关数据id作为参数,将这些信息拼接为对应的url。并获取到的微服务的网络地址,将生成的url发送至该网络地址中,以便实现通过该url对微服务进行相应的访问。
可选的,本步骤可以包括:
步骤1,根据微服务信息向注册中心系统发送信息获取请求,以便注册中心系统返回对应的网络地址;
步骤2,向网络地址发送访问请求,以便实现微服务访问。
可见,本可选方案中主要是对如何向微服务发送访问请求进行说明。本可选方案中首先,根据微服务信息向注册中心系统发送信息获取请求,以便注册中心系统返回对应的网络地址;然后,向网络地址发送访问请求,以便实现微服务访问。可见,通过本可选方案中主要是通过注册中心系统获取到对应的网络地址,也就是通过注册中心系统可以获取到不同系统中的微服务的地址,以便通过该网络地址进行微服务访问,实现了不同系统之间的微服务访问。
可选的,本步骤之后,还可以包括:
执行目标活动的下一个活动。
可见,本可选方案中主要是对发送访问请求之后的操作进行说明。总的来说,本可选方案中主要是采用异步操作,也就是当发送了访问请求时候不必等待微服务的反馈,直接执行该目标活动的下一个活动。
可选的,本步骤之后,还可以包括:
对返回接口进行监听;当监听到返回数据时,对返回数据进行处理。
可见,本可选方案中主要是对发送访问请求之后的操作进行说明。总的来说,本可选方案中主要是采用同步操作,也就是当发送了访问请求之后,对返回接口进行监听;当监听到返回数据时,对返回数据进行处理。也就是,等待微服务的反馈,并根据该反馈数据进行相应的处理。
综上,本实施例通过活动监听引擎对流程进行实时监听,当该活动监听引擎监听到对应的目标活动为运行状态时,根据该目标活动对应的微服务信息进行微服务访问,实现了自动对微服务进行访问,而不是采用ejb系统进行微服务访问,实现了对微服务进行自动访问,降低了项目成本,有利于后期维护。
以下通过一个具体的实施例,对本申请提供的一种微服务访问方法做进一步说明。
本实施例中,该方法可以包括:
步骤1,在流程设计器配置流程,在需要触发微服务的活动节点配置活动监听;其中,监听条件选择为“活动启动后监听”;并在活动的扩展属性配置需要触发的微服务的服务名(例:workflowclient)以及方法名。
步骤2,启动微服务,启动需要访问的微服务系统workflowclient。服务启动时,将该微服务对应的网络地址等信息注册到注册中心。
步骤3,流程运行到配置了需要触发微服务的活动后,引擎监听到活动状态更改为运行后,触发活动监听。
其中,支持的事件监听类型包括但不限于:活动实例创建前、活动实例创建后、活动实例启动前、活动实例启动后、活动实例终止前、活动实例终止后、活动实例挂起前、活动实例挂起后、活动实例回复前、活动实例回复后、活动实例完成前、活动实例完成后、活动实例跳转前、活动实例跳转后、活动实例回退前、活动实例回退后、活动实例放回前、活动实例放回后、活动实例追回前、活动实例追回后。
步骤4,活动监听被触发后,读取活动定义中配置的扩展属性信息,解析出需要访问的微服务的服务名以及方法名,同时将当前活动id、流程id以及相关数据id作为参数传入。将访问信息拼接为url(uniformresourcelocator,统一资源定位器),然后通过resttemplate访问微服务。
步骤5,访问微服务(workflowclient)时,根据服务名(workflowclient)从注册中心查找服务的网络地址,并通过该地址调用workflowclient服务的接口。
步骤6,微服务workflowclient接收到调用请求后,解析参数(活动id,流程id,相关数据id)然后做相应的处理。
步骤7,微服务workflowclient做完相应操作之后,然后调用引擎接口给相关数据赋值,然后根据活动id、流程id,调用引擎的提交接口提交当前活动。
步骤8,活动提交后,引擎根据相关数据id的值判断流程走不同的分支,然后流程继续往下流转。
可见,本实施例可以通过活动监听引擎对流程进行实时监听,当该活动监听引擎监听到对应的目标活动为运行状态时,根据该目标活动对应的微服务信息进行微服务访问,实现了自动对微服务进行访问,而不是采用ejb系统进行微服务访问,实现了对微服务进行自动访问,降低了项目成本,有利于后期维护。
下面对本申请实施例提供的微服务访问装置进行介绍,下文描述的微服务访问装置与上文描述的微服务访问方法可相互对应参照。
请参考图2,图2为本申请实施例所提供的一种微服务访问装置的结构示意图。
本实施例中,该装置可以包括:
活动监听模块100,用于采用活动监听引擎对流程进行监听;
目标活动信息获取模块200,用于当监听到流程中目标活动为运行状态时,获取目标活动的微服务信息;
微服务访问模块300,用于根据微服务信息向对应的微服务发送访问请求,实现对微服务进行访问。
可选的,该装置还可以包括:
微服务注册模块,用于当微服务启动时,将微服务的网络地址注册至注册中心系统。
可选的,该微服务访问模块300,可以包括:
网络地址请求单元,用于根据微服务信息向注册中心系统发送信息获取请求,以便注册中心系统返回对应的网络地址;
访问请求发送单元,用于向网络地址发送访问请求,以便实现微服务访问。
本申请实施例还提供一种服务器,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如以上实施例所述的微服务访问方法的步骤。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如以上实施例所述的微服务访问方法的步骤。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的一种微服务访问方法、微服务访问装置、服务器以及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
1.一种微服务访问方法,其特征在于,包括:
采用活动监听引擎对流程进行监听;
当监听到所述流程中目标活动为运行状态时,获取所述目标活动的微服务信息;
根据所述微服务信息向对应的微服务发送访问请求,实现对微服务进行访问。
2.根据权利要求1所述的微服务访问方法,其特征在于,还包括:
当所述微服务启动时,将所述微服务的网络地址注册至注册中心系统。
3.根据权利要求2所述的微服务访问方法,其特征在于,根据所述微服务信息向对应的微服务发送访问请求,实现对微服务进行访问,包括:
根据所述微服务信息向所述注册中心系统发送信息获取请求,以便所述注册中心系统返回对应的网络地址;
向所述网络地址发送访问请求,以便实现微服务访问。
4.根据权利要求1所述的微服务访问方法,其特征在于,所述根据所述微服务信息向对应的微服务发送访问请求的步骤之后,还包括:
执行所述目标活动的下一个活动。
5.根据权利要求1所述的微服务访问方法,其特征在于,所述根据所述微服务信息向对应的微服务发送访问请求的步骤之后,还包括:
对返回接口进行监听;
当监听到返回数据时,对所述返回数据进行处理。
6.一种微服务访问装置,其特征在于,包括:
活动监听模块,用于采用活动监听引擎对流程进行监听;
目标活动信息获取模块,用于当监听到所述流程中目标活动为运行状态时,获取所述目标活动的微服务信息;
微服务访问模块,用于根据所述微服务信息向对应的微服务发送访问请求,实现对微服务进行访问。
7.根据权利要求6所述的微服务访问装置,其特征在于,还包括:
微服务注册模块,用于当所述微服务启动时,将所述微服务的网络地址注册至注册中心系统。
8.根据权利要求7所述的微服务访问装置,其特征在于,所述微服务访问模块,包括:
网络地址请求单元,用于根据所述微服务信息向所述注册中心系统发送信息获取请求,以便所述注册中心系统返回对应的网络地址;
访问请求发送单元,用于向所述网络地址发送访问请求,以便实现微服务访问。
9.一种服务器,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至5任一项所述的微服务访问方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述的微服务访问方法的步骤。
技术总结