微服务应用的开发调试方法及装置与流程

文档序号:29795853发布日期:2022-04-23 18:49阅读:109来源:国知局
微服务应用的开发调试方法及装置与流程

1.本发明涉及人工智能技术领域,尤其涉及一种微服务应用的开发调试方法及装置。


背景技术:

2.本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
3.在微服务场景下,微服务之间存在依赖调用关系是十分常见的情形。以图1(在图中,英文均为微服务应用的名称,用于指代一个微服务应用,节点表示微服务应用,连线表示微服务应用之间的依赖关系)为例,微服务ovs-webapp-portal需要依赖上游的ovs-basic、ovs-verification、ovs-shipping、ovs-ucenter四个微服务才能正常运行。如果算上服务的传递依赖(比如图中的ovs-gateway-out,是ovs-shipping运行所依赖的微服务),则需要依赖的微服务会更多。
4.在实际开发过程中,如果要对下游微服务进行开发调试(比如ovs-webapp-portal),则需要先启动全部上游微服务,从而能够在下游微服务应用发起请求时返回正确结果。而未来随着业务的扩展和微服务数量的不断增加,微服务开发调试的难度也将越来越高(一个微服务系统存在数十个微服务模块是十分常见的情形)。如果再将微服务之间的启动依赖顺序考虑在内,微服务开发调试的难度更是指数级增加。因此,现有微服务应用开发调试繁琐。


技术实现要素:

