00:00
好,同学们,我们继续上一讲呢,我们出现了这样的一种工程问题。3344啊,改了3355没有任何反应,我不得不重启一下3355,那么这样的话呢,偶尔一两次我们认了,但是每次运维工程师修改一下配置文件,我们客户端3355都需要重启。崩溃了。而且现在。你只有一个3355啊。6677呢,你改一次啊,3344啊,到时随时可以刷新,因为它它直连就是GIHUB嘛,那后面的话你改一次我就要启动三次啊,那么再有100台机器呢,所以说这个必须要优化,那么我们接下来就来看看。第一次来给大家介绍动态刷新的问题。那么换句话说,我们。想干的事儿是不是就解决这个难题,避免每次更新配置都要重启客户端微服53355,那咋整呢?我们加固一下,我们33551步一步配置来啊,那杨哥就告诉你为什么要有些配置啊,我们我就想通过这样从零。
01:12
到100,从1234567,一步步带着大家过来,这些为什么要加这些,他解决的痛点在哪啊?这样丰富大家的工程经验来吧,那么同学们。OK。修改3355模块,首先引入act监控,那么什么意思呢?这个是图形化监控啊,我多次强调过,除了网关别加啊,其他的估计都得加,那么他意思就是说我要有一个这个插件,加了以后我自己发生变化了,能够被别人监控到,那么所以说在这外B和这个已经加好,第二步修改样么,要暴露监控的端口,那么也就让我感应得到,那么在这块我们的3355这。同学们添加新的配置,暴露监控端点,那么我们呢,对外暴露出去,当然这这个新其实有好多值啊,什么健康啊或者什么的,我们这图个省事,就写个心。
02:11
好,那么这是我们的第二步,第三步加一个refresh scope刷新的这么一个助学标签,在业务类上面,那么什么情况在这要碰上一个那么一修改要重启,反正待会配置完了也要重启,我们不烦,我先把我的3355关掉,那么在这。添加我们的refresh scope,这个呢是一个配置上的注解,那么这样就实现了我们的刷新功能,清楚啊,那么它具备刷新的能力了。好。那么第。四步,那么接下来我们老规矩,先在get HUB上面修改,然后再看3344修改,然后再看3355修改。那么大家。想想。我们这个3355会不会改变,那么同学们请看我现在啊版本号继续。
03:11
版本将其改为三,这是我们的giub上面的提交,只要你getub上面一提交并且成功通过以后,我们是版本号变成三了,那么看一下我们的3344还是主分支上面的,看这D,那么你换路径,其他配置文件都一样哈,那么同学们请看我自己是3344了吧,那么现在我们的3355我们给它重新启动,那么来看一下我们的3355会不会生效?我暂停一下录屏啊,同学们请看我们这儿getu上面改完是33344,改完马上也是33344,是从getup上面直接拉过来的,OK,那么我们重启了我们的3355。我们哦,不是重启,就是刚才我们把3355关闭了啊,现在呢,我们启动我们的3355,看看我们能不能获得最新的呢,那么这个时候大家捞眼。
04:08
有没有三,但是抱歉这是不对的,清楚了吗?因为我刚才是不是重启以后,让他第一次又重新get up上面获得了最新的啦,所以说我们再加一次啊,这个时候同学们请看啊。这个时候四。这是我们的did HUB上面OK。那么现在我们呢,因为我们刚才重启以后,相当于说每次重启是不是要从getup上面和334上面拉取最新的,所以说我们就变成了三,没有起到我们的演示效果,我们再来一次啊,现在3344上面是不是已经是四了,这个没问题吧,3344。没问题,关键我的问题是我不想重启3355。刚才我是关机的状态,我去修改代码,一开机了以后,3355,我是不是一次性拉到最新的版本是三,但是现在。
05:05
右版本往前走了一步是四,给Hu是43344,总配中心是四啊,我现在3355,我并不喜。重新启动。我们来看看能不能获得四。刷新几?几刷了多次以后发现是不是还是三啊,哎,突然明白我们的配置啊,怎么着没有生效。明白,那杨哥你傻叉了,没生效,你给我讲,抱歉,你不是。说还加了这些东西,改了那么多,费劲整这么半天还是没起效,那么换句话说,不用讲,同学们,我现在要是重启我们的3355,是不是又可以重新最新的一次啊,从GIHUB上面和3344上面。获得我们最新的内容四啊,三者同步啊,这不还是绕了一圈又回到原点,3355还是避免不了要重启吗?那么你前面讲的加这些暴露监控端点,又加这么一个自动化的标签,刷新的注解有什么用呢?那咋整呢?怎么。
06:13
让我3355不重启,能跟着你们一块儿同步呢,一起共舞呢?那么兄弟们需要运维工程师啊,多做一次啊这个注解。它的作用是自动的,能够获悉刷新的内容。那么让运维工程师干什么呢?需要运维人员发送一个POS请求刷新一下3355,相当于外部。说难听点,就像运维工程师多做了一步,首先运维工程师要做的事情是不是他去改的这个配置文件,你改完以后请运维人员发个post刷新一下335通知它,那么3355就可以获得,哦,明白了,改了最新的了,我从3344上再拉,那么这个时候必须是post请求,那么同学们上一讲。
07:00
我们讲过我们的CRL,这个时候的意思就是说,如果我不加杠X post默认就是get请求,如果我加了这个post,那么大家请看3355ACTATE refresh,这个时候一刷,等它一会,因为这个呢稍微有点慢。然后相当于就是激活一下三三步啊,哎哎,哥们别在这儿,那直不能真的已经改了,那么下面请看此时我并没有重启3355,我们再次来看看会不会得到我们最新的配置呢?那么同学们再来,这个时候我没重启3355啊,一刷新。怎么样?四是不是同步过来了,这么说能跟上啊,这样就达到了避免每一次更新3355就要重启,那么我们现在只需要运维工程师或者这个改配置文件的,改完以后发这么一个post去刷新一下我们的客户端,就能够避免重启,那么两害相衡取其轻的话,这个是不是要比重启3355要好很多。
08:06
好,那么同学们,为了避免大家懵逼,我再来一次啊,现在。我们的后台三台机器是不是都启动70013344配置中心,3355配置客户端,那么现在回到我们的D上面,假设这个运维工程师他要把这个版本号。改成我。保存提交现在第一步啊,是不是我们的GIHUB上面已经改成五了,好,由于3344啊,是跟GIHUB直连的,我只要自己刷新一下。不用重启,我就。能够获得五,但是这是配置中心3344啊,我3355可没连着get HUB,我连的是3344啊,那么现在3344啊,变成五了,假设。没有人通知我没有发送这个post刷新的话,我前面的配置啊,这些东东没有任何效果,那么大家请看我3355没有二次刷新,听懂又改了一次,以后同学们请看我刷。
09:09
再刷再刷再刷再刷还是四啊,没有办法从334上面获得最新的五,所以说需要配置工程师做两步一。改配置啊二通知了以后需要你刷新一下。听懂,那么这个时候3355就可以避免每次配置修改获得。信息不用重启,来同学们搞定,那么这个时候兄弟们没有重启啊,三三五五一直没动过,OK1刷大家看五号记录版本号是不是同步更新完成啊,这就解决了我们的。成功实现了客户端3355刷新到了最新的配置内容,是不是最好的效果就是避免了?
10:00
服务重启啊,那么只需要你发送这么一个跟运维的兄弟商量一下改配置啊,发post刷新一下我们这个客户端通知啊,让我们即刻知道,那么这个时候我们迅速就可以从334上拉取最新的内容,保持我们的全局版本一致,那么到这儿基本上我们的手动版的动态刷新,注意手动版的动态刷新到此成功实施通过。那么兄弟们想想完不完美?惊不惊喜,还有没有其他的改善空间和其他的问题,我们暂停一下录屏讨论一下好。同学们。我们现在呢,再看看这个方案,基本上到这已经是我觉得啊95分了,一般的小厂去用没什么太大问题了,无非就是说你说那多加这就写个自动化脚本执行一下,找个运维工程师啊,简单的很,那么下面的问题是。
11:00
假设有多个微服务客户端呢?33556677,每个微服都要执行一次post手动刷新,这个可以干写个负循环的事儿,了不起,你有100台机器,兄弟们更新完了以后。我取一个批量脚本,100台刷一下没问题。这个麻是麻烦点,但。不紧张,关键是我们想更优化。我可否。广播一次通知自动除除生效,我们想大范围的自动刷新,兄弟们,你们觉得有这样的可能和方法吗?所以说碰上这样大规模的广播一次同时啊,处处生效,也不用发那么多post了,这是第一个,第二个。100台机器,抱歉。不见得大家都是这么统一,这么顺利。我这儿改变了,100台机器都要改,有没有可能需要精确打机,不好意思啊,100台机器我们只通知98台,另外两台因为版本发包的问题,不用换成最新的版本,我们要求该通知的通知啊,不该被通知到,不要通知,进行定点通知啊,定点清除啊。
12:15
明白,所以说如果碰上这种功能,现有的发post。Act refresh这样的可能就有点儿力不从心。那么想广播通知,二想避免每次要执行一次post,还想进行精确打击,精准通知和广播通知分开,该通知的通知啊,不该通知的不通知啊,这一系列的功能目前我们做不到,所以引入了我们的下一章消息总线。
我来说两句