00:00
上一节课我们使用NAS呢作为注册中心,并且测试了open phone的远程调用功能,那么接下来呢,我们就测试使用NAS作为我们的配置中心,来集中管理我们各个微服务的一些配置,当然这一块的所有操作都可以参照我们spring cloud阿里巴巴的相关文档,诶,我们回头到spring cloud,阿里巴巴,在我们这个中文文档里边呢,也有我们NAS作为配置中心的例子,我们往下翻。这个simple例子里边呢,有我们的NAS conflictf example,好,我们在这个里边来看一下它如何作为配置中心,那想要作为配置中心来管理配置呢?我们首先来做的第一步,先引入NAS config start,那这样的话呢,我们的这个微服务才能跟NAS建立连接,然后呢,让NAS来管理它的配置,好我来复制一下,我们呢,同样每一个服务后来都可能需要配置中心的功能,我们都导入到common里边。
01:01
上面呢是monacos来做注册中心完成服务的注册发现相关功能导入的依赖,好,我们可以在这注释一下,这是注册发现。服务的注册发现,然后呢,我们下边呢,再来导入我们刚才的这个配置管理,诶我们连接注册中心,连接我们的配置中心,配置中心来做咱们这个配置管理的,咱们这个相关依赖,这个依赖呢,我们就按照官方文档把这个复制来,这是我们第一步导入依赖,接下来第二步假设呢,我们这个他们这个优惠券服务需要呢,配置中心帮我们来管理这个服务里边的所有相关配置,那么呢,我们可以参照文档来做第二步,第二步呢,需要在我们类路径下src慢下创建一个叫bootstrap properties这个文件,这个文件呢,其实是spring BOO里边规定的,如果我们项目里边有这么一个文件,这个文件呢会优先于application properties来加载它里边呢配置呢,会先被读取好,那么在这个配置文件里边呢,需要配置这么两个东西,第一个是我们当前应用的这个名字,当前的应用名我们。
02:12
可以先来写一个spring,第2APPLICATION name,我们应用名呢,都是我们的这个当前的模块的名字,微服务的名字,这我们配的第一个当前应用的名字,第二个来指定nacos配置中心的这个地址,以前呢,这是discovery服务注册发现的地址,现在呢是配置中心的地址,而这个配置中心呢,其实就是我们这个启动的NAS服务器,它兼顾了咱们这个服务注册发现以及配置管理,也就是配置中心的功能。好我们呢接下来就来写配置中心的conf server ad drr,那这个呢,也是我们本机的117.0.0.1冒号8848,好,那么在这指定好了以后呢,接下来我们相当于就配置好了配置中心的一些相关信息,那么接下来呢,我们做来来做一个测试。
03:04
比如我们来在这写一个controltrler,好,我们就在这个controltrler里边来写一个请求PA,好,我们还是返回R,然后呢,我们就来写一个test啊,Request map来帮我们来发送请求,还是我们这个test请求,然后呢,它比如来获取两个我们配置中的值,比如以前我们给这里边配置的一些值,我们比如配一个,比如user.name吧,我随便配一个叫张三,比如user.age等于18,我们可以将任何配置呢都抽取到配置文件中,们想要获取呢,以前是这样子做的,比如我们在这来写上两个变量,一个是string的name,一个是inte的H,而这两个变量呢,我们在配置文件中都配过,所以我们直接可以用spring and value注解来获取到配置文件的值,直接Dollar符大。
04:04
号,只要在application properties里边配的东西,你们直接可以在这来取user.name,诶就是这样,那么这个呢也一样,At value Dollar符大括号user.age,好,比如呢,我们发一个text请求,我们将这两个呢返回一下,诶,我们return r.OK诶,它帮我们返回一个OKOK里边呢,帮我们来put一个东西,它的名字叫什么名字呢?就是我们从配置文件中获取的,并且呢,再来放一个,它的年龄是多少,也是我们从配置文件中获取的,只不过呢,目前我们是先把它配置到配置文件中,我们虽然呢配置了配置中心的相关地址,但我们现在可以来启动看一下。我们再来启动我们这个卡服务的时候呢。
05:00
我们来发送我们这个carbon carbon test请求,我们看它能不能先获取到基本的一些值,好我们这个优惠券呢,它是在7000端口稍等一下。好,我们来点击旗间端口,我们先来测试一下carbon carbon test,诶,我们发现呢,这个name edge都有值,Name雷凤阳,这个EDGE18只不过这个name呢,不是我们当时配的值,来看一下,那当时配的这个呢,是从配置文件中取出user.name而user.name呢,这其实是一个系统变量,所以呢,它取出的是我们这个Java环境系统里边的这个名字,就是我们当前计算机的这个名字,所以呢,这个为了区分开,比如我们就叫carbon第user.na好,我们来写上我们自己的前缀。carbon.user.edge包括我们在这取的时候呢,我们也加上自己的当前应用的这个前缀,诶我们配置的时候呢,给它多加一个前缀,好,我现在呢,重新来启动我们这个优惠券服务。
06:12
那么呢,这个就是正常的从配置文件中获取值,它是能获取到的,来测试一下。好,稍等让它启动来刷新。好,现在呢,Name h都能正确的获取到值,但是呢,假设我们现在有这么一个需求,我呢想要把这个年龄和名字都要修改,修改了以后呢,那我们还要实时的看到结果,那我们以前是这样子的,假设我们这个应用已经上线了,想要修改,那我们需要修改源代码配置文件中,比如我们把name改成张三二,然后呢,18改成20,我们把这个应用的配置改好了以后呢,重新将应用打包,又发布上去,又来重新启动,启动了以后呢,你再来发请求才能看到,所以这样呢会非常麻烦,包括我们当前应用如果在十台机器都同时部署了,那么我们把这个应用呢,相当于配置,相当于修改以后重新打包,要给十台服务器重新再来部署一遍,这样就非常麻烦,那我们希望做的是什么?我们将我们的这些配址可以交给配置中心,配置中心呢?我们刚才指定了地址叫8848,如果配置中心。
07:26
有了这些配置,我们在配置中心一改,让它动态全改,那怎么做这个事儿呢?其实在我们这个服务在一启动的时候,我们能看到这么一个日志,这个日志呢叫加载,诶我们这个定位,定位呢,我们这个数据源,我们的属性的来源从哪定位呢?它可以从拉S中来获取一个叫古励mail carbon properties这个东西相当于呢,我们配置中心中如果有这么一个配置,那么它里边的配置呢,也会被获取来,那好,这个配置的名字呢,一般默认现在是我们当前应用名,加上它的properties,好,那现在呢,就把它复制来,我们来到配置中心,那S在这有一个配置列表,我们在这呢,可以点一个加号来,我们创建一个配置,配置呢这有一个data ID,相当于我们这个数据的ID,配置的ID,这个ID呢,就是我们这个配置文件的名字,我叫古励mail properties,诶就在我们这一。
08:26
二来写着的好,我们先给这一复制,然后呢,配置的信息,由于它是一个properties,把我们以前的这个配置呢,我们可以拿过来。我们原来是给这儿配了两个东西,但每次要改这儿太麻烦了,我们把它搬家到配置中心,好我们放在这儿,然后呢,我点一个发布好,发布了以后呢,接下来我们来看最终的效果,这样比如呢,我们把这个卡现在重启一下。因为以前呢,还没有加载到这个proper,如果我们现在加载到了properties,那现在重启一下。
09:03
我们来看一下,我如果来刷新,先看能不能正确的获取到值,诶能获取到张三20,但如果我们现在想要修改怎么办呢?当前应用正在上线中,不,不能像以前改了配置,把应用重新打包,这样太麻烦了,我们可以来到配置中心,好,我们比如这有一个配置列表,我们看到有这个鼓励mail carbon,这个properties,我们在这呢,可以点击编辑,我们把这个配置呢,20,我们可以改成22,我们点一个发布,我希望呢在这把这个改成22,你再次来请求这块呢,动态的变成22,我们发现呢,这没动态变成22,想要动态变呢,非常简单,只需要结合一个注解,比如我们来到这个controller里边,诶我们用一个注解叫refresh scope来我们来刷新,然后呢,我们让它刷新配置,这样的话呢,每一次我们这个配置呢,它都会从配置中心动态的来获取到,那现在来重新再来测试一下。
10:04
那么整个步骤呢,其实非常简单,只要我们倒了这个配置中心相关的依赖,然后呢,在这儿配置一下配置中心的地址,将所有的配置搬家到配置中心,并标注一个这个配置刷新的注解,我们以后呢就能动态获取到来看一下。我们现在呢先来刷新,目前呢,这是22是从配置中心获取的,我们现在呢,改成一个24,好,我们改成张三,我们点一个发布,我们直接在配置中心把我们这个配置一发布,然后呢我们在这儿重新测试刷新,诶我们发现呢,张三24这就已经动态改了,我们不需要重新来为这个微服务打包,重新发布到我们这个服务器中。那我们基本的把它的用法总结一下,我们来到我们这个主程序中。哎,我们在这儿呢,总结一下配置中心是怎么使用,如何使用NAS作为配置中心统一。
11:09
管理配置,但这个步骤呢,首先我们要做的第一步就是引入我们这个依赖,诶这个依赖呢,是我们之前说的NAS作为配置中心的这个依赖。叫NAS config,这个start,好,我们直接把这个复制过来,这是我们做的第一步,引入依赖,然后呢,们要做的第二步,第二步我们呢需要创建一个,创建一个一个这个文件叫bootsrip properties,这个名是固定的,诶这是spring boot的规定,我们只要给这个配置文件中配上关键的两项,第一项是我们当前应用的名字,第二项是配置中心服务器的这个地址,但这个配置中心的前提就是我们得启动NAS服务器,好在这呢,配置上这两项,然后呢,接下来第三步,第三步我们需要呢,需要给配置中心默认。
12:13
添加一个叫叫什么呢?我们来看一下,在配置中心中默认添加一个叫当前应用名点properties,这个我们称为叫data ID,数据集添加一个我们叫数据集,我们这个叫数据集,也就是data ID,然后呢,这个data ID呢,默认的名必须叫这个,这个规则呢就是默认默认规则。默认规则就是应用名点properties。然后呢,我们给配置中心中加一个这个,然后呢给这个。里边再来添上所有的配置,添加任何配置,我们把这个任何配置呢,都可以添到这个properties里边,那我们想要动态获取配置怎么办?动态获取配置非常简单,结合两个注解,第一个注解呢,叫refresh scope。
13:18
我们叫动态刷新配置。这个呢,其实是在使用咱们这个spring cloud原来默认的这些配置中心也需要写的这个注解,这是第一个注解,结合第二个注解叫at y6获取某个配置的值,好这块呢就可以,它的作用可以动态刷新配置。动态获取并刷新配置,然后呢,我们这个at value,我们在这呢,写成Dollar符大括号,我们这个配置项的零也这样呢,比如我们写了一个carbon user.name它呢就能获取到我们这个配置,而且呢,我们刚才看到一个效果,就是当我们application properties中配了一个,而且呢,同名的我们还配在我们这个配置中心里边,那优先用的是谁呢?看配置中心是张三24 application properties里边是张三二二十,我们在这呢,通过测试发现呢,用的是张三24,也也就是配置中心有的优先使用配置中心,如果配置中心和当前应用,当前应用的配置文件中。
14:44
都配置了相同的项,都配置了相同的项。那么呢,优先使用配置中心的配置,这样呢,我们就可以以后在配置中心改一个配置,让当前的这个微服务所有的东西呢,都动态的进行修改。
我来说两句