5.本发明实施例提供一种微服务应用的开发调试方法,用以使得开发人员在本地机器按需启动待调试的微服务,其依赖的所有上游微服务均由公共集成环境提供,而无需考虑在本地机器启动待调试微服务的全部上游微服务,也无需清楚整个系统内微服务的调用依赖关系,即可实现微服务应用的快速开发调试,该方法包括:
6.接收开发人员在本地机器输入的待调试微服务的启动请求;
7.根据待调试微服务的启动请求,确定调试当前微服务所需的上游微服务标识;
8.在调试当前微服务时,根据调试当前微服务所需的上游微服务标识,启动预先搭建的公共集成环境中的所述上游微服务,得到当前微服务的调试结果;所述公共集成环境的服务生产者和服务消费者注册到预先定义的注册中心,所述公共集成环境部署有全部微服务应用。
9.本发明实施例还提供一种微服务应用的开发调试装置,用以使得开发人员在本地机器按需启动待调试的微服务,其依赖的所有上游微服务均由公共集成环境提供,而无需考虑在本地机器启动待调试微服务的全部上游微服务,也无需清楚整个系统内微服务的调用依赖关系,即可实现微服务应用的快速开发调试,该装置包括:
10.接收单元,用于接收开发人员在本地机器输入的待调试微服务的启动请求;
11.确定单元,用于根据待调试微服务的启动请求,确定调试当前微服务所需的上游微服务标识;
12.调试单元,用于在调试当前微服务时,根据调试当前微服务所需的上游微服务标识,启动预先搭建的公共集成环境中的所述上游微服务,得到当前微服务的调试结果;所述公共集成环境的服务生产者和服务消费者注册到预先定义的注册中心,所述公共集成环境部署有全部微服务应用。
13.本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述微服务应用的开发调试方法。
14.本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述微服务应用的开发调试方法。
15.本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述微服务应用的开发调试方法。
16.本发明实施例中,微服务应用的开发调试方案,与现有技术中需要先启动全部上游微服务才能得到下游微服务的开发调试结果,还需微服务之间的启动依赖顺序,导致微服务应用开发调试繁琐的问题的技术方案相比,通过:接收开发人员在本地机器输入的待调试微服务的启动请求;根据待调试微服务的启动请求,确定调试当前微服务所需的上游微服务标识;在调试当前微服务时,根据调试当前微服务所需的上游微服务标识,启动预先搭建的公共集成环境中的所述上游微服务,得到当前微服务的调试结果;所述公共集成环境的服务生产者和服务消费者注册到预先定义的注册中心,所述公共集成环境部署有全部微服务应用,可以实现使得开发人员在本地机器按需启动待调试的微服务,其依赖的所有上游微服务均由公共集成环境提供,而无需考虑在本地机器启动待调试微服务的全部上游微服务,也无需清楚整个系统内微服务的调用依赖关系,即可实现微服务应用的快速开发调试。
附图说明
17.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
18.图1为本发明实施例中微服务架构应用示意图;
19.图2为本发明实施例中微服务应用的开发调试方法的流程示意图;
20.图3为本发明实施例中持续集成构建的架构图;
21.图4为本发明实施例中持续集成构建的流程图;
22.图5为本发明实施例中微服务应用的开发调试装置的结构示意图。
具体实施方式
23.为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并
不作为对本发明的限定。
24.在介绍本发明实施例之前,首先对本发明涉及的名词进行介绍。
25.1.dubbo:dubbo是阿里巴巴公司开源的一款高性能、轻量级的开源java rpc框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。
26.2.微服务:微服务(或微服务架构)是一种云原生架构方法,其中单个应用程序由许多松散耦合且可独立部署的较小组件或服务组成。同整体架构相比,微服务是由许多较小的、松散耦合的服务组成一个应用程序,与大型、紧密耦合的应用程序的整体方法相反。
27.3.服务生产者(provider):在微服务架构中,负责提供服务,并向注册中心注册自身服务。
28.4.服务消费者(consumer):在微服务架构中,负责向注册中心订阅服务,并调用服务生产者。
29.5.注册中心(registry):用于服务生产者和服务消费者的注册与发现。
30.6.蓝绿部署:一种可以保证系统在不间断提供服务的情况下上线的部署方式。
31.7.git(分布式版本控制系统):是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。
32.在传统的dubbo微服务开发过程中,一般开发流程如下:
33.1)在本地机器启动一个注册中心(一般是zookeeper)。
34.2)更改本地机器上所有微服务的配置文件,将配置文件中的dubbo注册中心地址和端口改为本地机器上启动的zookeeper地址和端口。
35.3)按照依赖关系,启动待调试dubbo微服务直接依赖和间接依赖的微服务应用。
36.4)启动待调试dubbo微服务。
37.5)调试完毕后,在提交代码之前,再将配置文件中的dubbo注册中心地址和端口还原为默认配置。
38.从上面流程不难发现,传统dubbo微服务开发流程存在诸多缺点。主要缺点如下:
39.1)开发流程复杂且容易出错。在启动待调试微服务之前,需要先启动注册中心、修改配置文件、启动直接依赖和间接依赖的微服务,然后才能启动待调试的微服务。一般而言,一个由微服务系统经常由数个乃至数十个微服务组成。所以如果调试处于微服务系统下游的微服务应用,出于服务调用依赖缘故,需要事先启动几乎整个系统的微服务,复杂度不言而喻。
40.而在提交代码之前,还需要将修改的配置文件还原。如果忘记恢复,则会将错误的配置信息提交到git版本库,从而将影响范围扩大化,甚至影响生产环境的安全运行。
41.2)极度占用本地机器资源,对开发机器性能要求较高。因为传统开发流程需要在本地机器上同时启动注册中心,以及几乎整个微服务系统的所有微服务,所以对开发机器的性能要求很高。
42.3)对开发人员的素质要求较高。鉴于所有开发人员在调试微服务应用之前,需要在本地机器上按照依赖关系启动全部依赖微服务,所以开发人员需要了解整个系统的微服务应用之间调用关系,即使大部分微服务应用跟其并没有关联关系。
43.为了应对微服务开发过程中微服务应用难以开发调试的问题,本发明提出了一种
微服务应用的开发调试方案,该方案优化了微服务(本发明实施例中的微服务可以是dubbo微服务)应用的开发流程,实现了开发人员可以按需启动待调试微服务而无自行启动全部上游微服务的功能,解决了dubbo微服务应用开发调试繁琐的问题。
44.本发明实施例从两个部分着手解决上述问题。第一部分为搭建一套可实时更新且高可用的公共集成环境。开发人员在提交源代码后,通过本发明提出的持续集成构建系统实现公共集成环境的实时更新和高可用。第二部分为利用第一部分搭建的公共集成环境和本发明提出的“伪注册中心”来达到简化dubbo微服务开发的目的。
45.在搭建可实时更新且高可用的公共集成环境方面,主要步骤如下:
46.首先,本发明采用git作为代码版本管理工具,开发人员的所有代码更新均提交到git服务器;采用zookeeper作为dubbo服务的注册中心。
47.其次,本发明搭建了一套公共集成环境,用于部署全部微服务应用。公共集成环境上的微服务均同时以服务生产者和服务消费者的角色注册到注册中心。开发人员在本地启动待调试微服务时,其依赖的所有上游微服务均由公共集成环境提供,从而无需再在本地机器启动上游相关微服务。
48.第三,为了避免公共集成环境中的微服务因为未能及时随代码更新而返回错误的返回数据,本发明提出了一种持续集成构建方法和系统,实现了公共集成环境的实时更新,确保在开发人员提交代码的第一时间,实时编译代码并更新公共集成环境中的微服务应用。
49.第四,为了保证公共集成环境的绝对稳定,保证在版本更新部署过程中或者版本部署失败时,公共集成环境仍然能够对外稳定提供服务,本发明采用一种方式实现了微服务的高可用。
50.第五,为了保证开发人员提交代码后,只重新部署代码更新涉及的微服务,将待部署微服务数量最小化,本发明将git版本库进行拆分,采用git版本库与微服务一一对应的方式。
51.在使用公共集成环境简化dubbo微服务开发方面,主要步骤如下。开发人员在本地机器启动待调试微服务后,默认策略下该微服务中的服务生产者和服务消费者均会注册到注册中心,从而服务生产者也可以对外提供服务。但是开发中的微服务应用处于不稳定状态,不适合对外提供服务。为了保证开发者所开发微服务不会作为服务生产者“污染”注册中心,本发明提出并采用了一种“伪注册中心”的方式,屏蔽了开发人员自行启动的微服务中的服务生产者注册到注册中心的行为,确保注册中心中的所有服务生产者均由公共集成环境提供。
52.经过上述步骤,开发人员即可在本地机器按需启动待调试的dubbo微服务,而无需考虑自行启动待调试微服务的全部上游微服务,也无需清楚整个系统内微服务的调用依赖关系,从而达到简化开发的目的。
53.下面对该微服务应用的开发调试方案进行详细介绍。
54.图2为本发明实施例中微服务应用的开发调试方法的流程示意图,如图2所示,该方法包括如下步骤:
55.步骤101:接收开发人员在本地机器输入的待调试微服务的启动请求;
56.步骤102:根据待调试微服务的启动请求,确定调试当前微服务所需的上游微服务
标识;
57.步骤103:在调试当前微服务时,根据调试当前微服务所需的上游微服务标识,启动预先搭建的公共集成环境中的所述上游微服务,得到当前微服务的调试结果;所述公共集成环境的服务生产者和服务消费者注册到预先定义的注册中心,所述公共集成环境部署有全部微服务应用。
58.本发明实施例提供的微服务应用的开发调试方法,工作时:接收开发人员在本地机器输入的待调试微服务的启动请求;根据待调试微服务的启动请求,确定调试当前微服务所需的上游微服务标识;在调试当前微服务时,根据调试当前微服务所需的上游微服务标识(可以是如图1中所示的标识),启动预先搭建的公共集成环境中的所述上游微服务,得到当前微服务的调试结果;所述公共集成环境的服务生产者和服务消费者注册到预先定义的注册中心,所述公共集成环境部署有全部微服务应用。
59.与现有技术中需要先启动全部上游微服务才能得到下游微服务的开发调试结果,还需微服务之间的启动依赖顺序,导致微服务应用开发调试繁琐的问题的技术方案相比,本发明实施例提供的微服务应用的开发调试方法可以实现使得开发人员在本地机器按需启动待调试的微服务,其依赖的所有上游微服务均由公共集成环境提供,而无需考虑在本地机器启动待调试微服务的全部上游微服务,也无需清楚整个系统内微服务的调用依赖关系,即可实现微服务应用的快速开发调试。下面结合附图3至图4进行详细介绍。
60.在一个实施例中,如图3和图4所示,上述微服务应用的开发调试方法还可以包括按照如下方法将微服务应用部署到公共集成环境中:
61.git服务器在接收到开发人员提交的源代码时,向持续集成模块推送代码更新事件;所述git(一种版本管理工具)服务器用于接收开发人员的全部开发源代码;
62.持续集成模块在接收到代码更新事件时,从所述git服务器拉取最新的源代码,将最新的源代码编译为微服务应用程序,将编译的微服务应用程序部署到所述公共集成环境中。
63.具体实施时,为了避免公共集成环境中的微服务因为未能及时随代码更新而返回错误的返回数据,提高微服务应用的开发调试的准确率,本发明实施提出了上述持续集成构建方法,实现了公共集成环境的实时更新,确保在开发人员提交代码的第一时间,实时编译代码并更新公共集成环境中的微服务应用,实现公共集成环境的实时更新和高可用。
64.具体实施时,git服务器可以包括一个代码存储模块,用于存储开发人员开发的源代码,采用git版本库进行代码托管。开发人员提交源代码后,触发持续集成模块操作。图3中的注册中心模块可以用于持续集成环境的服务生产者、服务消费者的注册,以及开发人员本地调试的微服务应用的服务生产者的注册。图3中的jenkins(持续集成模块,即持续集成构建模块),从代码存储模块拉取最新的源代码,进行代码检查,编译成二进制程序包,并采用蓝绿部署的方式将二进制程序包部署到微服务部署模块。上述微服务部署模块可以用于部署持续集成模块编译生成的二进制程序包,二进制程序包中的服务生产者和服务消费者均会注册到注册中心模块。本发明实施例还可以包括一个服务生产者屏蔽模块,可以用于屏蔽开发人员在本地机器进行调试时,本地启动的服务生产者不会注册到注册中心模块,从而避免“污染”注册中心。
65.具体实施时,关于持续集成构建举个例子,如图3所示:
66.1)准备环节:建立一个git版本库,同时在jenkins(持续集成模块)中建立一个job;在git版本库中绑定jenkins的回调地址,当有代码提交时,向jenkins的对应job推送一个代码更新事件。即,当开发人员向git版本库(代码存储模块)提交代码;git版本库(代码存储模块)接收到开发人员提交的代码后,生成一个代码更新事件,并推送给配置的jenkins的回调地址(持续集成模块)。代码存储模块增加了代码更新事件推送,从而能够在代码发生变化的第一时间进行集成环境的更新,避免集成环境中的程序落后于实际代码。
67.2)jenkins(持续集成模块)收到代码更新事件,从git代码库(代码存储模块)拉取代码。
68.3)jenkins(持续集成模块)调用sonarqube执行代码质量检查,如果代码质量不合格,则报错,不再继续下面的操作。
69.4)jenkins将代码编译为二进制文件,并将二进制文件发布到nexus私服。
70.5)jenkins(持续集成模块)将二进制程序以蓝绿部署的形式部署到公共集成环境,微服务部署模块采用多实例+蓝绿部署方式,从而在服务部署过程中,或者服务部署失败时,依然能够对外提供服务。在部署过程中,为了保证不停止对外服务,所有二进制程序包均部署两个副本。在部署过程中,先把一个副本a停止服务,服务停止后,自动从zookeeper移除注册信息;更新二进制程序包,并重新启动副本a,启动完毕后,副本a自动注册到zookeeper注册中心。副本a更新成功后,以同样的方式更新副本b。
71.在一个实施例中,上述微服务应用的开发调试方法还可以包括:
72.持续集成模块对最新的源代码进行代码质量检查;
73.在检查到所述源代码质量不合格时,发出报错提示。
74.具体实施时,如图3所示,持续集成模块(jenkins,一个开源的持续集成系统软件)可以调用sonarqube(一个开源的代码质量检查软件)执行代码质量检查,如果代码质量不合格,则报错,不再继续下面的操作,进一步提高了微服务应用的开发调试的效率。
75.在一个实施例中,上述微服务应用的开发调试方法还可以包括存储所述编译的微服务应用程序。
76.具体实施时,如图3所示,持续集成模块(jenkins)可以将代码编译的微服务应用程序,并将编译的微服务应用程序(例如二进制文件)发布到nexus私服,nexus一个开源的maven私服软件,可以用于存放java二进制程序包。
77.在一个实施例中,所述git服务器包括每一微服务及其git代码库的一一对应关系。
78.具体实施时,为了保证开发人员提交代码后,只重新部署代码更新涉及的微服务,将待部署微服务数量最小化,本发明实施例可以将git版本库进行拆分,采用git版本库与微服务一一对应的方式,从而更新代码时将构建部署限定在一个微服务的范围内。即,将git代码版本库以微服务为单位进行拆分,从而达到能够以一个微服务为最小单位进行构建部署的目的。
79.在传统方式下,一个由多个微服务组成的微服务系统,往往会共同使用同一个git版本库。当开发人员向git版本库提交代码后,git版本库触发jenkins的回调地址。因jenkins只能从git版本库拉取全部代码,故而无法确定开发人员提交的代码导致哪个微服务发生了更新,所以没有办法只更新新提交代码涉及的微服务。
80.针对此问题,本发明实施提出了如上每一微服务及其git代码库的一一对应的方案,在为微服务系统建立git版本库时,不再是为一个微服务系统建立一个git版本库,而是按照微服务的维度对git版本库进行更细粒度的拆分,每个微服务均建立一个对应的git版本库进行代码存储。这样当开发人员向git版本库提交代码后,git版本库触发jenkins的回调地址,jenkins便能准确确定是哪个微服务的代码发生了更新,进而可以“只重新部署代码更新涉及的微服务,将待部署微服务数量最小化”。
81.在一个实施例中,本地机器上的待调试微服务中的服务生产者注册到预先定义的伪注册中心。
82.具体实施时,开发人员在本地机器启动待调试微服务后,默认策略下该微服务中的服务生产者也会注册到注册中心,从而对外提供服务。但是开发中的微服务应用处于不稳定状态,不适合对外提供服务。为了保证开发者所开发微服务不会作为服务生产者“污染”注册中心,本发明实施例提出并采用了一种“伪注册中心”的方式,屏蔽了开发人员自行启动的微服务中的服务生产者注册到注册中心,确保所有服务生产者均由公共集成环境提供。
83.在一个实施例中,在检测到编译的微服务应用程序部署失败时,通知提交源代码的开发人员。
84.具体实施时,如图4所示,检测部署是否成功。如果部署成功,则流程顺利结束;如果部署失败,则想提交代码的开发人员发送错误告警邮件,进一步提高了微服务应用的开发调试的效率。
85.另外,在图3中,jvm:java虚拟机,此处指使用java虚拟机运行的二进制程序。zookeeper:一个开源的注册中心软件,当二进制程序启动成功后,会把自己对外提供的服务能力注册到该注册中心,从而其他试图调用该服务的程序,可以通过注册中心快捷方便地获取服务提供者的相关信息。
86.为了便于理解本发明如何实施,下面举个例子进一步说明。
87.在搭建可实时更新且高可用的公共集成环境方面,主要步骤如下:
88.1)本发明实施例采用git作为代码版本管理工具,技术人员将全部程序代码存放到git服务器上。本发明实施例使用zookeeper作为dubbo服务的注册中心,技术人员需要事先搭建一套zookeeper环境。
89.2)本发明实施例需要搭建一套公共集成环境,用于部署全部微服务应用。
90.对于每个微服务应用,在公共集成环境中可以包括如下三部分:
91.a)二进制程序包存放目录;
92.b)二进制程序包的启动、停止脚本(shell脚本);
93.c)程序运行日志存放目录。
94.3)为了避免公共集成环境中的微服务在开发人员提交代码后,未能及时随代码更新而返回错误的返回数据,本发明实施例提出了一种持续集成构建方法,实现公共集成环境的实时更新,确保在开发人员提交代码的第一时间,实时编译代码并更新公共集成环境中的微服务应用。具体地,如图4所示可以包括:将git代码版本库以微服务为单位进行拆分。开发人员提交源代码到代码存储模块,代码存储模块向持续集成模块推送代码更新事件。持续集成模块接收到代码存储模块推送的代码更新事件后,从代码存储模块拉取最新
的源代码,代码检查,编译成二进制程序包(即微服务程序包),然后将二进制程序包以蓝绿部署的方式部署到微服务部署模块。如果部署失败,以邮件方式通知提交代码的开发人员。微服务程序包部署到微服务部署模块,微服务启动后,微服务应用中的服务生产者和服务消费者注册到注册中心模块。
95.4)为了保证公共集成环境的绝对稳定,保证在版本更新部署过程中或者版本部署失败时,公共集成环境仍然能够对外稳定提供服务,本发明采用微服务应用多实例+蓝绿部署的方式来保证服务的高可用。即每个微服务应用均部署两个(组)实例,在版本更新过程中,先停止一个(组)实例并更新版本,另一个(组)实例对外保持服务;在一个(组)实例更新并启动完毕后,停止另外一个(组)实例并更新版本。
96.5)为了保证开发人员提交代码后,只重新部署代码更新涉及的微服务,将待部署微服务数量最小化,本发明将git版本库进行拆分,采用git版本库与微服务一一对应的方式,从而更新代码时将构建部署限定在一个微服务的范围内。
97.6)开发人员在本地机器启动待调试的微服务,通过服务生产者屏蔽模块,本地机器上的微服务只将服务消费者注册到注册中心模块,服务生产者注册到“伪注册中心”,从而实现只调用公共集成环境的服务生产者、而不对外提供服务的功能。
98.在使用公共集成环境达到简化dubbo微服务开发方面,再举个例子如下:
99.开发人员在本地机器启动待调试微服务后,默认策略下该微服务中的服务生产者也会注册到注册中心,从而对外提供服务。但是开发中的微服务应用处于不稳定状态,不适合对外提供服务。为了保证开发者所开发微服务不会作为服务生产者“污染”注册中心,本发明提出并采用了一种“伪注册中心”的方式,屏蔽了开发人员自行启动的微服务中的服务生产者注册到注册中心,确保所有服务生产者均由公共集成环境提供。
100.1)在dubbo配置文件中定义两个注册中心:defaultregistry为真实注册中心,${dubbo.registry.address}为zookeeper服务器的注册地址;fakeregistry为本机启动的一个“伪注册中心”,默认情况下只启动而不对外提供服务。
101.2)dubbo服务生产者的配置文件示例中,可以使${dubbo.provider.registry}为变量,指向dubbo服务生产者的注册中心。
102.3)dubbo服务消费者的配置文件示例中,可以使${dubbo.consumer.registry}为变量,指向dubbo服务消费者的注册中心。
103.4)对于公共集成环境,其服务生产者和服务消费者均注册到defaultregistry,故其对应的${dubbo.provider.registry}和${dubbo.consumer.registry}变量值如下:#生产者的注册服务器:dubbo.provider.registry=defaultregistry;#消费者的注册服务器:dubbo.consumer.registry=defaultregistry。
104.5)对于开发人员本地机器启动的服务,其服务消费者注册到defaultregistry,服务生产者注册到fakeregistry,故其对应的${dubbo.provider.registry}和${dubbo.consumer.registry}变量值可以如下:#生产者的注册服务器:dubbo.provider.registry=fakeregistry;#消费者的注册服务器:dubbo.consumer.registry=defaultregistry。
105.借助于${dubbo.provider.registry}和${dubbo.consumer.registry}变量值的不同,即可实现服务生产者和服务消费者分别注册到不同注册中心的目标。
106.综上,本发明实施例提供的微服务应用的开发调试方法实现了:
107.1)本发明实施例中包含了一套持续集成方法,该方法能够在开发人员提交代码后,实时对提交的代码进行编译、构建、部署等操作,且构建过程中或构建失败后,服务依然保持可用状态。在微服务应用数量众多的前提下,依然能够保持高频更新且服务高可用,是本方案的最大特征。
108.2)本发明实施例提出了一套dubbo微服务应用的快速开发方法,借助于该方法,开发人员在开发dubbo微服务应用时,无需再在本地机器启动待调试微服务所依赖的微服务,简化了dubbo微服务的开发流程。
109.因此,本发明实施例提供的微服务应用的开发调试方法为一种dubbo微服务应用的快速开发方法,借助于该方法,能够在开发dubbo微服务应用时,较大幅度地提高开发人员的开发效率,简化开发流程,节约开发成本。
110.本发明实施例中还提供了一种微服务应用的开发调试装置,如下面的实施例所述。由于该装置解决问题的原理与微服务应用的开发调试方法相似,因此该装置的实施可以参见微服务应用的开发调试方法的实施,重复之处不再赘述。
111.图5为本发明实施例中微服务应用的开发调试装置的结构示意图,如图5所示,该装置包括:
112.接收单元01,用于接收开发人员在本地机器输入的待调试微服务的启动请求;
113.确定单元02,用于根据待调试微服务的启动请求,确定调试当前微服务所需的上游微服务标识;
114.调试单元03,用于在调试当前微服务时,根据调试当前微服务所需的上游微服务标识,启动预先搭建的公共集成环境中的所述上游微服务,得到当前微服务的调试结果;所述公共集成环境的服务生产者和服务消费者注册到预先定义的注册中心,所述公共集成环境部署有全部微服务应用。
115.在一个实施例中,上述微服务应用的开发调试装置还可以包括:
116.git服务器,用于在接收到开发人员提交的源代码时,向持续集成模块推送代码更新事件;所述git服务器用于接收开发人员的全部开发源代码;
117.持续集成模块,用于在接收到代码更新事件时,从所述git服务器拉取最新的源代码,将最新的源代码编译为微服务应用程序,将编译的微服务应用程序部署到所述公共集成环境中。
118.在一个实施例中,所述持续集成模块还用于对最新的源代码进行代码质量检查;在检查到所述源代码质量不合格时,发出报错提示。
119.在一个实施例中,上述微服务应用的开发调试装置还可以包括:存储单元,用于存储所述编译的微服务应用程序。
120.在一个实施例中,所述git服务器包括每一微服务及其git代码库的一一对应关系。
121.在一个实施例中,本地机器上的待调试微服务中的服务生产者注册到预先定义的伪注册中心。
122.在一个实施例中,上述微服务应用的开发调试装置还可以包括:检测单元,用于在检测到编译的微服务应用程序部署失败时,通知提交源代码的开发人员。
123.本技术技术方案中对数据的获取、存储、使用、处理等均符合国家法律法规的相关规定。
124.本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述微服务应用的开发调试方法。
125.本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述微服务应用的开发调试方法。
126.本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述微服务应用的开发调试方法。
127.本发明实施例中,微服务应用的开发调试方案,与现有技术中需要先启动全部上游微服务才能得到下游微服务的开发调试结果,还需微服务之间的启动依赖顺序,导致微服务应用开发调试繁琐的问题的技术方案相比,通过:接收开发人员在本地机器输入的待调试微服务的启动请求;根据待调试微服务的启动请求,确定调试当前微服务所需的上游微服务标识;在调试当前微服务时,根据调试当前微服务所需的上游微服务标识,启动预先搭建的公共集成环境中的所述上游微服务,得到当前微服务的调试结果;所述公共集成环境的服务生产者和服务消费者注册到预先定义的注册中心,所述公共集成环境部署有全部微服务应用,可以实现使得开发人员在本地机器按需启动待调试的微服务,其依赖的所有上游微服务均由公共集成环境提供,而无需考虑在本地机器启动待调试微服务的全部上游微服务,也无需清楚整个系统内微服务的调用依赖关系,即可实现微服务应用的快速开发调试。
128.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
129.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
130.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
131.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
132.以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1