CN114416224B - 一种在多微服务环境下调用微服务的方法及装置 - Google Patents
一种在多微服务环境下调用微服务的方法及装置 Download PDFInfo
- Publication number
- CN114416224B CN114416224B CN202210302125.4A CN202210302125A CN114416224B CN 114416224 B CN114416224 B CN 114416224B CN 202210302125 A CN202210302125 A CN 202210302125A CN 114416224 B CN114416224 B CN 114416224B
- Authority
- CN
- China
- Prior art keywords
- micro
- service
- micro service
- module
- microservice
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
- G06F9/449—Object-oriented method invocation or resolution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5055—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本说明书一个或多个实施例提供一种在多微服务环境下调用微服务的方法及装置,应用于服务器,所述服务器部署有应用启动包,所述应用启动包集成有多个微服务,所述多个微服务中包含至少一个入口微服务,所述方法包括:接收微服务调用请求;确定与所述微服务调用请求对应的目标微服务;在所述目标微服务为区别于所述入口微服务的其他微服务的情况下,将所述微服务调用请求由所述入口微服务转发至所述目标微服务,以使所述目标微服务响应所述微服务调用请求。采用上述方法可以实现在一台服务器上调用多个微服务,以此解决企业的部署资源紧张问题。
Description
技术领域
本说明书一个或多个实施例涉及互联网领域,尤其涉及一种在多微服务环境下调用微服务的方法及装置。
背景技术
随着互联网的飞速发展,软件技术架构已经经历了由单体架构转向垂直应用架构,由垂直应用架构转向SOA(Service-Oriented Architecture,面向服务架构)架构,由SOA架构转向微服务架构的演变过程。
目前,大部分企业都采用结合微服务和SAAS(Software as service,软件即服务)的模式作为软件应用部署方式。
但是,该模式对部署资源有很高的要求,当一个业务系统具有很多业务服务时,可能存在部署资源不足而导致无法采用微服务模式部署软件应用的情况。
发明内容
有鉴于此,本说明书一个或多个实施例提供一种在多微服务环境下调用微服务的方法及装置,可以实现在一台服务器上调用多个微服务,以此解决企业的部署资源紧张问题。
为实现上述目的,本说明书一个或多个实施例提供技术方案如下:
根据本说明书一个或多个实施例的第一方面,提出了一种在多微服务环境下调用微服务的方法,应用于服务器,所述服务器部署有应用启动包,所述应用启动包集成有多个微服务,所述多个微服务中包含至少一个入口微服务,包括:
接收微服务调用请求;
确定与所述微服务调用请求对应的目标微服务;
在所述目标微服务为区别于所述入口微服务的其他微服务的情况下,将所述微服务调用请求由所述入口微服务转发至所述目标微服务,以使所述目标微服务响应所述微服务调用请求。
根据本说明书一个或多个实施例的第二方面,提出了一种在多微服务环境下调用微服务的装置,应用于服务器,所述服务器部署有应用启动包,所述应用启动包集成有多个微服务,所述多个微服务中包含至少一个入口微服务,包括:
接收单元,用于接收微服务调用请求;
确定单元,用于确定与所述微服务调用请求对应的目标微服务;
第一响应单元,用于在所述目标微服务为区别于所述入口微服务的其他微服务的情况下,将所述微服务调用请求由所述入口微服务转发至所述目标微服务,以使所述目标微服务响应所述微服务调用请求。
根据本说明书一个或多个实施例的第三方面,提出了一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如第一方面所述的方法。
根据本说明书一个或多个实施例的第四方面,提出了一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如第一方面所述方法的步骤。
由以上技术方案可见,本说明书一个或多个实施例中,在服务器上部署有集成有多个微服务的应用启动包,在该服务器接收到针对该应用启动包中任一微服务的微服务调用请求后,可以根据该微服务调用请求完成对相应微服务的调用,无需将每个微服务分别部署到不同的服务器上,减少了微服务部署所需的服务器数量,从而解决了企业的部署资源紧张问题。
附图说明
图1是一示例性实施例提供的一种在多微服务环境下调用微服务的方法的流程图。
图2是一示例性实施例提供的一种微服务的逻辑结构的示意图。
图3是一示例性实施例提供的一种集成有多个微服务的应用启动包的启动方法的流程图。
图4是一示例性实施例提供的一种应用启动包的生成方法的流程图。
图5是一示例性实施例提供的一种目录结构的示意图。
图6为一示例性实施例提供的一种应用启动包的逻辑结构的示意图。
图7是一示例性实施例中的一种电子设备的示意结构图。
图8是一示例性实施例中的一种在多微服务环境下调用微服务的装置框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
在相关技术中,针对微服务应用的每个微服务分别打包形成相应的应用启动包,每个微服务的应用启动包分别需要由单独的JAVA进程来处理。然而,JAVA进程在运行过程中需要消耗大量的系统资源,一个服务器可能无法支撑同时运行多个JAVA进程,即使一个服务器可以支持同时运行多个JAVA进行,也可能会出现卡顿甚至是宕机现象。由此,通常情况下,为获得良好的使用体验,在一个服务器上仅部署一个微服务,即一个服务器仅运行一个JAVA进程。
因此,对于一些可以提供很多业务服务的庞大的业务系统,可能因为部署资源有限而无法采用微服务模式进行部署。例如,一些保密级别要求较高的企业,要求软件应用内网部署并且部署资源有限,在这种情况下,软件服务提供商无法采用微服务模式部署,就不得不单独进行开发内网版本,大大提高了软件服务提供商的研发成本。
接下来结合以下实施例对本说明书一个或多个实施例进行进一步说明:
图1是一示例性实施例提供的一种在多微服务环境下调用微服务的方法的流程图。如图1所示,该方法应用于服务器,该方法可以包括以下步骤:
步骤102,接收微服务调用请求。
服务器接收的微服务调用请求用于指示服务器调用与所述微服务调用请求对应的微服务以提供相应的业务功能,所述微服务调用请求可以由用户执行某一操作触发,例如:用户可以点击客户机上的软件应用的某个选项触发,或者用户通过语音等方式触发。当然触发所述微服务调用请求的条件并不限于此,该请求触发过程中可以不需要用户执行任何操作,例如可以为由客户机与服务器之间基于如蓝牙等方式建立近场无线连接后,由客户机向服务器发起该请求,本说明书并不对此进行限制。
步骤104,确定与所述微服务调用请求对应的目标微服务。
服务器上部署有应用启动包,所述应用启动包集成有多个微服务,所述多个微服务中包含至少一个入口微服务。
为准确调用微服务,在进行微服务的调用之前,要确定所述微服务调用请求所请求调用的目标微服务,进一步由确定出的目标微服务响应所述微服务调用请求,提供相应的业务功能。
在一实施例中,执行步骤104时,可以采用但不限于以下方式之一:
获取所述微服务调用请求中所述携带的微服务名称,根据所述微服务名称确定与所述微服务调用请求对应的目标微服务。
获取所述微服务调用请求的业务功能,根据所述业务功能确定与所述微服务调用请求对应的目标微服务。
本说明书并不对确定与所述微服务调用请求对应的目标微服务的具体方式进行限制。
步骤106,在所述目标微服务为区别于所述入口微服务的其他微服务的情况下,将所述微服务调用请求由所述入口微服务转发至所述目标微服务,以使所述目标微服务响应所述微服务调用请求。
在确定出的目标微服务后,如果所述目标微服务为区别于所述入口微服务的其他微服务,则所述微服务调用请求由所述入口微服务转发至所述目标微服务,所述目标微服务在接收到所述微服务调用请求后,响应于所述微服务调用请求,提供相应的业务功能。
对应的,如果所述目标微服务为所述入口微服务,则所述微服务调用请求被所述入口服务器接收,所述入口微服务在接收到所述微服务调用请求后,响应于所述微服务调用请求,提供相应的业务功能。
由于本说明书的技术方案中,将多个微服务集成于一个应用启动包中,使得该应用启动包可以部署在一台服务器上,并使得多个微服务可以仅由该服务器上的一个JAVA进程来处理,减少了启动多个微服务所需的JAVA进程数量,无需将多个微服务分别部署至不同的服务器,也就减少了所需服务器的数量。
在一实施例中,所述应用启动包中集成的每一微服务可以包括三个模块,分别为:业务模块、单独启动模块、合并启动模块,如图2所示,图2是一示例性实施例提供的一种微服务的逻辑结构的示意图。其中,所述业务模块用于实现相应微服务所提供的业务功能,所述单独启动模块和合并启动模块均用于获取针对业务模块的服务调用请求,其区别在于,所述单独启动模块用于直接获取针对所述业务模块的微服务调用请求,所述合并启动模块用于从其他微服务的单独启动模块处间接获取针对所述业务模块的微服务调用请求。
对于入口微服务,仅启动单独启动模块和业务模块,对于区别于入口微服务的其他微服务,仅启动合并启动模块和业务模块。服务器在确定出目标微服务后,若所述目标微服务为区别于入口微服务的其他微服务,将所述微服务调用请求发送至所述入口微服务的单独启动模块,以由该入口服务器的单独启动模块将所述微服务调用请求转发至所述目标微服务的合并启动模块,进而由该目标微服务的合并启动模块将所述微服务调用请求提供至该目标微服务的业务模块。
在上述实施例中,在服务器上部署有集成有多个微服务的应用启动包,在该服务器接收到针对该应用启动包中任一微服务的微服务调用请求后,可以根据该微服务调用请求完成对相应的微服务的调用,无需将每个微服务分别部署到不同的服务器上,减少了微服务部署所需的服务器数量,从而解决了企业的部署资源紧张问题。
在应用启动包中集成的每一微服务包括业务模块、单独启动模块、合并启动模块的情况下,为使服务器接收到的微服务调用请求可以被与所述微服务调用请求对应的目标微服务接收到,本说明书提供了一种集成有多个微服务的应用启动包的启动方法,如图3所示。图3是一示例性实施例提供的一种集成有多个微服务的应用启动包的启动方法的流程图,该方法可以包括以下步骤:
步骤302,在接收到应用启动包启动命令的情况下,识别所述应用启动包中集成的各个微服务的类型。
所述应用启动包集成有多个微服务,所述微服务中至少包含一个入口微服务,入口微服务需要启动单独启动模块作为整个应用启动包的主入口以及实现微服务的调用,其他区别于入口微服务的微服务需要启动合并启动模块以实现微服务的调用。
由此,服务器在接收到应用启动包启动命令的情况下,需要识别所述应用启动包中集成的各个微服务的类型,进而根据各个微服务的类型针对性启动其单独启动模块或者合并启动模块。
在一实施例中,读取所述应用启动包中集成的各个微服务携带的类型标识,进而根据所述类型标识确定相应的微服务是否为入口微服务。
在该实施例中,可以是所述应用启动包中集成的入口微服务携带第一类型标识,也可以是所述应用启动包中集成的非入口微服务携带第二类型标识,还可以是所述应用启动包中集成的微服务均携带类型标识,入口微服务携带第一类型标识,非人口微服务携带第二类型标识,本说明书并不对此进行限制。
步骤304,若任一微服务是入口微服务,则启动该任一微服务的业务模块和单独启动模块,并避免启动其合并启动模块。
步骤306,若所述任一微服务不是入口微服务,则启动该任一微服务的业务模块和合并启动模块,并避免启动其单独启动模块。
在识别出各个微服务的类型后,对于任一确定是入口微服务的微服务,仅启动该微服务的业务模块和单独启动模块,同时避免启动该微服务的合并启动模块,对于任一确定不是入口微服务的微服务,仅启动该微服务的业务模块和合并启动模块,同时避免启动该微服务的单独启动模块。
步骤308,在已启动的每一合并启动模块与已启动的单独启动模块之间建立关联,以用于传输所述微服务调用请求。
为使任一区别于入口微服务的其他微服务的合并启动模块可以通过入口微服务的单独启动模块获取到针对该微服务的微服务调用请求,在每一已启动的合并启动模块与已启动的单独启动模块之间建立关联,使得已启动的单独启动模块可以根据该关联将微服务调用请求转发至其对应的微服务的合并启动模块。
为在多微服务环境下,可以由与微服务调用请求对应的目标微服务响应所述微服务调用请求,提供所请求的业务功能,本说明书一个或多个实施例中的应用启动包中集成的每一微服务均满足以下规则:
每一微服务对应的数据库表名和代码包名及各类设计模式(pattern),例如过滤器(filter)、筛选器(intercepter),均包含该微服务的名称,以避免在不同的微服务中存在相同名称的数据库、代码包、设计模式等而导致出现冲突进而无法成功调用微服务,例如,将微服务A中用于存储商品的数据库命名为商品A或者A商品;
每一微服务使用的条件注解的名称均包含该微服务的名称,以防止不同微服务之间冲突,例如,Acontroller;
每一微服务尽量去除xml依赖,以降低发生冲突的概率;
所有微服务统一使用同一父工程(父pom),以规定所有依赖包的版本,防止版本冲突;
每一微服务的应用入口分为两个模块,一个是单独启动模块,另一个是合并启动模块,以使多微服务合并打包至一个应用启动包后可以通过入口微服务提供的单独启动模块进入该应用启动包以及调用该入口微服务的业务模块,其他区别于入口微服务的其他微服务可以通过合并启动模块调用该其对应的微服务的业务模块,例如,单独启动模块可以是spring boot 入口,合并启动模块可以是spring configuration配置类。
以业务系统具有微服务A、微服务B、微服务C、微服务D为例,下面结合图4对多微服务合并成一个应用启动包的情况进行详细介绍,图4是一示例性实施例提供的一种应用启动包的生成方法的流程图,如图4所示,该方法应用于客户机,该方法可以包括以下步骤:
步骤402,确定待合并微服务中的入口微服务。
所述入口微服务可以由用户指定,也可以由客户机根据预设选择规则在待合并微服务中确定出入口微服务,并对确定出的入口微服务添加第一类型标识,用于指示该微服务为入口微服务。
所述预设选择规则可以是根据随机算法随机选择,也可以是按照微服务名称首字母排序选择位于第一位的微服务作为入口微服务,还可以是按照微服务名称首字母排序选择位于最后一位的微服务作为入口微服务,当然,除了按照微服务名称首字母排序,还有其他排序方式,比如按照微服务名称笔划,本说明书并不对此进行限制。
在该实施例中,按照微服务名称首字母排序选择位于第一位的微服务作为入口微服务,即微服务A作为入口微服务。
步骤404,接收针对所述入口微服务对应的压缩包的解压请求并完成解压。
在确定出入口微服务后,客户机会接收到针对入口微服务对应的压缩包的解压请求,调用自研插件对所述入口微服务对应的压缩包进行解压,所述自研插件可以实现解压、打包、调整目录结构等。
前述解压请求可以是用户点击客户机上的某一选项触发的,也可以是客户机主动触发的,本说明书并不对此进行限制。
在该实施例中,调用自研插件完成对微服务A对应的压缩包的解压。
步骤406,接收打包请求并完成打包。
在其他待合并的微服务对应的压缩包已被置于入口微服务的解压文件时,客户机接收到打包请求,调用自研插件调整解压文件的目录结构,使得其他区别于入口微服务的微服务对应的压缩包位于同一目录中,且区别于入口微服务的单独启动模块所在目录,进一步将多个微服务对应的压缩包打包成一个应用启动包。
在该实施例中,微服务B、微服务C、微服务D处于另一个不同于微服务A的单独启动模块所处的目录中,如图5所示,图5是一示例性实施例提供的一种目录结构的示意图。在调整好目录结构后,将微服务A、微服务B、微服务C、微服务D合并打包至一个应用启动包,如图6所示,图6为一示例性实施例提供的一种应用启动包的逻辑结构的示意图。
接着以上述实施例继续举例,在得到集成有微服务A、微服务B、微服务C、微服务D的应用启动包后,将该应用启动包部署于服务器中,发送启动命令以启动该应用启动包,应用启动包响应于该启动命令,根据微服务A携带的第一类型标识确定微服务A为入口微服务,进而启动微服务A的单独启动模块A和业务模块A,启动微服务B的合并启动模块B和业务模块B,启动微服务C的合并启动模块C和业务模块C,启动微服务D的合并启动模块D和业务模块D,并在单独启动模块A与合并启动模块B之间、单独启动模块A与合并启动模块C之间、单独启动模块A与合并启动模块D之间建立关联。
在该应用启动包启动完成后,若该服务器接收到针对微服务A的调用请求,则确定出该调用请求对应的目标微服务是入口微服务,将该调用请求发送至微服务A的单独启动模块A,进而由该单独启动模块A将该调用请求提供至业务模块A以提供微服务A的业务功能。
若该服务器接收到针对微服务C的调用请求,则确定出该调用请求对应的目标微服务是区别于入口微服务的其他微服务,将该调用请求发送至微服务A的单独启动模块A,以由该单独启动模块A将该调用请求转发至合并启动模块C,进而由该合并启动模块C将所述微服务调用请求提供至业务模块C以提供微服务C的业务功能。
与前述一种在多微服务环境下调用微服务的方法的实施例相对应,本申请还提供了一种在多微服务环境下调用微服务的装置的实施例。
本申请一种在多微服务环境下调用微服务的装置的实施例可以应用在电子设备上。图7是一示例性实施例中的一种电子设备的示意结构图。请参考图7,在硬件层面,该电子设备包括处理器702、内部总线704、网络接口706、内存708以及非易失性存储器710,当然还可能包括其他业务所需要的硬件。处理器702从非易失性存储器710中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成用户登录状态的同步装置。本说明书一个或多个实施例可以基于软件方式来实现,比如由处理器702从非易失性存储器710中读取对应的计算机程序到内存708中然后运行。当然,除了软件实现方式之外,本申请并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
请参考图8,图8是一示例性实施例中的一种在多微服务环境下调用微服务的装置框图,如图8所示,该装置应用于服务器,该装置可以包括:
接收单元801,用于接收微服务调用请求。
确定单元802,用于确定与所述微服务调用请求对应的目标微服务。
第一响应单元803,用于在所述目标微服务为区别于所述入口微服务的其他微服务的情况下,将所述微服务调用请求由所述入口微服务转发至所述目标微服务,以使所述目标微服务响应所述微服务调用请求。
可选的,该装置还包括:
第二响应单元804,用于在所述目标微服务是入口微服务的情况下,由所述入口微服务响应所述微服务调用请求。
可选的,所述应用启动包中集成的每一微服务包括:业务模块、单独启动模块、合并启动模块,所述业务模块用于实现相应微服务所提供的业务功能,所述单独启动模块用于直接获取针对所述业务模块的微服务调用请求,所述合并启动模块用于从其他微服务的单独启动模块处间接获取针对所述业务模块的微服务调用请求;
所述将所述微服务调用请求由所述入口微服务转发至所述目标微服务,包括:将所述微服务调用请求发送至所述入口微服务的单独启动模块,以由该入口微服务的单独启动模块将所述微服务调用请求转发至所述目标微服务的合并启动模块,进而由该目标微服务的合并启动模块将所述微服务调用请求提供至该目标微服务的业务模块。
可选的,该装置还包括:
识别单元805,用于在接收到应用启动包启动命令的情况下,识别所述应用启动包中集成的各个微服务的类型。
第一启动单元806,用于若任一微服务是入口微服务,则启动该任一微服务的业务模块和单独启动模块,并避免启动其合并启动模块。
第二启动单元807,用于若所述任一微服务不是入口微服务,则启动该任一微服务的业务模块和合并启动模块,并避免启动其单独启动模块。
建立关联单元808,用于在已启动的每一合并启动模块与已启动的单独启动模块之间建立关联,以用于传输所述微服务调用请求。
可选的,所述识别单元805具体用于:
读取所述应用启动包中集成的各个微服务携带的类型标识;
根据所述类型标识确定相应的微服务是否为入口微服务。
可选的,所述应用启动包集成的入口微服务中包含第一类型标识;和/或,所述应用启动包集成的非入口微服务中包含第二类型标识。
可选的,所述应用启动包中集成的每一微服务均满足下述规则:
每一微服务对应的数据库表名和代码包名均包含该微服务的名称、每一微服务使用的条件注解的名称均包含该微服务的名称、所有微服务统一使用同一父工程。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器 (CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器 (RAM) 和/或非易失性内存等形式,如只读存储器 (ROM) 或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (PRAM)、静态随机存取存储器 (SRAM)、动态随机存取存储器 (DRAM)、其他类型的随机存取存储器 (RAM)、只读存储器 (ROM)、电可擦除可编程只读存储器 (EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘 (DVD) 或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。
Claims (9)
1.一种在多微服务环境下调用微服务的方法,其特征在于,应用于服务器,所述服务器部署有应用启动包,所述应用启动包集成有多个微服务,所述多个微服务中包含至少一个入口微服务,所述应用启动包中集成的每一微服务包括:业务模块、单独启动模块、合并启动模块,所述业务模块用于实现相应微服务所提供的业务功能,所述单独启动模块用于直接获取针对所述业务模块的微服务调用请求,所述合并启动模块用于从其他微服务的单独启动模块处间接获取针对所述业务模块的微服务调用请求,所述方法包括:
接收微服务调用请求;
确定与所述微服务调用请求对应的目标微服务;
在所述目标微服务为区别于所述入口微服务的其他微服务的情况下,将所述微服务调用请求由所述入口微服务转发至所述目标微服务,以使所述目标微服务响应所述微服务调用请求;其中,所述将所述微服务调用请求由所述入口微服务转发至所述目标微服务,包括:将所述微服务调用请求发送至所述入口微服务的单独启动模块,以由该入口微服务的单独启动模块将所述微服务调用请求转发至所述目标微服务的合并启动模块,进而由该目标微服务的合并启动模块将所述微服务调用请求提供至该目标微服务的业务模块。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述目标微服务是入口微服务的情况下,由所述入口微服务响应所述微服务调用请求。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在接收到应用启动包启动命令的情况下,识别所述应用启动包中集成的各个微服务的类型;
若任一微服务是入口微服务,则启动该任一微服务的业务模块和单独启动模块,并避免启动其合并启动模块;
若所述任一微服务不是入口微服务,则启动该任一微服务的业务模块和合并启动模块,并避免启动其单独启动模块;
在已启动的每一合并启动模块与已启动的单独启动模块之间建立关联,以用于传输所述微服务调用请求。
4.根据权利要求3所述的方法,其特征在于,所述识别所述应用启动包中集成的各个微服务的类型,包括:
读取所述应用启动包中集成的各个微服务携带的类型标识;
根据所述类型标识确定相应的微服务是否为入口微服务。
5.根据权利要求4所述的方法,其特征在于:
所述应用启动包集成的入口微服务中包含第一类型标识;和/或,
所述应用启动包集成的非入口微服务中包含第二类型标识。
6.根据权利要求1所述的方法,其特征在于,所述应用启动包中集成的每一微服务均满足下述规则:
每一微服务对应的数据库表名和代码包名均包含该微服务的名称、每一微服务使用的条件注解的名称均包含该微服务的名称、所有微服务统一使用同一父工程。
7.一种在多微服务环境下调用微服务的装置,其特征在于,应用于服务器,所述服务器部署有应用启动包,所述应用启动包集成有多个微服务,所述多个微服务中包含至少一个入口微服务,所述应用启动包中集成的每一微服务包括:业务模块、单独启动模块、合并启动模块,所述业务模块用于实现相应微服务所提供的业务功能,所述单独启动模块用于直接获取针对所述业务模块的微服务调用请求,所述合并启动模块用于从其他微服务的单独启动模块处间接获取针对所述业务模块的微服务调用请求,所述装置包括:
接收单元,用于接收微服务调用请求;
确定单元,用于确定与所述微服务调用请求对应的目标微服务;
第一响应单元,用于在所述目标微服务为区别于所述入口微服务的其他微服务的情况下,将所述微服务调用请求由所述入口微服务转发至所述目标微服务,以使所述目标微服务响应所述微服务调用请求;其中,所述将所述微服务调用请求由所述入口微服务转发至所述目标微服务,包括:将所述微服务调用请求发送至所述入口微服务的单独启动模块,以由该入口微服务的单独启动模块将所述微服务调用请求转发至所述目标微服务的合并启动模块,进而由该目标微服务的合并启动模块将所述微服务调用请求提供至该目标微服务的业务模块。
8.一种电子设备,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如权利要求1-6中任一项所述的方法。
9.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,该指令被处理器执行时实现如权利要求1-6中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210302125.4A CN114416224B (zh) | 2022-03-25 | 2022-03-25 | 一种在多微服务环境下调用微服务的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210302125.4A CN114416224B (zh) | 2022-03-25 | 2022-03-25 | 一种在多微服务环境下调用微服务的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114416224A CN114416224A (zh) | 2022-04-29 |
CN114416224B true CN114416224B (zh) | 2022-07-12 |
Family
ID=81263857
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210302125.4A Active CN114416224B (zh) | 2022-03-25 | 2022-03-25 | 一种在多微服务环境下调用微服务的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114416224B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20240054018A1 (en) * | 2022-08-10 | 2024-02-15 | International Business Machines Corporation | Reducing network overhead |
CN115499421B (zh) * | 2022-09-19 | 2023-05-23 | 北京三维天地科技股份有限公司 | 一种基于三层架构的微服务架构模式系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109683988A (zh) * | 2018-12-25 | 2019-04-26 | 鼎信信息科技有限责任公司 | 微服务启动方法、装置、计算机设备和存储介质 |
CN110457382A (zh) * | 2019-08-12 | 2019-11-15 | 中国联合网络通信集团有限公司 | 业务处理方法及设备 |
CN111176761A (zh) * | 2019-12-23 | 2020-05-19 | 中国联合网络通信集团有限公司 | 微服务调用方法和装置 |
CN112787708A (zh) * | 2021-01-25 | 2021-05-11 | 航天恒星科技有限公司 | 基于微服务的卫星地面站监控管理架构 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106257894A (zh) * | 2016-08-29 | 2016-12-28 | 北京海誉动想科技股份有限公司 | 基于微服务的灰度发布方法 |
CN107612959A (zh) * | 2017-07-21 | 2018-01-19 | 哈尔滨工程大学 | 一种基于云微服务自管理的云服务平台 |
US11056107B2 (en) * | 2018-03-30 | 2021-07-06 | International Business Machines Corporation | Conversational framework |
CN109150978B (zh) * | 2018-07-24 | 2022-05-10 | 北京百度网讯科技有限公司 | 调试微服务的方法和装置 |
CN109358912B (zh) * | 2018-09-30 | 2019-09-13 | 安徽智恒信科技股份有限公司 | 一种批量启动微服务的可视化系统及方法 |
CN109743163A (zh) * | 2019-01-03 | 2019-05-10 | 优信拍(北京)信息科技有限公司 | 微服务架构中的权限认证方法、装置及系统 |
US11204861B2 (en) * | 2019-03-05 | 2021-12-21 | Honeywell International Inc. | Systems and methods for fault injection and ensuring failsafe FMS SaaS platforms |
CN111814177B (zh) * | 2020-06-28 | 2023-06-09 | 建信金融科技有限责任公司 | 基于微服务的多租户数据处理方法、装置、设备及系统 |
CN111782233B (zh) * | 2020-08-05 | 2024-10-11 | 绵阳市智慧城市产业发展有限责任公司 | 微服务多场景部署适配设计模型 |
CN112000353A (zh) * | 2020-08-18 | 2020-11-27 | 北京三快在线科技有限公司 | 应用运行方法、装置及存储介质 |
CN112181438A (zh) * | 2020-09-18 | 2021-01-05 | 杭州卓健信息科技有限公司 | 一种2b的saas平台中的微服务独立部署系统和方法 |
CN112256359A (zh) * | 2020-10-26 | 2021-01-22 | 卫宁健康科技集团股份有限公司 | 微服务合并方法、装置、电子设备及可读存储介质 |
CN112433863A (zh) * | 2020-11-18 | 2021-03-02 | 平安消费金融有限公司 | 微服务调用方法、装置、终端设备以及存储介质 |
CN112394947B (zh) * | 2020-11-27 | 2024-05-14 | 北京宇航系统工程研究所 | 一种基于微服务架构的信息系统 |
CN113312037B (zh) * | 2021-06-15 | 2023-11-24 | 北京百度网讯科技有限公司 | 应用于微服务的数据处理方法、装置、设备和存储介质 |
CN113726856A (zh) * | 2021-08-11 | 2021-11-30 | 北京科东电力控制系统有限责任公司 | 基于微服务的调控画面综合数据轻量化交互方法及系统 |
-
2022
- 2022-03-25 CN CN202210302125.4A patent/CN114416224B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109683988A (zh) * | 2018-12-25 | 2019-04-26 | 鼎信信息科技有限责任公司 | 微服务启动方法、装置、计算机设备和存储介质 |
CN110457382A (zh) * | 2019-08-12 | 2019-11-15 | 中国联合网络通信集团有限公司 | 业务处理方法及设备 |
CN111176761A (zh) * | 2019-12-23 | 2020-05-19 | 中国联合网络通信集团有限公司 | 微服务调用方法和装置 |
CN112787708A (zh) * | 2021-01-25 | 2021-05-11 | 航天恒星科技有限公司 | 基于微服务的卫星地面站监控管理架构 |
Also Published As
Publication number | Publication date |
---|---|
CN114416224A (zh) | 2022-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112000348B (zh) | 服务灰度发布的控制方法、装置、计算机设备 | |
CN114416224B (zh) | 一种在多微服务环境下调用微服务的方法及装置 | |
EP3606010B1 (en) | Method and apparatus for processing web application package | |
CN111290866A (zh) | 业务处理方法及装置 | |
CN104516885A (zh) | 浏览程序双内核组件的实现方法及装置 | |
CN113467970B (zh) | 云计算系统中的跨安全区域的资源访问方法及电子设备 | |
CN110764930B (zh) | 基于消息模式的请求或应答处理方法及装置 | |
CN111813379B (zh) | 应用部署方法及装置、电子设备、计算机可读存储介质 | |
CN110858242B (zh) | 页面跳转方法及装置 | |
CN112738181B (zh) | 集群外部ip接入的方法、装置及服务器 | |
CN112600931B (zh) | 一种api网关部署方法及装置 | |
CN113687940B (zh) | 负载均衡方法、装置及物理机 | |
CN110502251B (zh) | 应用安装方法及装置 | |
CN116521393A (zh) | 一种宿主机命令调用方法及装置 | |
CN115174158B (zh) | 基于多云管理平台的云产品配置检查方法 | |
CN114358936A (zh) | 一种基于微服务区块链的智能合约运行方法 | |
CN114037503A (zh) | 一种订单处理方法以及装置 | |
CN111258873B (zh) | 测试方法及装置 | |
CN112883882A (zh) | 人脸识别融合处理方法和系统 | |
CN113867776A (zh) | 中台应用的发布方法、装置、电子设备和存储介质 | |
CN109656805B (zh) | 用于业务分析的代码链路的生成方法、装置及业务服务器 | |
CN113010206A (zh) | 一种web应用系统的容器化方法、系统及装置 | |
CN115102923B (zh) | Agps定位启动方法、装置、设备、介质及程序产品 | |
US20230103049A1 (en) | Developer-focused context-aware application security platform | |
CN114398073B (zh) | 基于rn的应用更新方法及装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |