CN115858013B - 一种多研发项目并行的资源配置方法、系统、装置及介质 - Google Patents
一种多研发项目并行的资源配置方法、系统、装置及介质 Download PDFInfo
- Publication number
- CN115858013B CN115858013B CN202310166688.XA CN202310166688A CN115858013B CN 115858013 B CN115858013 B CN 115858013B CN 202310166688 A CN202310166688 A CN 202310166688A CN 115858013 B CN115858013 B CN 115858013B
- Authority
- CN
- China
- Prior art keywords
- request
- version number
- instance
- number metadata
- micro
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/30—Computing systems specially adapted for manufacturing
Landscapes
- Stored Programmes (AREA)
Abstract
本发明涉及一种多研发项目并行的资源配置方法、系统、装置及介质,当增加一个或一个以上与主线研发项目并行的子研发项目,且所述子研发项目需要更新N个微服务组件中的M个微服务组件时,申请M个新的实例,并在这些实例中增加版本号元数据;然后将这些实例分别增加到需要更新的M个微服务组件中,并在子研发项目的请求头中增加版本号元数据;当研发项目发起请求时,根据版本号元数据进行路由,从而使用尽可能少的资源来满足多个项目并行研发,节省了大量资源,并且达到了互相隔离的效果。
Description
技术领域
本发明涉及研发项目资源配置技术领域,具体涉及一种多研发项目并行的资源配置方法、系统、装置、计算机可读存储介质以及计算机软件程序产品。
背景技术
现在企业级的开发类项目往往都是微服务组件,而且大多数会采用spring cloud技术栈,或者使用spring cloud alibaba技术栈,服务组件间调用基本上是使用fegin或者dubbo,设计微服务组件时采用高内聚低耦合的方式,而且为了高可用,一个微服务组件往往有多个实例,而且这些微服务组件会依赖一些基础服务或者中间件。所以导致部署一整套环境需要大量的硬件资源,而实际研发过程中,经常会有多个项目并行进行的情况,而这些并行的项目设计的组件往往又有重叠。
目前采用的方法是:新增一个并行的项目,搭建一套全新的环境,这样可以使各个项目隔离,不会相互造成影响,在有的项目结束后,需要对该环境进行回收处理。
但现有的方法对硬件资源的消耗巨大,不仅需要重新搭建微服务组件,这些微服务组件配套的基础服务、中间件等都要全部重新搭建,而且往往几十个微服务组件中要更新的只有一小部分,如果为了这小部分而重新搭建一整套的环境,是一种比较浪费的做法。
而且该项目结束后,需要考虑这一套环境的去留,如果继续维护,那么环境会越来越多,占用的硬件资源也越来越多,维护的成本也越来越高。如果不维护了,那么需要对这部分硬件进行回收销毁,那么这部分硬件的生命周期只存在了一小部分的时间,而为了这一小段时间去增加了这么多硬件,性价比也不高。
发明内容
针对现有技术存在的问题,本发明的目的在于提供一种多研发项目并行的资源配置方法、系统、装置、计算机可读存储介质以及计算机软件程序产品,其使用尽可能少的硬件来满足多个项目并行研发的需求,以节省资源。
为实现上述目的,本发明采用的技术方案是:
一种多研发项目并行的资源配置方法,所述研发项目至少包括一个主线研发项目,所述主线研发项目的请求依次经过网关和N个微服务组件,其中,N≥1;所述方法为:
当增加一个或一个以上与主线研发项目并行的子研发项目,且所述子研发项目需要更新N个微服务组件中的M个微服务组件时,申请M个新的实例,并在这些实例中增加版本号元数据;然后将这些实例分别增加到需要更新的M个微服务组件中,同时在子研发项目的请求头中增加版本号元数据;
研发项目发起请求过程中,在访问网关和微服务组件时,获取请求头的版本号元数据;在请求访问下一微服务组件之前,获取下一微服务组件的所有实例,以及通过遍历所有实例获取每个实例的版本号元数据,并将其与获取的请求头的版本号元数据进行比较,当存在与请求头相同的版本号元数据时,向相应的实例发送请求,对该实例进行访问;当不存在与请求头相同的版本号元数据时,向不存在版本号元数据的实例发送请求,对该实例进行访问。
所述研发项目发起请求过程具体如下:
对于请求头中有版本号元数据的请求,该请求先经过网关,网关通过拦截器获取该请求的请求头中的版本号元数据;然后通过自定义路由获取到下一微服务组件的所有实例,通过遍历所有实例获取每个实例的版本号元数据,并将其与获取的请求头的版本号元数据进行比较;当存在与请求头相同的版本号元数据时,向相应的实例发送请求,对该实例进行访问;当不存在与请求头相同的版本号元数据时,向不存在版本号元数据的实例发送请求,对该实例进行访问;然后继续向下一微服务组件发送请求,直至访问完N个微服务组件,请求结束;
在访问微服务组件时,亦通过拦截器获取请求的请求头版本号元数据;在访问下一微服务组件之前,通过自定义路由获取到下一微服务组件的所有实例,通过遍历所有实例获取每个实例的版本号元数据,并将其与获取的请求头的版本号元数据进行比较;当存在与获取的请求头相同的版本号元数据时,向相应的实例发送请求,对该实例进行访问;当不存在与获取的请求头相同的版本号元数据时,向不存在版本号元数据的实例发送请求,对该实例进行访问。
所述研发项目发起请求过程中,对于请求头中没有版本号元数据的请求,该请求先经过网关,网关通过拦截器获取该请求的请求头,获知该请求头中无版本号元数据;然后通过自定义路由获取到下一微服务组件的所有实例,通过遍历所有实例获取每个实例的版本号元数据,找到没有版本号元数据的实例,向该没有版本号元数据的实例发送请求,对该实例进行访问;当不存在无版本号元数据的实例时,则随机向一实例发送请求,对该实例进行访问;然后继续向下一微服务组件发送请求,直至访问完N个微服务组件,请求结束;
在访问微服务组件时,亦通过拦截器获取请求的请求头,获知该请求无版本号元数据;在访问下一微服务组件之前,通过自定义路由获取到下一微服务组件的所有实例,通过遍历所有实例获取每个实例的版本号元数据,找到没有版本号元数据的实例,向该没有版本号元数据的实例发送请求,对该实例进行访问;当不存在无版本号元数据的实例时,则随机向一实例发送请求,对该实例进行访问。
一种多项目并行的资源配置系统,其包括项目服务模块、实例增加模块、拦截器和自定义路由;
所述项目服务模块包括一网关和N个微服务组件,其中,N≥1;该项目服务模块用于向主线研发项目和子研发项目提供服务,所述主线研发项目的请求依次经过网关和N个微服务组件;
当增加一个或一个以上与主线研发项目并行的子研发项目,且所述子研发项目需要更新N个微服务组件中的M个微服务组件时,所述实例增加模块申请M个新的实例,并在这些实例中增加版本号元数据;然后将这些实例分别增加到需要更新的M个微服务组件中,同时在子研发项目的请求头中增加版本号元数据;
所述拦截器,用于在项目发起请求访问网关或微服务组件时,获取请求头的版本号元数据;
所述自定义路由,用于在请求访问下一微服务组件之前,获取下一微服务组件的所有实例,以及通过遍历所有实例获取每个实例的版本号元数据,并将其与获取的请求头的版本号元数据进行比较,当存在与请求头相同的版本号元数据时,向相应的实例发送请求,对该实例进行访问;当不存在与请求头相同的版本号元数据时,向不存在版本号元数据的实例发送请求,对该实例进行访问。
对于请求头中有版本号元数据的请求,该请求先经过网关,网关通过拦截器获取该请求的请求头中的版本号元数据;然后通过自定义路由获取到下一微服务组件的所有实例,通过遍历所有实例获取每个实例的版本号元数据,并将其与获取的请求头的版本号元数据进行比较;当存在与请求头相同的版本号元数据时,向相应的实例发送请求,对该实例进行访问;当不存在与请求头相同的版本号元数据时,向不存在版本号元数据的实例发送请求,对该实例进行访问;然后继续向下一微服务组件发送请求,直至访问完N个微服务组件,请求结束;
在访问微服务组件时,亦通过拦截器获取请求的请求头版本号元数据;在访问下一微服务组件之前,通过自定义路由获取到下一微服务组件的所有实例,通过遍历所有实例获取每个实例的版本号元数据,并将其与获取的请求头的版本号元数据进行比较;当存在与获取的请求头相同的版本号元数据时,向相应的实例发送请求,对该实例进行访问;当不存在与获取的请求头相同的版本号元数据时,向不存在版本号元数据的实例发送请求,对该实例进行访问。
对于请求头中没有版本号元数据的请求,该请求先经过网关,网关通过拦截器获取该请求的请求头,获知该请求头中无版本号元数据;然后通过自定义路由获取到下一微服务组件的所有实例,通过遍历所有实例获取每个实例的版本号元数据,找到没有版本号元数据的实例,向该没有版本号元数据的实例发送请求,对该实例进行访问;当不存在无版本号元数据的实例时,则随机向一实例发送请求,对该实例进行访问;然后继续向下一微服务组件发送请求,直至访问完N个微服务组件,请求结束;
在访问微服务组件时,亦通过拦截器获取请求的请求头,获知该请求无版本号元数据;在访问下一微服务组件之前,通过自定义路由获取到下一微服务组件的所有实例,通过遍历所有实例获取每个实例的版本号元数据,找到没有版本号元数据的实例,向该没有版本号元数据的实例发送请求,对该实例进行访问;当不存在无版本号元数据的实例时,则随机向一实例发送请求,对该实例进行访问。
一种多项目并行的资源配置装置,所述装置包括处理器、存储器和运算器,所述运算器和存储器均与处理器连接;
所述存储器是为处理器中存放数据和各种软件程序的装置;
所述存储器用于存储一个或多个软件程序,所述一个或多个程序包括指令,所述指令当被所述处理器执行时使所述处理器执行上述的资源配置方法。
所述运算器是算术逻辑单元,用于完成执行上述的资源配置方法中的算术运算及逻辑运算。
一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行如上所述的资源配置方法。
一种计算机软件程序产品,所述计算机软件程序产品在终端设备上运行时,使得所述终端设备执行如上所述的资源配置方法。
采用上述方案后,本发明在增加与主线研发项目并行的子研发项目时,对于需要更新的微服务组件,增加新的带有版本号元数据的实例,当研发项目发起请求时,根据版本号元数据进行路由,从而使用尽可能少的资源来满足多个项目并行研发,节省了大量资源,并且达到了互相隔离的效果。
附图说明
图1为本发明的流程图。
实施方式
如图1所示,本发明揭示了一种多研发项目并行的资源配置方法,其研发项目至少包括一个主线研发项目,所述主线研发项目的请求依次经过网关和N个微服务组件,其中,N≥1。该资源配置方法为:当增加一个或一个以上与主线研发项目并行的子研发项目,且子研发项目需要更新N个微服务组件中的M个微服务组件时,申请M个新的实例,并在这些实例中增加版本号元数据;然后将这些实例分别增加到需要更新的M个微服务组件中,并在子研发项目的请求头中增加版本号元数据。
研发项目发起请求过程中,在网关和微服务组件中增加拦截器,用于获取请求头的版本号元数据。还在请求访问下一微服务组件之前增加自定义路由,用于获取下一微服务组件的所有实例,以及通过遍历所有实例获取每个实例的版本号元数据,并将其与获取的请求头的版本号元数据进行比较,当存在与请求头相同的版本号元数据时,向相应的实例发送请求,对该实例进行访问;当不存在与请求头相同的版本号元数据时,向不存在版本号元数据的实例发送请求,对该实例进行访问。
具体地,对于请求头中有版本号元数据的请求,该请求先经过网关,网关通过拦截器获取该请求的请求头中的版本号元数据;然后通过自定义路由获取到下一微服务组件的所有实例,通过遍历所有实例获取每个实例的版本号元数据,并将其与获取的请求头的版本号元数据进行比较;当存在与请求头相同的版本号元数据时,向相应的实例发送请求,对该实例进行访问;当不存在与请求头相同的版本号元数据时,向不存在版本号元数据的实例发送请求,对该实例进行访问;然后继续向下一微服务组件发送请求,直至访问完所有的微服务组件,则请求结束。
而在访问微服务组件时,亦通过拦截器获取请求的请求头版本号元数据;在访问下一微服务组件之前,通过自定义路由获取到下一微服务组件的所有实例,通过遍历所有实例获取每个实例的版本号元数据,并将其与获取的请求头的版本号元数据进行比较;当存在与请求头相同的版本号元数据时,向相应的实例发送请求,对该实例进行访问。当不存在与请求头相同的版本号元数据时,向不存在版本号元数据的实例发送请求,对该实例进行访问。
对于请求头中没有版本号元数据的请求,该请求先经过网关,网关通过拦截器获取该请求的请求头,获知该请求头中无版本号元数据;然后通过自定义路由获取到下一微服务组件的所有实例,通过遍历所有实例获取每个实例的版本号元数据,找到没有版本号元数据的实例,向该没有版本号元数据的实例发送请求,对该实例进行访问;当不存在无版本号元数据的实例时,则随机向一实例发送请求,对该实例进行访问;然后继续向下一微服务组件发送请求,直至访问完N个微服务组件,请求结束;
在访问微服务组件时,亦通过拦截器获取请求的请求头,获知该请求无版本号元数据;在访问下一微服务组件之前,通过自定义路由获取到下一微服务组件的所有实例,通过遍历所有实例获取每个实例的版本号元数据,找到没有版本号元数据的实例,向该没有版本号元数据的实例发送请求,对该实例进行访问;当不存在无版本号元数据的实例时,则随机向一实例发送请求,对该实例进行访问。
为详尽本发明技术方案内容,以下将列举一具体实施例进行说明。
例如,有网关A和三个微服务组件B、C、D,现有一主线研发项目,该主线研发项目的请求会依次经过网关A、微服务组件B、微服务组件C和微服务组件D。若此时增加了两个新的子研发项目,并且需要和主线项目并行,第一个子研发项目需要对微服务组件B和微服务组件D进行更新,第二个子研发项目需要对微服务组件B和微服务组件C进行更新。
那么此时只需要额外申请四个实例,即实例B1、实例B2、实例C1和实例D1,其中,实例B1和实例D1为第一个子研发项目的实例,对实例B1和实例D1增加版本号元数据V:1。实例B2和实例C1为第二个子研发项目的实例,对实例B2和实例C1增加版本号元数据V:2。然后,将实例B1和实例B2增加至微服务组件B中,将实例C1增加至微服务组件C中,将实例D1增加至微服务组件D中。
在web页面或者app中访问后端请求时,在第一个子研发项目的请求头上加上版本号元数据V:1,在第二个子研发项目的请求头上加上版本号元数据V:2。
对于请求头上加上版本号元数据V:1的请求,该请求先经过网关A,在网关A中增加一个拦截器,该拦截器获取请求头中的版本号元数据V:1,然后在调用微服务组件B前,增加一个自定义路由,在该路由中,首先获取到微服务组件B的所有实例,此时,微服务组件B有三个实例B、B1、B2,然后遍历这三个实例,获取每个实例的版本号元数据,并将其与获取的请求头版本号元数据进行比较。实例B1的版本号元数据与获取的请求头版本号元数据相等,那么接下来,网关A就会去调用实例B1,发送请求访问实例B1,在访问实例B1时继续携带上原始请求版本号元数据。
在访问实例B1时,依然有一个拦截器,该拦截器获取请求头中的版本号元数据V:1,然后在调用微服务组件C前,增加一个自定义路由,在该路由中,首先获取到微服务组件C的所有实例。此时微服务组件C有两个实例C和C1,然后遍历这两个实例,获取每个实例的版本号元数据,并将其与获取的请求头版本号元数据进行比较,此时并没有一个实例的版本号元数据匹配,那么接下来,会寻找没有元数据的实例,即实例C。那么接下来实例B1就会去调用实例C,并且在访问实例C时继续携带上原始请求版本号元数据。在访问实例C时,依然有一个拦截器,该拦截器获取请求头中的版本号元数据V:1。然后在调用微服务组件D前,增加一个自定义路由,在该路由中,首先获取到微服务组件D的所有实例,此时微服务组件D有两个实例D和D1,然后遍历这两个实例,获取每个实例的版本号元数据,并将其与获取的请求头版本号元数据进行比较,此时实例D1的版本号元数据和获取的请求头版本号元数据相等,那么接下来,实例C就会去调用实例D1,访问完实例D1后,访问结束。
所以,最终对于第一个子研发项目,访问的顺序是A->B1->C->D1。同理,第二个子研发项目访问的顺序是A->B2->C1->D。
基于同一发明构思,本发明还揭示了一种多项目并行的资源配置系统,其包括项目服务模块、实例增加模块、拦截器和自定义路由。
所述项目服务模块包括一网关和N个微服务组件,其中,N≥1;该项目服务模块用于向主线研发项目和子研发项目提供服务,所述主线研发项目的请求依次经过网关和N个微服务组件。
当增加一个或一个以上与主线研发项目并行的子研发项目,且所述子研发项目需要更新N个微服务组件中的M个微服务组件时,所述实例增加模块申请M个新的实例,并在这些实例中增加版本号元数据;然后将这些实例分别增加到需要更新的M个微服务组件中,同时在子研发项目的请求头中增加版本号元数据。
所述拦截器,用于在项目发起请求访问网关或微服务组件时,获取请求头的版本号元数据。
所述自定义路由,用于在请求访问下一微服务组件之前,获取下一微服务组件的所有实例,以及通过遍历所有实例获取每个实例的版本号元数据,并将其与获取的请求头的版本号元数据进行比较,当存在与请求头相同的版本号元数据时,向相应的实例发送请求,对该实例进行访问;当不存在与请求头相同的版本号元数据时,向不存在版本号元数据的实例发送请求,对该实例进行访问。
在项目发起请求时,该资源配置系统的工作流程如下:
对于请求头中有版本号元数据的请求,该请求先经过网关,网关通过拦截器获取该请求的请求头中的版本号元数据;然后通过自定义路由获取到下一微服务组件的所有实例,通过遍历所有实例获取每个实例的版本号元数据,并将其与获取的请求头的版本号元数据进行比较;当存在与请求头相同的版本号元数据时,向相应的实例发送请求,对该实例进行访问;当不存在与请求头相同的版本号元数据时,向不存在版本号元数据的实例发送请求,对该实例进行访问;然后继续向下一微服务组件的发送请求,直至访问完N个微服务组件,请求结束;
在访问微服务组件时,亦通过拦截器获取请求的请求头版本号元数据;在访问下一微服务组件之前,通过自定义路由获取到下一微服务组件的所有实例,通过遍历所有实例获取每个实例的版本号元数据,并将其与获取的请求头的版本号元数据进行比较;当存在与获取的请求头相同的版本号元数据时,向相应的实例发送请求,对该实例进行访问;当不存在与获取的请求头相同的版本号元数据时,向不存在版本号元数据的实例发送请求,对该实例进行访问。
对于请求头中没有版本号元数据的请求,该请求先经过网关,网关通过拦截器获取该请求的请求头,获知该请求头中无版本号元数据;然后通过自定义路由获取到下一微服务组件的所有实例,通过遍历所有实例获取每个实例的版本号元数据,找到没有版本号元数据的实例,向该没有版本号元数据的实例发送请求,对该实例进行访问;当不存在无版本号元数据的实例时,则随机向一实例发送请求,对该实例进行访问;然后继续向下一微服务组件的发送请求,直至访问完N个微服务组件,请求结束;
在访问微服务组件时,亦通过拦截器获取请求的请求头,获知该请求无版本号元数据;在访问下一微服务组件之前,通过自定义路由获取到下一微服务组件的所有实例,通过遍历所有实例获取每个实例的版本号元数据,找到没有版本号元数据的实例,向该没有版本号元数据的实例发送请求,对该实例进行访问;当不存在无版本号元数据的实例时,则随机向一实例发送请求,对该实例进行访问。
本发明还揭示了一种多项目并行的资源配置装置,该装置包括处理器、存储器和运算器,所述运算器和存储器均与处理器连接;
所述存储器是为处理器中存放数据和各种软件程序的装置;
所述存储器用于存储一个或多个软件程序,所述一个或多个程序包括指令,所述指令当被所述处理器执行时使所述处理器执行上述的资源配置方法。
所述运算器是算术逻辑单元,用于完成执行上述的资源配置方法中的算术运算及逻辑运算。
本发明还揭示了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行如上所述的配置方法。
本发明还揭示了一种计算机软件程序产品,所述计算机软件程序产品在终端设备上运行时,使得所述终端设备执行上述的资源配置方法。
综上,本发明在增加与主线研发项目并行的子研发项目时,对于需要更新的微服务组件,增加新的带有版本号元数据的实例,当研发项目发起请求时,根据版本号元数据进行路由,从而使用尽可能少的资源来满足多个项目并行研发,节省了大量资源,并且达到了互相隔离的效果。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
在本说明书的描述中,参考术语“一个实施例”“一些实施例”“示例”“具体示例”或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不应理解为必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
Claims (4)
1.一种多研发项目并行的资源配置方法,其特征在于:所述研发项目至少包括一个主线研发项目,所述主线研发项目的请求依次经过网关和N个微服务组件,其中,N≥1;所述方法为:
当增加一个或一个以上与主线研发项目并行的子研发项目,且所述子研发项目需要更新N个微服务组件中的M个微服务组件时,申请M个新的实例,并在这些实例中增加版本号元数据;然后将这些实例分别增加到需要更新的M个微服务组件中,同时在子研发项目的请求头中增加版本号元数据;
研发项目发起请求过程中,在访问网关和微服务组件时,获取请求头的版本号元数据;在请求访问下一微服务组件之前,获取下一微服务组件的所有实例,以及通过遍历所有实例获取每个实例的版本号元数据,并将其与获取的请求头的版本号元数据进行比较,当存在与请求头相同的版本号元数据时,向相应的实例发送请求,对该实例进行访问;当不存在与请求头相同的版本号元数据时,向不存在版本号元数据的实例发送请求,对该实例进行访问;
对于请求头中有版本号元数据的请求,该请求先经过网关,网关通过拦截器获取该请求的请求头中的版本号元数据;然后通过自定义路由获取到下一微服务组件的所有实例,通过遍历所有实例获取每个实例的版本号元数据,并将其与获取的请求头的版本号元数据进行比较;当存在与请求头相同的版本号元数据时,向相应的实例发送请求,对该实例进行访问;当不存在与请求头相同的版本号元数据时,向不存在版本号元数据的实例发送请求,对该实例进行访问;然后继续向下一微服务组件的发送请求,直至访问完N个微服务组件,请求结束;
在访问微服务组件时,亦通过拦截器获取请求的请求头版本号元数据;在访问下一微服务组件之前,通过自定义路由获取到下一微服务组件的所有实例,通过遍历所有实例获取每个实例的版本号元数据,并将其与获取的请求头的版本号元数据进行比较;当存在与获取的请求头相同的版本号元数据时,向相应的实例发送请求,对该实例进行访问;当不存在与获取的请求头相同的版本号元数据时,向不存在版本号元数据的实例发送请求,对该实例进行访问;
对于请求头中没有版本号元数据的请求,该请求先经过网关,网关通过拦截器获取该请求的请求头,获知该请求头中无版本号元数据;然后通过自定义路由获取到下一微服务组件的所有实例,通过遍历所有实例获取每个实例的版本号元数据,找到没有版本号元数据的实例,向该没有版本号元数据的实例发送请求,对该实例进行访问;当不存在无版本号元数据的实例时,则随机向一实例发送请求,对该实例进行访问;然后继续向下一微服务组件的发送请求,直至访问完N个微服务组件,请求结束;
在访问微服务组件时,亦通过拦截器获取请求的请求头,获知该请求无版本号元数据;在访问下一微服务组件之前,通过自定义路由获取到下一微服务组件的所有实例,通过遍历所有实例获取每个实例的版本号元数据,找到没有版本号元数据的实例,向该没有版本号元数据的实例发送请求,对该实例进行访问;当不存在无版本号元数据的实例时,则随机向一实例发送请求,对该实例进行访问。
2.一种多项目并行的资源配置系统,其特征在于:包括项目服务模块、实例增加模块、拦截器和自定义路由;
所述项目服务模块包括一网关和N个微服务组件,其中,N≥1;该项目服务模块用于向主线研发项目和子研发项目提供服务,所述主线研发项目的请求依次经过网关和N个微服务组件;
当增加一个或一个以上与主线研发项目并行的子研发项目,且所述子研发项目需要更新N个微服务组件中的M个微服务组件时,所述实例增加模块申请M个新的实例,并在这些实例中增加版本号元数据;然后将这些实例分别增加到需要更新的M个微服务组件中,同时在子研发项目的请求头中增加版本号元数据;
所述拦截器,用于在项目发起请求访问网关或微服务组件时,获取请求头的版本号元数据;
所述自定义路由,用于在请求访问下一微服务组件之前,获取下一微服务组件的所有实例,以及通过遍历所有实例获取每个实例的版本号元数据,并将其与获取的请求头的版本号元数据进行比较,当存在与请求头相同的版本号元数据时,向相应的实例发送请求,对该实例进行访问;当不存在与请求头相同的版本号元数据时,向不存在版本号元数据的实例发送请求,对该实例进行访问;
对于请求头中有版本号元数据的请求,该请求先经过网关,网关通过拦截器获取该请求的请求头中的版本号元数据;然后通过自定义路由获取到下一微服务组件的所有实例,通过遍历所有实例获取每个实例的版本号元数据,并将其与获取的请求头的版本号元数据进行比较;当存在与请求头相同的版本号元数据时,向相应的实例发送请求,对该实例进行访问;当不存在与请求头相同的版本号元数据时,向不存在版本号元数据的实例发送请求,对该实例进行访问;然后继续向下一微服务组件的发送请求,直至访问完N个微服务组件,请求结束;
在访问微服务组件时,亦通过拦截器获取请求的请求头版本号元数据;在访问下一微服务组件之前,通过自定义路由获取到下一微服务组件的所有实例,通过遍历所有实例获取每个实例的版本号元数据,并将其与获取的请求头的版本号元数据进行比较;当存在与获取的请求头相同的版本号元数据时,向相应的实例发送请求,对该实例进行访问;当不存在与获取的请求头相同的版本号元数据时,向不存在版本号元数据的实例发送请求,对该实例进行访问;
对于请求头中没有版本号元数据的请求,该请求先经过网关,网关通过拦截器获取该请求的请求头,获知该请求头中无版本号元数据;然后通过自定义路由获取到下一微服务组件的所有实例,通过遍历所有实例获取每个实例的版本号元数据,找到没有版本号元数据的实例,向该没有版本号元数据的实例发送请求,对该实例进行访问;当不存在无版本号元数据的实例时,则随机向一实例发送请求,对该实例进行访问;然后继续向下一微服务组件的发送请求,直至访问完N个微服务组件,请求结束;
在访问微服务组件时,亦通过拦截器获取请求的请求头,获知该请求无版本号元数据;在访问下一微服务组件之前,通过自定义路由获取到下一微服务组件的所有实例,通过遍历所有实例获取每个实例的版本号元数据,找到没有版本号元数据的实例,向该没有版本号元数据的实例发送请求,对该实例进行访问;当不存在无版本号元数据的实例时,则随机向一实例发送请求,对该实例进行访问。
3.一种多项目并行的资源配置装置,其特征在于:所述装置包括处理器、存储器和运算器,所述运算器和存储器均与处理器连接;
所述存储器是为处理器中存放数据和各种软件程序的装置;
所述存储器用于存储一个或多个软件程序,所述一个或多个程序包括指令,所述指令当被所述处理器执行时使所述处理器执行权利要求1所述的资源配置方法;
所述运算器是算术逻辑单元,用于完成执行权利要求1所述的资源配置方法中的算术运算及逻辑运算。
4.一种计算机可读存储介质,其特征在于:所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行如权利要求1所述的资源配置方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310166688.XA CN115858013B (zh) | 2023-02-27 | 2023-02-27 | 一种多研发项目并行的资源配置方法、系统、装置及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310166688.XA CN115858013B (zh) | 2023-02-27 | 2023-02-27 | 一种多研发项目并行的资源配置方法、系统、装置及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115858013A CN115858013A (zh) | 2023-03-28 |
CN115858013B true CN115858013B (zh) | 2023-05-26 |
Family
ID=85659023
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310166688.XA Active CN115858013B (zh) | 2023-02-27 | 2023-02-27 | 一种多研发项目并行的资源配置方法、系统、装置及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115858013B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112711397A (zh) * | 2020-12-29 | 2021-04-27 | 航天信息股份有限公司 | 一种基于微服务和顶层设计的建立系统的方法及系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11057487B2 (en) * | 2019-05-17 | 2021-07-06 | Citrix Systems, Inc. | Systems and methods for recording metadata about microservices for requests to the microservices |
CN111970198A (zh) * | 2020-08-13 | 2020-11-20 | 北京金山云网络技术有限公司 | 一种服务路由方法、装置、电子设备及介质 |
CN115098359A (zh) * | 2022-05-31 | 2022-09-23 | 中科曙光国际信息产业有限公司 | 项目研发测试方法、装置、设备、存储介质和程序产品 |
CN115048137A (zh) * | 2022-06-07 | 2022-09-13 | 厦门立林科技有限公司 | 灰度发布方法、api网关、平台及存储介质 |
-
2023
- 2023-02-27 CN CN202310166688.XA patent/CN115858013B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112711397A (zh) * | 2020-12-29 | 2021-04-27 | 航天信息股份有限公司 | 一种基于微服务和顶层设计的建立系统的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN115858013A (zh) | 2023-03-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11711420B2 (en) | Automated management of resource attributes across network-based services | |
CA3000422C (en) | Workflow service using state transfer | |
CN102576354B (zh) | 支持不同部署架构的可扩展框架 | |
US8984516B2 (en) | System and method for shared execution of mixed data flows | |
CN104866383A (zh) | 一种接口调用方法、装置及终端 | |
CN106817432B (zh) | 云计算环境下虚拟资源弹性伸展的方法,系统和设备 | |
CN104220987A (zh) | 应用安装 | |
CN113672352B (zh) | 一种基于容器部署联邦学习任务的方法及装置 | |
CN102082800A (zh) | 一种用户请求处理的方法和服务器 | |
CN105446794A (zh) | 一种基于虚拟机的磁盘操作方法、装置及系统 | |
US10545667B1 (en) | Dynamic data partitioning for stateless request routing | |
Saravanakumar et al. | An Efficient On-Demand Virtual Machine Migration in Cloud Using Common Deployment Model. | |
US11055223B2 (en) | Efficient cache warm up based on user requests | |
CN113434283B (zh) | 服务调度方法及装置、服务器、计算机可读存储介质 | |
CN113094395B (zh) | 数据查询方法、计算机设备和存储介质 | |
WO2016095644A1 (zh) | 数据库的高可用解决方法和装置 | |
CN115858013B (zh) | 一种多研发项目并行的资源配置方法、系统、装置及介质 | |
CN110347654B (zh) | 一种上线集群特性的方法和装置 | |
US10884774B2 (en) | Virtual node deployments of cluster-based applications modified to exchange reference to file systems | |
CN112350837B (zh) | 一种基于云平台的电力应用集群管理方法及装置 | |
US20100199281A1 (en) | Managing the Processing of Processing Requests in a Data Processing System Comprising a Plurality of Processing Environments | |
US20150263958A1 (en) | Load balancing apparatus and method | |
KR20150137766A (ko) | 가상머신 스택 생성 시스템 및 방법 | |
US11520781B2 (en) | Efficient bulk loading multiple rows or partitions for a single target table | |
US20230418681A1 (en) | Intelligent layer derived deployment of containers |
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 |