00:00
好,各位同学大家好,那截止到目前我们已经完成了用necos作为服务注册中心的演示,我们的订单消费者八三端口和我们的支付微服务90019002都已经成功注册进入到了我们的这个necos。好,那接下来我们呢,就要继续深入讲一下nis替代我们的config做服务配置中心的相关内容。简单一句话。所有各种配置信息,以前我们写到了这个GIHUB上面用这个呃,Con结合bus来进行自动刷新和动态的更新。那么现在。少一点耦合。我们可以把我们的内容直接写进nes,然后再用nes做类似于conf这样的功能,从ne上面去抓取我们相应的配置信息,别忘了这是服务管理。兄弟们,这是不是还有个东西叫配置列表啊?
01:03
点一个加号是不是叫新建明白,只不过以前我们见到配置是在get Hu上面,现在可以建到这个上面,大家看这是不是有什么yam什么之类的,好混个眼熟,以后这一张非常重要,请同学们睁大眼睛醒醒瞌睡。跟着我一块儿往前冲,好,那么同学们走起。下面让Nico先作为配置中心的基础配置好吗?来吧,老规矩,那么又要是建工程。泡沫yam主启动业这些严格节约时间,我已经在我们的这个idea里面新建了个。Cloud,阿里巴巴config ni client 3377,那么好,工程已建好,来吧,老规矩,兄弟们是不是先粘3377的泡沫,那么这个泡沫主要就是这两个,那到这一步,那么兄弟们主要就是我们的Nico can f这一波O不OK,不用我再给你演示,去这个官网上去找了吧。
02:12
能理解,那么演示一次也就够了啊,这些东西均来自于官网,不会粘错。上一次是做服务注册发现的时候,粘的是nicos discovery,那么这次做的是配置中心,粘的是ni con,说白了,请把这两个以后只要用nis一块粘明白,好,这是我们的。泡沫,那接下来改我们的亚沫,那我们的亚M。请大家看几批叶子,两批puttrap样么和application样么?那么长几个两个,那为什么需要两个呢?Nis到后面,为了跟。Spring cloud的可以无缝的迁移思想都是相通的,那么来吧。它这个一样,项目初始化的时候要保证先从配置中心进行配置的拉取,拉取了以后再说自己本地的,先有共性再有个性,所以说boot的配置文件的加载顺序是优先级都是bootrap全局高于各自独立的,那么好,那么说穿了我们是要把是不是要把我们的重点的放在。
03:19
配置中心相关全局的放在boot,自己的放在这儿,那么来同学们,我们呢,粘贴一下,好在这是不串,那么至于说我写了一些什么东西,尤其是这个,请不要管这个。可以这么讲,就是这一节课的重点,待会我说,那么至少现在同学们跟着我来3377本工程的端口服务名字啊,就叫ni砍client配置客户端没问题吧,那么在这款前面见过了,是把它注册进8848做的是什么服务注册,而这个是作为什么服务的配置客户端,听懂了吗?说串了就是我们的3377要注册进去,那么注册完了以后,从那上面了以后。
04:04
读什么?读一个yam的配置文件,说白了这个东东就是我们以前写在GIHUB上面的那个配置文件,那么这个时候说白了我们3377就可以去8848上去读我们指定的后缀文件名是ya格式的文件,OK,那么为什么要有配置啊,我们讲过是不是要有生产环境,开发环境,测试环境,前面在cloud,那我们详细的讲过,在这就不再赘述和啰嗦,那么这是我们的第一个。第二个呢,来吧。那么同学们,我相信这么一派也就明白了吧,那么这两个拼起来是不是就是8848上面去找一个叉叉叉名字,后缀名是亚M的配置文件,且我们在这儿假设这是。开发环境改成test,按照我们的约定就是测试环境改成一个其他的PD就是产品环境,那么这两个一拼起来是不是代表3377,你要去配置中心8848NES上面去拉一个什么样的亚M配置文件,听懂好,这是我们的第三步亚么,那么主启动类,那么同学们不废话,就叫3377粘贴这两个OK,那么有了以后写我们的CTRL了,那么这个呢,是我从controlr那粘过来的那么一样。
05:25
基本上就是拿到我们的conf info,那么可以得到一个结论,就是到时候我们在我们的8848NES的服务器上面的配置文件是不是它的内容也叫conflict in,跟我们的spring cloud conflict个前面的那些讲解是一样的内容,听懂那么好,这个就不写了,那么这个还记不记得,是不是要保证什么动道动态刷新啊,那么来,如果忘记的同学,我们不妨复习一下。在之前我们讲过spring cloud config,那么这个时候我们呢,为了完成。
06:00
广播通知。为了完成自动刷新,我们做了好多的功夫,那么这个时候请大家看,还记不记得我们当时的时候讲过这么一个注解标签啊,我找一下哈,那么这个注解标签的话叫动态刷新,大家请看是不是。At refresh scope业务类。Controller的修改,那么大家告诉我,现在你们又看到了,那跟我讲,只要前面的基本功打的基础和扎实,这一块是不是一样,就代表是支持ni,也可以支持动态刷新的功能,OK,那么所以说我们的业务类就要有这么一个动动,这个动洞也不是我规定的。官方阿里的手册通过的原生注解refresh scope实现了配置的自动更新,说穿了什么?你看后面出的技术是不是都是去抄前面的作业呀,所以说后面用起来就更爽,它解决了很多痛点,起码我现在一个人ni,我就找ni,可以解决conflict加bus的所有问题。好,接下来我们就要在Nico上添加配置信息了,这个要先说一下,它的配置规则非常重要,那么请同学们跟着我来。
07:12
来。先说理论,什么叫理论呢?弟兄们,这个是不是杨哥还没讲呢,这是我们的公式啊。首先。Ne中data ID的组成格式及与spring BOO配置文件中的匹配规匹配规则,这是什么意思啊?大家请看,这是我们ne的文档啊,待会来读,那么这个时候我们一刷,在这是不是需要有一个东西叫配置列表,配置列表这就是我们的文件,请大家看这是不是有个叫datad,没问题吧,那么怎么跟它产生配置呢?来请看一下官网地址,就是这个,这个是我从官网摘出来的,我们打开一下官网NOTE1页。引入的jav坐标架包哈来在Nico spring cloud当中,Data ID的完整格式如下,叫perfect,前缀spring profile active和fair extension。那么这个我们把它。
08:11
来认认真真的学一下它的意思,就是说默认为spring application name的值听懂,那么说穿了就是这个perfect前缀,就等于这个东道也可以通过配置这个来。匹配第二个active即为当前环境对应的profile,那么可以参考boot的文档,当这个为空的时候,对应的连接符减号也将不存在,对it的拼接格式就变成前缀,变成后缀文件名,这再次强调不允许丢掉,必须派严格按照这个公式啊,不要让它为空。莫名其妙会有一些问题,听杨哥的第三个干嘛,我配置文件的数据格式,简单一句话就是property,还是要么这么说能跟上,那么最后第四步是不是通过这个原声注解来实现配置更新,那最终是什么意思呢?求杨哥配置讲人话,我们来吧。
09:18
我们读完了官网以后,说穿了这个profit就默认为是等于这个,那么把这个拼起来了以后,兄弟们,我们的新增配置的情况就这样来。按照公式啊,我们的spring application name是不是叫client这一波兄弟们没问题吧,那么相当于说我们的配置文件就叫这个名字啊,然后。当。Spring profile active,那么这个时候风格组合我们现在是一个什么环境啊?是不是一个我们的D开发环境啊,这么说能跟上,然后点请看spring cloud ni con fair spring。
10:06
Cloud ni,然后呢,Con fire attention ya么明白,那么所以说待会我们就要派这么一个文件名去传给我们的nicos,在上面进行配置和我们的信息的输入,那么来吧,那么配置新增,通过公式和官网的理论到我们的实操理论,实操小总结,那么过来。现在配置列表点个加号名字啊,为什么要叫这个怎么推出来的?来了吧,这不是我们胡说八道,是不是严格按照官网的要求一点点配出来的,那么所以说同学们走起,那么走到我们的Nico,那么在这儿点一个加号,在这儿date。Idea就叫这个group,回头我们讲,那么这个你想写就写,不想写无所谓,那么文件格式叫什么?Yam明白我们这配的是不是就叫yam啊,OK,好,那么当然你也可以配成proper,那么你这选一下就OK了,那么来配置对应的界面,那么同学们请看配置列表,点了以后贝塔D就是刚才我们推出来的那个名字啊,然后要么那么中间是不是叫conf con in for d这个这个OK,那么这你随便写一个,那么设置data ID,那么这个就是我们的一些公式,那么这儿。
11:30
我们呢,做一下配置吧,先把它全部先配完,那么在这。看OK,一定要有这个空格啊,兄弟们,缩进非常重要,那么这个时候我们这儿呢,直接就来一个。Co,然后配置中心。这一波同学们没问题吧,那么随便写一个version等于一兄弟们OK,那么在这完活以后,随便你写什么内容啊,那么在这块完活以后,我们点一个发布,那么来,同学们请看此时我们的配置列表是不是就有这么一个配置的文件名称?好那么大家请看在这儿ni con client干D亚么那么在这儿ni con client干D亚么中间的内容无所谓,听懂好,那么这就是我以前配的内容来吧,那么来我们最终来设置一下我们的idea的最终的一个小总结。
12:34
请看。公式啊,就是这个。我们的application微服务的名称加我们的开发环境,测试环境还是生产环境,然后这个东东就是我们的文件后缀名,那么在这块我们都有了详细的。公式的解释啊,如果你实在还不行,理论实操小总结,那么兄弟们,红色对红色,绿色对绿色,蓝色对蓝色,这块够明确了吧?
13:05
所以说呢,这个呢,就是conflict这儿。小减号,绿色我们现在是开发环境,蓝色我们指定的是后缀名叫亚么,OK,那么。如果在这块。我们呢,完活以后,待会儿我会来演示啊,那么这儿还有一个更多叫什么什么历史版本啊,监听查询也可以试试,那么编辑和删除我就不再废话。好,那么同学们完火以后,我们接下来是不是要?测试啊,那么要保证。Yam配置文件必须要有听懂,然后启动我们的3377,然后是不是调我们的接口3377CONF ino去取得我们刚才配置的con音的信息啊好了,那么下面请同学们过来启动我们的3377暂停录屏,那我们的这个3377后台启动,但是非常抱歉的通知大家后台报错了,那么在这儿看还在正在转着啊么?兄弟们,我们找找他的错是什么东东,他说一个不合法的参数异常,不能能够解析的这么一个东东叫con in for,在这个值里面con in for OK,好,同学们,嗯,大家都清楚啊。
14:18
这些东西不可能错,为什么是杨哥从前面spring cloud配置正确的那些代码里面拷贝过来的,对吧?我节约时间就直接拷贝了,前面spring cloud can能对,在这块不能对,那么为什么呢?请看它的错误提示。直接说了搞不定,因为value拿到,也就是说拿不到这么一个配置值,所以说它没有办法获取正确的加载,那么错是错在哪呢?理由是他在。错在了我们的这个文件名。那么这块呢,是杨哥被他坑了啊这个。好,我们来说一下,详细说一下这个啊,没关系,有故障我当场当着你的面调清楚啊,因为这个东西的话很重要,同学们,这个配置文件名我们已经说过,都是严格的按照我们刚才的。
15:10
小总结的公式啊,没错吧?那么我错,我是错在哪儿呢?错在这?听懂,其实说穿了,这应该是nes的一个小问题,你应该同时支持yam和yam的这样的一个配置文件,这两个实际上是一个意思,我刚才呢,是不是手写的,平时我们都是,我们是不是都写yam,我们就不会写这个听懂了吗?所以说呢,这个时候就需要把这个配置文件。改成这个就OK了,那么将将好哈,同学们,我由于平时写的习惯都是写亚,很少会去加个A,但是呢,Nico里面它这是要有一个A的,这个小文建名字我写错了,听懂,那杨哥改呗,不好意思,不让改,那怎么办?没关系,删了重建这么说能跟上那么好。
16:02
名字啊,拷贝删除,OKOK,那么。来配置列表刷新一下,没有了,那么这个是重新点加号,那么这个时候同学们请看我这是不是就要应该叫ya mi了,这么说能跟上,那么一样也是这么一个YML,重新建无所谓,看FOK,然后OK,那么这个呢是from来自哪ni配置中心con center。然后你的配置文件的名字就叫这个吧,好吧,那么。我们的版本就等于一兄弟们没问题了吧,因为平时我都是写亚M是吧,这个nis应该自己做一个识别,就是写亚M和YL都能够识别,但是它这呢只支持这个,所以导致我读文件的时候,刚才后台我们看到一个错误,那么就读不到找不到这个,因为其他的一些代码都是我们正确以后直接拷贝的,对吧,那么好,那么同学们就OK,配置完成以后改了一下后缀,原件名从外。
17:08
ML改成ya ML好,那么。我呢,重启一下我们的3377,好,我停止一下录屏,好同学们大家请看一下,我们这个时候我们的后台重新启动3377,从头到尾没再报错了吧,说明我们的3377OK,那接下来我们继续有错,我们就给大家调,然后也好看看这个问题,因为这个太坑了,平时我都是写YML对吧,但是这一块配置文件你必须写YAML它才能识别哈,那么这一块呢,请同学们注意,否则的话就是说找不到,因为配置文件都不对嘛,所以说是里面的这个内容更加就找不到,所以说呢,就在程序加载的时候,他就会认为说在ctrler这儿说连配置文件都找不到,那么你这个依赖注入注不进去,就后台报错啊,所以说表面现象是读不到值,那么实际深刻的原因是这个文件后缀名,那好。
18:04
接下来说完这么多,我们要开始做一下测试啊,需要启动前在这个上面有对应的YM配置文件,那么兄弟们做好了,那么主启动OK了,那么接下来干嘛?是不是要看看我们从3377上面自己能不能拿到我们的这个配置文件,那兄弟们一回车同学们有没有,大家请看刚刚新写的是吧,芙蓉这个Nico的配置中中心是这么一个文件,当前版本号时间OK吧,所以说刚才我们的分析和推测都是一条龙过来的。碰上一点小bug,我们就当场解决一下好,这些都是小事儿,嗯,我相信大家是吧,讲到这这点代码杨哥肯定不可能写错,所以说这个肯定就是不是代码的错就是配置的错,要么就是环境的错哈,那么这块呢,也给同学们说一下好,那么下接下来我们就自带是吗?动态刷新么,就是修改这个next中的样本配置文件,再次调用查看接口就会发现已经刷新了,那什么情况呢?同学们,现在我们呢编辑,那么在这我们把这个版本号改为二,那么同学们请看一下发布那么OK,确认发布OK,那么这这个呢,是前面上一个版本那些啊那么。
19:12
过了。我刷。方不方便,没有再像以前以前的spring。看和bus那各种折腾各种配置啊,所以说现在人家一出后面出来的天生就自带,所以说希望同学们可以这么讲啊,我也真是只是为了教学,否则的话要从我。要是我给大家讲项目的话,做一个分布式微服架构,带大家从零到开始配,我基本上就是用这些我采购的开最新最好的技术,带着大家呢一条龙。搭建好走干净,让大家专注于业务逻辑编码啊,不要因为像刚才这种坑是吧,找半天了你会觉得哎。无语,好,那么同学们这个呢,就是我们的这个。将我们的动态刷新作为基础配置给大家做了一下。
我来说两句