CN108897557A - 微服务架构的更新方法及装置 - Google Patents
微服务架构的更新方法及装置 Download PDFInfo
- Publication number
- CN108897557A CN108897557A CN201810638369.3A CN201810638369A CN108897557A CN 108897557 A CN108897557 A CN 108897557A CN 201810638369 A CN201810638369 A CN 201810638369A CN 108897557 A CN108897557 A CN 108897557A
- Authority
- CN
- China
- Prior art keywords
- container
- micro services
- target
- test
- mirror image
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明提供的微服务架构的更新方法及装置,通过接收对目标微服务进行更新的服务请求,所述服务请求中包括目标微服务的标识和配置参数;根据预设的容器执行文件模板和所述参数构建与所述目标微服务对应的镜像,测试所述镜像;当所述镜像通过测试时,利用所述镜像建立所述目标微服务的新目标容器,并根据所述目标微服务的标识确定微服务架构中用于承载所述目标微服务的原目标容器;将所述新目标容器部署在微服务架构中,并将所述原目标容器接收到的调用请求转发至所述新目标容器,以使所述新目标容器执行所述调用请求,从而使得在对目标微服务更新的同时不会影响到微服务架构的正常运行,且本发明提供的更新方法流程简单,便于使用。
Description
技术领域
本发明涉及容器技术领域,尤其涉及一种微服务架构的更新方法及装置。
背景技术
微服务架构作为一项在云中部署应用和服务的新技术已成为当下最新的热门话题。由于其能将复杂的应用程序按照不同的功能划分为不同的服务,并将每个服务实例部署在独立进程中运行。因此,微服务架构更加适合当前需求变更频繁、迭代速度快、交付周期短的互联网应用。
在现有技术中,由于微服务架构中的微服务是承载于容器中的,当需要对微服务进行更新时,其对应容器的调用功能将受到影响,不利于微服务架构的正常运行。
发明内容
针对上述提及的在现有技术中由于在更新微服务时,其对应容器的调用功能将受到影响,微服务架构无法正常运行的问题,本发明提供了一种微服务架构的更新方法及装置。
一方面,一种微服务架构的更新方法,其特征在于,包括:
接收对目标微服务进行更新的服务请求,所述服务请求中包括目标微服务的标识和配置参数;
根据预设的容器执行文件模板和所述参数构建与所述目标微服务对应的镜像,测试所述镜像;
当所述镜像通过测试时,利用所述镜像建立所述目标微服务的新目标容器,并根据所述目标微服务的标识确定微服务架构中用于承载所述目标微服务的原目标容器;
将所述新目标容器部署在微服务架构中,并将所述原目标容器接收到的调用请求转发至所述新目标容器,以使所述新目标容器执行所述调用请求。
在其中一种可选的实施方式中,所述根据预设的容器执行文件模板和所述参数构建与所述目标微服务对应的镜像,测试所述镜像,包括:
利用所述镜像建立所述目标微服务的测试容器,并将所述测试容器部署在所述微服务架构中;
根据预设的测试脚本依次调用所述微服务架构中的包括所述测试容器在内的多个容器,获得测试结果;
释放所述测试容器。
在其中一种可选的实施方式中,所述服务请求还包括测试转发标识;
相应的,所述根据预设的测试脚本依次调用所述微服务架构中的包括所述测试容器在内的多个容器,包括:
当完成对上游容器的调用之后,根据所述测试转发标识调用所述测试容器;其中所述上游容器为微服务架构中承载所述目标微服务的上游微服务的容器。
在其中一种可选的实施方式中,所述更新方法还包括:
设置请求缓存列表,所述请求缓存列表用于存储所述镜像通过测试之后的对所述原目标容器发起的调用请求;
相应的,所述将所述原目标容器接收到的调用请求转发至所述新目标容器,包括:
根据所述请求缓存列表依次向所述新目标容器发送调用请求。
在其中一种可选的实施方式中,所述服务请求还包括容器数;
相应的,利用所述镜像建立所述目标微服务的新目标容器,包括:
根据所述容器数,建立与所述容器数一致的新目标容器。
另一方面,本发明提供了一种微服务架构的更新装置,包括:
通信端口,用于接收对目标微服务进行更新的服务请求,所述服务请求中包括目标微服务的标识和配置参数;
测试模块,用于根据预设的容器执行文件模板和所述参数构建与所述目标微服务对应的镜像,测试所述镜像;
当所述镜像通过测试时,更新模块用于利用所述镜像建立所述目标微服务的新目标容器,并根据所述目标微服务的标识确定微服务架构中用于承载所述目标微服务的原目标容器;还用于将所述新目标容器部署在微服务架构中,并将所述原目标容器接收到的调用请求转发至所述新目标容器,以使所述新目标容器执行所述调用请求。
在其中一种可选的实施方式中,所述测试模块具体用于利用所述镜像建立所述目标微服务的测试容器,并将所述测试容器部署在所述微服务架构中;根据预设的测试脚本依次调用所述微服务架构中的包括所述测试容器在内的多个容器,获得测试结果;释放所述测试容器。
在其中一种可选的实施方式中,所述服务请求还包括测试转发标识;
所述测试模块具体用于当完成对上游容器的调用之后,根据所述测试转发标识调用所述测试容器;其中所述上游容器为微服务架构中承载所述目标微服务的上游微服务的容器。
在其中一种可选的实施方式中,所述更新模块还用于设置请求缓存列表,所述请求缓存列表用于存储所述镜像通过测试之后的对所述原目标容器发起的调用请求;根据所述请求缓存列表依次向所述新目标容器发送调用请求。
在其中一种可选的实施方式中,所述服务请求还包括容器数;
相应的,所述更新模块还用于根据所述容器数,建立与所述容器数一致的新目标容器。
本发明提供的微服务架构的更新方法及装置,通过接收对目标微服务进行更新的服务请求,所述服务请求中包括目标微服务的标识和配置参数;根据预设的容器执行文件模板和所述参数构建与所述目标微服务对应的镜像,测试所述镜像;当所述镜像通过测试时,利用所述镜像建立所述目标微服务的新目标容器,并根据所述目标微服务的标识确定微服务架构中用于承载所述目标微服务的原目标容器;将所述新目标容器部署在微服务架构中,并将所述原目标容器接收到的调用请求转发至所述新目标容器,以使所述新目标容器执行所述调用请求,从而使得在对目标微服务更新的同时不会影响到微服务架构的正常运行,且本发明提供的更新方法流程简单,便于使用。
附图说明
图1为本发明所基于的微服务架构的结构示意图;
图2为本发明实施例一提供的一种微服务架构的更新方法的流程示意图;
图3为本发明实施例二提供的一种微服务架构的更新方法的流程示意图;
图4为本发明实施例三提供的一种微服务架构的更新方法的流程示意图;
图5为本发明实施例四提供的一种微服务架构的更新装置的结构示意图;
图6为本发明实施例五提供的一种微服务架构的更新装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
微服务架构作为一项在云中部署应用和服务的新技术已成为当下最新的热门话题。由于其能将复杂的应用程序按照不同的功能划分为不同的服务,并将每个服务实例部署在独立进程中运行。因此,微服务架构更加适合当前需求变更频繁、迭代速度快、交付周期短的互联网应用。
在现有技术中,由于微服务架构中的微服务是承载于容器中的,当需要对某一微服务进行更新时,其必然需要承载该微服务的容器的相关配置进行更新,并对该容器进行重启。在该容器进行更新和重启的过程中,一旦微服务架构需要调用该容器,其调用需求将不能得到满足,使得微服务架构正常运行受到影响。
针对上述提及的在现有技术中由于在更新微服务时,其对应容器的调用功能将受到影响,微服务架构无法正常运行的问题,本发明提供了一种微服务架构的更新方法及装置。
图1为本发明所基于的微服务架构的结构示意图,如图1所示,该如图1所示,终端1可与微服务架构连接并进行数据交互,微服务架构中包括:微服务架构的更新装置2以及与其连接的各容器3,其中各容器3可采用分布式的部署方式架设在微服务架构的底层。
此外,上述终端1可以是无线终端也可以是有线终端,其具体可为智能终端、平板电脑、台式终端等具备通信交互功能的设备。
图2为本发明实施例一提供的一种微服务架构的更新方法的流程示意图。
如图2所示,该更新方法包括:
步骤101、接收对目标微服务进行更新的服务请求,所述服务请求中包括目标微服务的标识和配置参数。
步骤102、根据预设的容器执行文件模板和所述参数构建与所述目标微服务对应的镜像,测试所述镜像。
步骤103、当所述镜像通过测试时,利用所述镜像建立所述目标微服务的新目标容器,并根据所述目标微服务的标识确定微服务架构中用于承载所述目标微服务的原目标容器。
步骤104、将所述新目标容器部署在微服务架构中,并将所述原目标容器接收到的调用请求转发至所述新目标容器,以使所述新目标容器执行所述调用请求。
需要说明的是,本发明提供的微服务架构的更新方法的执行主体具体可为微服务架构的更新装置,该更新装置可通过硬件和/或软件的方式实现。一般可集成于微服务架构平台所基于的服务器中,可与微服务架构平台所基于的存放有各类数据库的数据服务器配合使用,此外,更新装置所基于的服务器可与数据服务器为同一服务器,或者为隶属于同一服务器集群的不同服务器,本发明对此均不进行限制。
为了在对微服务进行更新的同时不影响整个微服务架构的正常运行,也为了使得整个更新过程更加快速的进行,在本实施例中,首先更新装置可接收终端发起的对目标微服务进行更新的服务请求。在该服务请求中包括有本次更新的目标微服务的标识,以及更新所需的配置参数。
随后,更新装置根据预设的容器执行文件模板和前述的配置参数构建与所述目标微服务对应的镜像,并测试该镜像。其中,由于微服务所基于的编码架构的差异,在更新装置中可预设用于统一生成容器可读镜像的容器执行文件模板,当更新装置接收到服务请求之后,可利用该容器执行文件模块生成相应的本次更新所需的镜像。再后,为了保证镜像的可执行性,还需对该镜像进行相应的测试。
当该镜像通过了相应的测试后,可执行启动镜像,并建立承载该更新后的目标微服务的新目标容器,与此同时,为了便于后续的更新,还需根据服务请求中的目标微服务的标识,在微服务架构中确定当前承载目标微服务的远目标容器,其中目标微服务的标识具体可为目标微服务的名称,或唯一标识字符串。
最后,将完成建立的新目标容器部署在微服务架构中,并在完成该部署之后将原目标容器接收到的未完成的调用请求转发至该新目标容器,以使新目标容器执行这些未完成的调用请求,此时原目标容器可停止调用并被释放。也就是说,在建立新目标容器以及完成对新目标容器的部署之前,原目标容器还将进行执行调用请求,直至新目标容器的部署完成。因此,本实施方式提供的更新方法,在对目标微服务进行更新的过程中,无需对原目标容器进行重启,也使得微服务架构的正常运行不会受到影响。
优选的,在前述实施方式的基础上,为了满足更多的对目标微服务的调用需求,在其中一种场景下,需要增加承载目标微服务的容器数量以提高其处理数据速度。因此,服务请求中还可包括容器数;相应的,在利用所述镜像建立所述目标微服务的新目标容器时,可根据所述容器数建立与所述容器数一致的新目标容器,从而实现目标微服务对应的容器的扩充。此外,若当前承载目标微服务的容器数量过多,而对目标微服务的调用需求不强烈时,则可适当减少容器数,减少容器数的方式与增加容器数的方式类似,再次此不进行赘述。
优选的,在前述实施方式的基础上,为了便于对整个更新流程的监控,还可设置监听端口,以用于实时的对镜像建立流程、镜像测试流程、新目标容器建立流程、原目标容器的调用请求转发流程等更新流程的流程状态进行监听,并在监听发现流程状态运转异常时,向远端的维护端口发起报警,便于运维人员获知并进行相应处理。
优选的,在前述实施方式的基础上,为了便于后期对更新流程的维护和优化,还可设置日志采集端口,以用于采集镜像建立流程、镜像测试流程、新目标容器建立流程、原目标容器的调用请求转发流程等多个流程的流程日志,以供运维人员跟流程日志对更新流程进行维护和优化。
本发明实施例一提供的微服务架构的更新方法,通过接收对目标微服务进行更新的服务请求,所述服务请求中包括目标微服务的标识和配置参数;根据预设的容器执行文件模板和所述参数构建与所述目标微服务对应的镜像,测试所述镜像;当所述镜像通过测试时,利用所述镜像建立所述目标微服务的新目标容器,并根据所述目标微服务的标识确定微服务架构中用于承载所述目标微服务的原目标容器;将所述新目标容器部署在微服务架构中,并将所述原目标容器接收到的调用请求转发至所述新目标容器,以使所述新目标容器执行所述调用请求,从而使得在对目标微服务更新的同时不会影响到微服务架构的正常运行,且本发明提供的更新方法流程简单,便于使用。
在实施例一的基础上,图3为本发明实施例二提供的一种微服务架构的更新方法的流程示意图。如图3所示,该生成方法包括:
步骤201、接收对目标微服务进行更新的服务请求,所述服务请求中包括目标微服务的标识和配置参数。
步骤202、根据预设的容器执行文件模板和所述参数构建与所述目标微服务对应的镜像,利用所述镜像建立所述目标微服务的测试容器,并将所述测试容器部署在所述微服务架构中。
步骤203、根据预设的测试脚本依次调用所述微服务架构中的包括所述测试容器在内的多个容器,获得测试结果并释放所述测试容器。
步骤204、当所述镜像通过测试时,利用所述镜像建立所述目标微服务的新目标容器,并根据所述目标微服务的标识确定微服务架构中用于承载所述目标微服务的原目标容器。
步骤205、将所述新目标容器部署在微服务架构中,并将所述原目标容器接收到的调用请求转发至所述新目标容器,以使所述新目标容器执行所述调用请求。
在本实施例二中,与实施例一类似的是,为了在对微服务进行更新的同时不影响整个微服务架构的正常运行,也为了使得整个更新过程更加快速的进行,在本实施例中,首先更新装置可接收终端发起的对目标微服务进行更新的服务请求。在该服务请求中包括有本次更新的目标微服务的标识,以及更新所需的配置参数。随后,更新装置根据预设的容器执行文件模板和前述的配置参数构建与所述目标微服务对应的镜像,并测试该镜像。
与实施例一不同的是,在本实施例二中,在测试该镜像的过程中,可先利用所述镜像建立所述目标微服务的测试容器,并将所述测试容器部署在所述微服务架构中。随后,根据预设的测试脚本依次调用所述微服务架构中的包括所述测试容器在内的多个容器,并在获得测试结果之后释放所述测试容器。
具体来说,当完成对上游容器的调用之后,根据服务请求中携带的测试转发标识调用测试容器,以获得测试结果。其中所述上游容器为微服务架构中承载所述目标微服务的上游微服务的容器。
进一步来说,当目标微服务的新目标容器部署在微服务架构之前,还需对用于建立新目标容器的镜像进行一系列测试,以保证建立过程和建立的容器无误。其具体可采用利用镜像建立测试容器的方式实现,即采用与建立新目标容器类似的方式建立一测试容器,并根据预设的测试脚本对该测试容器的相应功能进行测试,在获得测试结果之后释放测试容器。
需要说明的是,在测试镜像时,微服务架构中不仅包括有目标微服务的测试容器,还同时包括有目标微服务的原目标容器。而为了保证测试与正常调用请求的互不干扰,可在服务请求中设置一测试转发标识,以使在对镜像对应的测试容器进行测试的过程中,根据测试转发标识调用该测试容器。
举例来说,测试转发标识可为统一资源标识符。相应的,当微服务架构接收到包括有该统一资源标识符的调用请求时,可知该调用请求其实为测试镜像所需的调用请求,即微服务架构在完成对测试容器的上游容器的调用之后,根据该统一资源标识符将调用测试容器。当然,当微服务架构接收到不包括有该统一资源标识符的调用请求时,可知调用请求为正常运行所需的调用请求,即微服务架构在完成对测试容器的上游容器的调用之后,调用原目标容器。和/或,又例如,测试转发标识还可为容器标签头标识符。相应的,当微服务架构接收到包括有该容器标签头标识符的调用请求时,可知该调用请求其实为测试镜像所需的调用请求,即微服务架构在完成对测试容器的上游容器的调用之后,根据该容器标签头标识符确定并调用相应的测试容器。当微服务架构接收到不包括有该容器标签头标识符的调用请求时,可知调用请求为正常运行所需的调用请求,即微服务架构在完成对测试容器的上游容器的调用之后,调用原目标容器。
此外,当完成并获得测试结果之后,还需释放测试容器以节约微服务架构资源。
而在完成测试之后,与实施例一类似的是,可在镜像通过测试时,利用所述镜像建立所述目标微服务的新目标容器,并根据所述目标微服务的标识确定微服务架构中用于承载所述目标微服务的原目标容器。将所述新目标容器部署在微服务架构中,并将所述原目标容器接收到的调用请求转发至所述新目标容器,以使所述新目标容器执行所述调用请求,具体实施方式与实施例类似,在此不进行赘述。
优选的,在前述实施方式的基础上,为了满足更多的对目标微服务的调用需求,在其中一种场景下,需要增加承载目标微服务的容器数量以提高其处理数据速度。因此,服务请求中还可包括容器数;相应的,在利用所述镜像建立所述目标微服务的新目标容器时,可根据所述容器数建立与所述容器数一致的新目标容器,从而实现目标微服务对应的容器的扩充。此外,若当前承载目标微服务的容器数量过多,而对目标微服务的调用需求不强烈时,则可适当减少容器数,减少容器数的方式与增加容器数的方式类似,再次此不进行赘述。
优选的,在前述实施方式的基础上,为了便于对整个更新流程的监控,还可设置监听端口,以用于实时的对镜像建立流程、镜像测试流程、新目标容器建立流程、原目标容器的调用请求转发流程等更新流程的流程状态进行监听,并在监听发现流程状态运转异常时,向远端的维护端口发起报警,便于运维人员获知并进行相应处理。
优选的,在前述实施方式的基础上,为了便于后期对更新流程的维护和优化,还可设置日志采集端口,以用于采集镜像建立流程、镜像测试流程、新目标容器建立流程、原目标容器的调用请求转发流程等多个流程的流程日志,以供运维人员跟流程日志对更新流程进行维护和优化。
本发明实施例二提供的微服务架构的更新方法,在实施例一的基础上,通过采用建立测试容器的方式,提高了镜像的测试效率,保证了测试和正常运行相互独立。
在实施例一或实施例二的基础上,图4为本发明实施例三提供的一种微服务架构的更新方法的流程示意图。如图4所示,该更新方法包括:
步骤301、接收对目标微服务进行更新的服务请求,所述服务请求中包括目标微服务的标识和配置参数。
步骤302、根据预设的容器执行文件模板和所述参数构建与所述目标微服务对应的镜像,测试所述镜像。
步骤303、设置请求缓存列表,当所述镜像通过测试时将对所述原目标容器发起的调用请求存储在所述请求缓存列表中。
步骤304、利用所述镜像建立所述目标微服务的新目标容器,并根据所述目标微服务的标识确定微服务架构中用于承载所述目标微服务的原目标容器。
步骤305、将所述新目标容器部署在微服务架构中,并根据所述请求缓存列表依次向所述新目标容器发送调用请求,以使所述新目标容器执行所述调用请求。
在本实施例三中,与前述实施例类似的是,首先更新装置可接收终端发起的对目标微服务进行更新的服务请求。在该服务请求中包括有本次更新的目标微服务的标识,以及更新所需的配置参数。
随后,更新装置根据预设的容器执行文件模板和前述的配置参数构建与所述目标微服务对应的镜像,并测试该镜像。其中,由于微服务所基于的编码架构的差异,在更新装置中可预设用于统一生成容器可读镜像的容器执行文件模板,当更新装置接收到服务请求之后,可利用该容器执行文件模块生成相应的本次更新所需的镜像。再后,为了保证镜像的可执行性,还需对该镜像进行相应的测试,测试方式可参见实施例二相应部分,在此不进行赘述。
与前述实施方式不同的是,为了使调用请求尽快被更新后的目标微服务进行处理,也避免调用请求在更新过程中的丢失和漏处理。在本实施方式中,更新装置中还设置有请求缓存列表,当镜像通过测试之后,更新装置将接收到的对所述原目标容器发起的调用请求均存储在该请求缓存列表中。
最后,当利用所述镜像建立所述目标微服务的新目标容器,并根据所述目标微服务的标识确定微服务架构中用于承载所述目标微服务的原目标容器,以及将所述新目标容器部署在微服务架构之后,更新装置可直接根据该请求缓存列表,依次向新目标容器发送调用请求,以使新目标容器依次执行调用请求。
优选的,在前述实施方式的基础上,为了满足更多的对目标微服务的调用需求,在其中一种场景下,需要增加承载目标微服务的容器数量以提高其处理数据速度。因此,服务请求中还可包括容器数;相应的,在利用所述镜像建立所述目标微服务的新目标容器时,可根据所述容器数建立与所述容器数一致的新目标容器,从而实现目标微服务对应的容器的扩充。此外,若当前承载目标微服务的容器数量过多,而对目标微服务的调用需求不强烈时,则可适当减少容器数,减少容器数的方式与增加容器数的方式类似,再次此不进行赘述。
优选的,在前述实施方式的基础上,为了便于对整个更新流程的监控,还可设置监听端口,以用于实时的对镜像建立流程、镜像测试流程、新目标容器建立流程、原目标容器的调用请求转发流程等更新流程的流程状态进行监听,并在监听发现流程状态运转异常时,向远端的维护端口发起报警,便于运维人员获知并进行相应处理。
优选的,在前述实施方式的基础上,为了便于后期对更新流程的维护和优化,还可设置日志采集端口,以用于采集镜像建立流程、镜像测试流程、新目标容器建立流程、原目标容器的调用请求转发流程等多个流程的流程日志,以供运维人员跟流程日志对更新流程进行维护和优化。
本发明实施例三提供的微服务架构的更新方法,在实施例一的基础上,通过提供用于存储所述镜像通过测试之后的对所述原目标容器发起的调用请求的请求缓存列表,从而避免对更新目标微服务期间的对调用请求的漏处理和丢失。
图5为本发明实施例四提供的一种微服务架构的更新装置,如图5所示,该更新装置包括:
通信端口10,用于接收对目标微服务进行更新的服务请求,所述服务请求中包括目标微服务的标识和配置参数;
测试模块20,用于根据预设的容器执行文件模板和所述参数构建与所述目标微服务对应的镜像,测试所述镜像;
当所述镜像通过测试时,更新模块30用于利用所述镜像建立所述目标微服务的新目标容器,并根据所述目标微服务的标识确定微服务架构中用于承载所述目标微服务的原目标容器;还用于将所述新目标容器部署在微服务架构中,并将所述原目标容器接收到的调用请求转发至所述新目标容器,以使所述新目标容器执行所述调用请求。
在其中一种可选的实施方式中,所述测试模块20具体用于利用所述镜像建立所述目标微服务的测试容器,并将所述测试容器部署在所述微服务架构中;根据预设的测试脚本依次调用所述微服务架构中的包括所述测试容器在内的多个容器,获得测试结果,释放所述测试容器。
在其中一种可选的实施方式中,所述服务请求还包括测试转发标识;
所述测试模块20具体用于当完成对上游容器的调用之后,根据所述测试转发标识调用所述测试容器;其中所述上游容器为微服务架构中承载所述目标微服务的上游微服务的容器。
在其中一种可选的实施方式中,所述更新模块30还用于设置请求缓存列表,所述请求缓存列表用于存储所述镜像通过测试之后的对所述原目标容器发起的调用请求;根据所述请求缓存列表依次向所述新目标容器发送调用请求。
在其中一种可选的实施方式中,所述服务请求还包括容器数;
相应的,所述更新模块30还用于根据所述容器数,建立与所述容器数一致的新目标容器。
优选的,在前述实施方式的基础上,为了便于对整个更新流程的监控,还可设置与更新模块30和测试模块20分别连接的监听端口,以用于实时的对镜像建立流程、镜像测试流程、新目标容器建立流程、原目标容器的调用请求转发流程等更新流程的流程状态进行监听,并在监听发现流程状态运转异常时,向远端的维护端口发起报警,便于运维人员获知并进行相应处理。
优选的,在前述实施方式的基础上,为了便于后期对更新流程的维护和优化,还可设置与更新模块30和测试模块20分别连接的日志采集端口,以用于采集镜像建立流程、镜像测试流程、新目标容器建立流程、原目标容器的调用请求转发流程等多个流程的流程日志,以供运维人员跟流程日志对更新流程进行维护和优化。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统的具体工作过程以及相应的有益效果,可以参考前述方法实施例中的对应过程,在此不再赘述。
本发明实施例四提供的微服务架构的更新装置,通过接收对目标微服务进行更新的服务请求,所述服务请求中包括目标微服务的标识和配置参数;根据预设的容器执行文件模板和所述参数构建与所述目标微服务对应的镜像,测试所述镜像;当所述镜像通过测试时,利用所述镜像建立所述目标微服务的新目标容器,并根据所述目标微服务的标识确定微服务架构中用于承载所述目标微服务的原目标容器;将所述新目标容器部署在微服务架构中,并将所述原目标容器接收到的调用请求转发至所述新目标容器,以使所述新目标容器执行所述调用请求,从而使得在对目标微服务更新的同时不会影响到微服务架构的正常运行,且本发明提供的更新方法流程简单,便于使用。
图6为本发明实施例五提供的一种微服务架构的更新装置的结构示意图。如图6所示,该微服务架构的更新装置包括:存储器41、处理器42及存储在存储器41上并可在处理器42上运行的计算机程序,处理器42运行计算机程序时执行上述任一实施例的方法。
本发明还提供一种可读存储介质,包括程序,当其在终端上运行时,使得终端执行上述任一实施例的方法。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种微服务架构的更新方法,其特征在于,包括:
接收对目标微服务进行更新的服务请求,所述服务请求中包括目标微服务的标识和配置参数;
根据预设的容器执行文件模板和所述参数构建与所述目标微服务对应的镜像,测试所述镜像;
当所述镜像通过测试时,利用所述镜像建立所述目标微服务的新目标容器,并根据所述目标微服务的标识确定微服务架构中用于承载所述目标微服务的原目标容器;
将所述新目标容器部署在微服务架构中,并将所述原目标容器接收到的调用请求转发至所述新目标容器,以使所述新目标容器执行所述调用请求。
2.根据权利要求1所述的更新方法,其特征在于,所述根据预设的容器执行文件模板和所述参数构建与所述目标微服务对应的镜像,测试所述镜像,包括:
利用所述镜像建立所述目标微服务的测试容器,并将所述测试容器部署在所述微服务架构中;
根据预设的测试脚本依次调用所述微服务架构中的包括所述测试容器在内的多个容器,获得测试结果;
释放所述测试容器。
3.根据权利要求2所述的更新方法,其特征在于,所述服务请求还包括测试转发标识;
相应的,所述根据预设的测试脚本依次调用所述微服务架构中的包括所述测试容器在内的多个容器,包括:
当完成对上游容器的调用之后,根据所述测试转发标识调用所述测试容器;其中所述上游容器为微服务架构中承载所述目标微服务的上游微服务的容器。
4.根据权利要求1-3任一项所述的更新方法,其特征在于,所述更新方法还包括:
设置请求缓存列表,所述请求缓存列表用于存储所述镜像通过测试之后的对所述原目标容器发起的调用请求;
相应的,所述将所述原目标容器接收到的调用请求转发至所述新目标容器,包括:
根据所述请求缓存列表依次向所述新目标容器发送调用请求。
5.根据权利要求1-3任一项所述的更新方法,其特征在于,所述服务请求还包括容器数;
相应的,利用所述镜像建立所述目标微服务的新目标容器,包括:
根据所述容器数,建立与所述容器数一致的新目标容器。
6.一种微服务架构的更新装置,其特征在于,包括:
通信端口,用于接收对目标微服务进行更新的服务请求,所述服务请求中包括目标微服务的标识和配置参数;
测试模块,用于根据预设的容器执行文件模板和所述参数构建与所述目标微服务对应的镜像,测试所述镜像;
当所述镜像通过测试时,更新模块用于利用所述镜像建立所述目标微服务的新目标容器,并根据所述目标微服务的标识确定微服务架构中用于承载所述目标微服务的原目标容器;还用于将所述新目标容器部署在微服务架构中,并将所述原目标容器接收到的调用请求转发至所述新目标容器,以使所述新目标容器执行所述调用请求。
7.根据权利要求6所述的更新装置,其特征在于,所述测试模块具体用于利用所述镜像建立所述目标微服务的测试容器,并将所述测试容器部署在所述微服务架构中;根据预设的测试脚本依次调用所述微服务架构中的包括所述测试容器在内的多个容器,获得测试结果;释放所述测试容器。
8.根据权利要求7所述的更新装置,其特征在于,所述服务请求还包括测试转发标识;
所述测试模块具体用于当完成对上游容器的调用之后,根据所述测试转发标识调用所述测试容器;其中所述上游容器为微服务架构中承载所述目标微服务的上游微服务的容器。
9.根据权利要求6-8任一项所述的更新装置,其特征在于,所述更新模块还用于设置请求缓存列表,所述请求缓存列表用于存储所述镜像通过测试之后的对所述原目标容器发起的调用请求;根据所述请求缓存列表依次向所述新目标容器发送调用请求。
10.根据权利要求6-8任一项所述的更新装置,其特征在于,所述服务请求还包括容器数;
相应的,所述更新模块还用于根据所述容器数,建立与所述容器数一致的新目标容器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810638369.3A CN108897557B (zh) | 2018-06-20 | 2018-06-20 | 微服务架构的更新方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810638369.3A CN108897557B (zh) | 2018-06-20 | 2018-06-20 | 微服务架构的更新方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108897557A true CN108897557A (zh) | 2018-11-27 |
CN108897557B CN108897557B (zh) | 2022-06-10 |
Family
ID=64345612
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810638369.3A Active CN108897557B (zh) | 2018-06-20 | 2018-06-20 | 微服务架构的更新方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108897557B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111290767A (zh) * | 2020-01-20 | 2020-06-16 | 中国科学院计算技术研究所 | 具有业务快速恢复功能的容器组更新方法及系统 |
EP3722945A1 (en) * | 2019-04-11 | 2020-10-14 | Hitachi, Ltd. | Program operation system and program operation method |
CN112579118A (zh) * | 2019-09-30 | 2021-03-30 | 北京国双科技有限公司 | 微服务的配置信息更新方法、装置、系统、介质和设备 |
CN112882938A (zh) * | 2021-02-25 | 2021-06-01 | 重庆紫光华山智安科技有限公司 | 一种场景数据测试方法、系统、电子设备及介质 |
CN113467892A (zh) * | 2021-07-14 | 2021-10-01 | 广州华多网络科技有限公司 | 分布式集群资源配置方法及其相应的装置、设备、介质 |
CN117424829A (zh) * | 2023-10-31 | 2024-01-19 | 慧之安信息技术股份有限公司 | 一种基于微服务架构的modbus设备接入方法和系统 |
CN113467892B (zh) * | 2021-07-14 | 2024-06-21 | 广州华多网络科技有限公司 | 分布式集群资源配置方法及其相应的装置、设备、介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140253922A1 (en) * | 2010-10-21 | 2014-09-11 | Spectrasensors, Inc. | Dynamic Reconstruction Of A Calibration State Of An Absorption Spectrometer |
CN105607954A (zh) * | 2015-12-21 | 2016-05-25 | 华南师范大学 | 一种有状态容器在线迁移的方法和装置 |
CN108021608A (zh) * | 2017-10-31 | 2018-05-11 | 赛尔网络有限公司 | 一种基于Docker的轻量级网站部署方法 |
-
2018
- 2018-06-20 CN CN201810638369.3A patent/CN108897557B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140253922A1 (en) * | 2010-10-21 | 2014-09-11 | Spectrasensors, Inc. | Dynamic Reconstruction Of A Calibration State Of An Absorption Spectrometer |
CN105607954A (zh) * | 2015-12-21 | 2016-05-25 | 华南师范大学 | 一种有状态容器在线迁移的方法和装置 |
CN108021608A (zh) * | 2017-10-31 | 2018-05-11 | 赛尔网络有限公司 | 一种基于Docker的轻量级网站部署方法 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3722945A1 (en) * | 2019-04-11 | 2020-10-14 | Hitachi, Ltd. | Program operation system and program operation method |
US11399071B2 (en) * | 2019-04-11 | 2022-07-26 | Hitachi, Ltd. | Program operation system and program operation method |
CN112579118A (zh) * | 2019-09-30 | 2021-03-30 | 北京国双科技有限公司 | 微服务的配置信息更新方法、装置、系统、介质和设备 |
CN111290767A (zh) * | 2020-01-20 | 2020-06-16 | 中国科学院计算技术研究所 | 具有业务快速恢复功能的容器组更新方法及系统 |
CN111290767B (zh) * | 2020-01-20 | 2021-06-08 | 中国科学院计算技术研究所 | 具有业务快速恢复功能的容器组更新方法及系统 |
CN112882938A (zh) * | 2021-02-25 | 2021-06-01 | 重庆紫光华山智安科技有限公司 | 一种场景数据测试方法、系统、电子设备及介质 |
CN113467892A (zh) * | 2021-07-14 | 2021-10-01 | 广州华多网络科技有限公司 | 分布式集群资源配置方法及其相应的装置、设备、介质 |
CN113467892B (zh) * | 2021-07-14 | 2024-06-21 | 广州华多网络科技有限公司 | 分布式集群资源配置方法及其相应的装置、设备、介质 |
CN117424829A (zh) * | 2023-10-31 | 2024-01-19 | 慧之安信息技术股份有限公司 | 一种基于微服务架构的modbus设备接入方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN108897557B (zh) | 2022-06-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108897557A (zh) | 微服务架构的更新方法及装置 | |
WO2016045403A1 (zh) | 运行环境的配置方法及装置、系统 | |
US20220075610A1 (en) | Node selection method and apparatus | |
EP3886367A1 (en) | Automating 5g slices using real-time analytics | |
WO2016062011A1 (zh) | 告警处理方法及装置 | |
CN108964993B (zh) | 基于动态代理的故障模拟方法、装置、设备及可读存储介质 | |
CN107453953B (zh) | 一种基于httpclient的数据更新系统及方法 | |
CN114157701B (zh) | 一种任务测试方法、装置、设备以及存储介质 | |
US11463327B2 (en) | Commerce characteristic data reporting method and device, network slice arrangement method and device | |
CN111752807A (zh) | 一种基于Kubernetes的资源监控方法 | |
CN114501501B (zh) | 移动通信网络靶场的配置管理方法、装置、设备及介质 | |
CN102855184A (zh) | 一种Android自动测试跨应用的装置及方法 | |
WO2022179034A1 (zh) | 自动化测试方法、装置、电子设备及存储介质 | |
CN109218054A (zh) | 终端动态配置、相应服务器实现方法、装置和存储介质 | |
CN109992509A (zh) | 测试用例的自动化执行方法、装置、电子设备 | |
CN109471776A (zh) | 一种基于以太网的VxWorks操作系统日志收集方法 | |
CN115391219A (zh) | 测试用例生成方法、装置、电子设备及存储介质 | |
CN107169047A (zh) | 一种实现数据缓存的方法及装置 | |
CN107425994B (zh) | 一种实现参数远程管理的方法、终端和服务器 | |
CN110955604B (zh) | 一种信息显示方法、装置、服务器及存储介质 | |
CN112199154A (zh) | 一种基于分布式协同采样中心式优化的强化学习训练系统及方法 | |
CN101969442A (zh) | 基于进程运行环境感知与迁移的网络模拟框架实现方法 | |
CN106372859A (zh) | 定时任务控制分析方法及系统、主控服务器 | |
CN112804313A (zh) | 基于跨域边缘节点的数据同步方法、装置、设备及介质 | |
CN110347409A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |