00:00
好,前面呢,我们简单演示了使用NAS作为配置中心来统一管理配置,那么接下来呢,我们来说一下NAS作为配置中心的一些更多细节,好在这个细节里边呢,我们首先来理解上这么几个核心概念,第一个概念首先呢是我们说的这个命名空间。还有呢,我们的配置集。以及我们的配置及ID。还有我们的配置分组。了解清楚这么几个概念,我们就可以对配置中心应用自如,首先我们来说命名空间,命名空间呢,它其实说白了一句话,是来做配置隔离的,这个隔离呢,我们可以在NAS的控制台看到,诶这一块呢,有一个叫命名空间,命名空间呢我们来说一下,首先默认是public,诶,这是一个保留空间,这个默认的命名空间是public,它作用是什么呢?我们可以看到在我们配置列表里边,所有呢,我们新添的这些配置,我们都属于默认的这个public名称空间,也就是说我们默认新增的所有咱们这个配置都在咱们这个public空间下。
01:26
而我们说这个命名空间,它的核心是想用来做配置隔离的,所以说呢,我们举上这么几个例子,比如第一个例子,我们呢,开发有一堆的配置,测试呢也有一堆的配置,在线上环境,我们的生产环境也有一堆的配置,配置呢可能不一样,那我们呢,就可以在第一种情况,我们可以创建很多的命名空间,比如呢,我们来新建一个命名空间,比如我们这个命名空间呢,我们就叫DV,这是我们这个开发环境,然后呢,我们还可以创建更多的这个名称空间。
02:01
好,我们再来创建,比如我们的测试环境,这是我们测试环境,然后呢,当然我们还可以来创建我们的生产环境。也就说呢,我们可以先创建这么几个命名空间,那它们的作用是什么呢?比如我们看我们配置列表,我们之前呢,给这添了一个叫古丽mail carbon properties这个配置,只不过呢,它在默认的这个名称空间public下,比如我们现在呢,我们有一个生产环境,好,我们在生产环境里边,我们再来创建还是我们的这个googlema carbon properties,然后呢,我们将那一堆的配置我们重新写在这,比如我们之前有个carbon username.user.name哎,比如呢,我们等于李四和carbon。点user.h等于。
03:00
30好,我们点一个发布,相当于呢,我们能看到在我们这两个名称空间,第一个是public下有古丽ma carbon properties和prop下也有古丽ma尔properties,并且呢,他们都拥有相同的两个配置,一个叫username,和user age,我们的这个public下也有这个username和user I age,而如果我们此时来启动我们的这个carbon优惠券服务,这优惠券呢,我们之前配过,我们只要呢配置了这个配置中心的地址,我们说它默认啊,会找到当前应用名点properties文件,而它默认呢,会在哪个命名空间下找我们来可以看一下。好来等它启动,启动呢我们来直接进行测试,我们来发送请求来我们发现呢,它获取到的是张三24,因为呢,它是使用默认的这个命名空间pali,想让它获取到了这个里边的配置,而如果我们某一天我们这个应用上线了,我们想要让它动态的从PP里边来获取线上的一些配置,那怎么办呢?我们只需要改上一处,我们在boottrap这一块呢,来修改一个叫conf。
04:18
这呢,有一个叫name space,我们来写上咱们这个命名空间,我们要哪个命名空间的,注意这个name space呢,我们必须写,哎,我们现在想让它切换到这个环境下,哎,我们用这一块的配置,那我们就得切到PP这个命名空间,这个命名空间呢,这有一串UUID一样的东西,我们把它复制来,必须写它好当我把这个一配上以后呢,我再来重启卡,相当于呢,我们就给它切到了另外一个名称空间,它还是来获取我们的古mail carbon properties,只不过呢,获取到另外一个名称空间下的。来,我们来可以看到日志啊,还是获取它,然后呢,我们来重新来刷新。
05:03
哎,我发现他拿到的就是李四30,那这就是我们第一种场景,我们可以利用命名空间来做我们这个环境隔离。利用利用咱们这个命名空间。来做环境隔离。那么这一块呢,需要注意的一点就是我们呢,需要在咱们这个boot strap。点proper case里边来配置上,我们呢需要使用哪个命名空间下的配置,所以呢,我们必须额外加上这一句话,而且这个namespace这儿呢,一定要写我们这个命名空间的这个唯一ID,不能写这个命名空间的名字,比如叫什么pro不能写这个,这就是我们说的第一个场景,第二个场景呢,其实我们也可以来这样做,比如我们现在微服务众多,每一个微服务里边也有超级多的配置文件,如果我们呢,就只有这么三个命名空间,这样的话呢,在每一个命名空间下有超多的这个配置文件,非踌混乱,那么我们可以呢,基于我们每一个微服务,每一个微服务之间啊,互相隔离,互相隔离配置,怎么互相隔离配置呢?我们可以。
06:30
每一个微服务都创建一个自己的命名空间,每一个微服务都创建自己的命名空间,那么这样只加载指加载自己命名空间下的所有配置,诶这样呢,我们也可以这么来做,比如举一个例子,我们呢,以前是这么呃,开发测试这几个命名空间,我们现在呢,我们不想用这种模式,我们可以来再来建一些命名空间,我们为每一个微服务都鉴上当,这一块呢,比如我们叫要第一个叫。
07:09
鼓励ma cup happen好,我们为优惠券来创建一个专门优惠券的这个命名空间啊,我们是优惠系统,优惠系统哎,咱们这个命名空间,诶,比如呢,我们可以给优惠系统自己来创一个命名空间,当然我们也可以给我们的其他各个微服务,我们就来创建两个给大家测试一下就行了。好,我们可以给我们这个会员系统也创建自己的命名空间,这样呢,以后啊,所有的和优惠券有关的,比如和优惠系统有关的所有配置,我们全放在这个优惠系统下,让它启动的时候呢,只来读它自己命名空间下的东西,比如我们重新呢,给咱们这个卡这个命名空间下创建出我们这个鼓励mail cup proper,当我每次呢,想给这呃复制一个太麻烦,我们可以选中这个。
08:09
我们在这呢,专门有一个克隆配置,我们点一个克隆,我们呢把这个所有的配置内容我们放到卡命名空间下,然后呢点一个开始克隆,这样呢卡on下就有一个这个配置,而我们这个以后啊,咱们这个卡这个微服务它呢都只获取自己命名空间下的所有配置,好我们自己命名空间,我们把这一块复制来。我们可以基于环境进行隔离,也可以基于微服务之间互相隔离,好我们来重启一下,这样呢,我们以后啊,就可以将我们这个卡,这个微服务下的所有配置,可能有这个配置,可能有更多其他配置,每一个呢我们都创建到这儿。我们把它都放到他自个儿的命名空间下,好,我们可以来测试一下,比如呢,我们卡这个服务下的命名空间下的这些修改,我们来修改一下,比如我们就叫张三。
09:04
好,然后呢,这个age呢,我们就叫29,我们来发布一下,我看是不是能用到最新的。诶,当然这是一个properties类型的,来发布一下,好,那们在这呢刷新一下,诶现在是张三CARBON29,诶已经用到了它自己命名空间下的这些配置,这是我们说的第一个核心概念叫命名空间,它的这个使用场景,命名空间说白了呢,就是用来配置隔离的,我们可以基于环境进行隔离,也可以基于微服务进行隔离等等,当然隔离方式有很多,大家可以按照自己的业务的特性来进行不同的隔离。接下来第二个叫配置集,什么叫配置集呢?也就是我们一组相关或者不相关配置项的集合,就是配置集,那说白了我们这个配置文件里边有超多的配置,他们合起来就是一个配置集,然后呢,这个只是一个概念,我们知道一下啊,所有的配置的集合,哎,我们就叫配置集,而接下来呢,还有一个重要的叫配置集ID,也就是说呢,我们配置所。
10:12
Code的配置集合,我们以前呢,是放在这个配置文件中,这个文件名叫application页面,那这个配置及ID呢,就类似于配置文件名,而它在NAS中是这个东西,我们来看一下,我们在这呢,点一个新增,这会有一个叫data ID,这个就是我们的配置及ID,那其实就是我们以前的这个配置文件名,诶类似我们这个配置文件名。那我们以后呢,想要给我们这里边加什么配置文件,那这一块呢,就相当于它的配置文件名等等等等,那我们这儿呢,就有一个配置文件鼓励mail carbon properties等等等等,好,这是我们的配置级的ID。接下来还有一个核心概念叫配置分组,这个很重要,我们看到在这个data ID,也就是这个配置文件,它所属于这一组叫default group,我们说一下默认所有的配置级都属于。
11:14
配置级都属于属哪一组呢?属于我们这个default group这一组,我们这些组啊,其实都是可以基于业务来随意定制的,比如我们双11的时候,诶用这一组,我们组名呢,就叫双11,诶我们这个618的时候呢,用这一组配置,比如我们这个双12的时候呢,用这一组配置等等等等,我们呢,可以随意来定义我们这些组名,在我们在创建配置的时候,比如我们在这儿点一个新增,在这创建配置的时候呢,这就让我们输入组,这个组呢,大家自己来输就行了,比如我们这个又有一个叫鼓励没有。Carbon好点,Properties,而它呢,属于双11的好,双11呢,如果是双11情况下,那就这样用,比如username就叫哈哈,哎,比如我们的这个年龄userh。
12:14
H等于18,好,那么呢,把这个一发布。我们可以看到。在这一块呢,同样的配置,在我这个car命名空间下,这呢有古力麦IL properties,诶这两个呢是同样一个配置集,但是他们所属于不同分组,那这样呢,我比如想双过节了,双11了,我想让他用这一组的配置,那怎么办呢?我们只需要来到boosrip properties里边,好config在指定了names以后,Config呢,当然还能指定我们的group,诶这呢有一个group呢,如果不写就是用默认组的,如果我们写上,好,我现在呢想让他用双11的这个配置,好我们来重新启动卡。
13:07
好,我们来进行来测试,如果是双11的话呢,它获取到的应该是哈哈18,你在这来刷新一下。好,我们看到呢,确实拿到的是哈哈18,这就是呢,我们说的这个配置分组,而最终呢,我们在我们这个项目里边对他们的使用是这样子的,首先呢,每个微服务,每个微服务创建自己的命名空间,就像我们刚才这样一样,诶卡这个微服务有它自己的这个命名空间,接下来呢,我们使用这个配置分组来区分它的这个环境,我们再来使用这个配置分组。分组区分环境,比如我们区分第V环境和泰斯特环境和咱们这个prod环境,还是呢,以我们这个古力麦卡为例,我们来修改一下我们的这个配置,首先呢,我们这个命名空间,自己微服务呢,拥有自己的命名空间,接下来呢,我们将每一个properties改成我们不同的这个分组,好由于这一块呢,我们点击编辑的时候,这块分组已经定了不能改了,那我们就将之前的这些配置我可以先删除掉,我来创建上这么几个分组,我现在把里边的配置复制出来,然后我来创建我们的古励ma鼓励ma和carbon.properties。
14:41
首先呢,第一个组是第1V组,第一位组里边的配置是这样子的,我们就叫第1V好18,然后呢,我点一个发布,同样的呢,我再来发布一个古mail carbon properties,而此时呢,让它属于咱们这个。
15:01
Prod组,好,来测试一下,还是我们这个古力庙。Cup。第2PROPERTIES好,我们呢让它属于prod组,我们就呢整上两组给大家测试一下prod,比如呢,我们是20PROD组好。这样呢,我们就会看到我们这儿有两个配置文件,两个一模一样的配置文件,只不过呢,它们所属于不同的分组,我们将这个呢删除掉,这样呢,如果我们在开发环境下,那我们以后呢,就来修改boosrip properties,我们呢就让他来读取开发环境这一组的相关的配置,好我们来启动。命名空间呢?每一个微服务还是读取自己命名空间下的配置,而呢,我们现在是开发环境,让它读取DV组下的相关配置。
16:04
我们可以来进行测试。刷新。那现在呢,看到的是DEV18等切换到线上环境了,我们只需要把这个分组呢改成prod,这样呢,让它默认来读取我们这个pro OD组里组的配置,我们来看一下,如果是prod呢,我们这一块返回的就应该是prod,我们prod组的这个配置的内容是pro od20。来测试一下。好,我们发现呢,它已经切换到PROD20,那以后呢,我们的微服务就这么来使用每一个微服务呢,创建自己的这个命名空间,然后呢,他来使用咱们这个配置分组来区分不同的环境。
我来说两句