《微服务》05-Nacos配置中心01
前言
大家好呀,这章我们进入Nacos配置中心的学习,配置中心是微服务框架基础的框架之一,用于解决配置文件多,不好维护的问题。
为什么使用配置中心
设想一下以下场景:
某个公司的某个项目目前有10个服务,也就是10个子项目,每个服务有3个节点,也就是说一共部署了30个服务,如果将配置都写在子项目的application.yml里面,那么一旦改了其中一个配置参数,例如redis迁移了,这个时候,就要改10个子项目里面的application.yml。
有的公司为了避免线上配置被误修改,将开发和线上配置文件分开,所以分线上环境和线下环境,这个时候,如果需要改到线上环境的配置,就得改30处地方。这还是服务比较少的情况,假如有20个,30个服务,那么改动量将是成倍上涨。
此外这还不单单是改动量改的问题,如此大量的改动,难保不会出错,一旦出错,查找起来又是一番折腾。
那么有没有可以减轻这种工作的解决方案呢?答案是肯定的,配置中心就是用来解决这种场景的。
配置中心的作用
微服务框架中一个很重要的框架就是配置中心,配置中心会将各个服务的共有配置抽离出来,统一管理,如有需要改动,则只需在配置中心中修改一处地方,再同步给所有的服务即可。
Nacos也有一套自己的配置中心,这套配置中心使用起来简单、方便,比Spring Cloud官方自己的配置中心好用很多。
Nacos的配置中心提供了可视化的界面操作、权限配置。
可视化界面
我们登录nacos的管理后台,进入配置管理
模块的配置列表
菜单,可以看到所有的配置参数,这些配置参数是分命名空间的,也就是说不同的项目可以使用不同的命名空间管理各自的配置数据。
也就是说在管理后台里面配置的参数,可以直接在nacos客户端上面使用。
可以点击右上角的加号新增配置信息,界面如下:
-
Data id是指配置集的id名称,看nacos官方文档的解释,这个配置通常用于组织划分系统的配置集,命名的格式通常采用java包的命名规则,保证全局唯一性,但这种命名规则不是强制的。也就是说我们可以给配置集取名例如:com.taobao.tc.refund.log.level。 -
Group是指分组,上一篇有说到,这个分组可以用于区分开发环境和线上环境。 -
配置内容则是将我们的配置参数的数据写在里面,如果配置格式选择的是什么样的,在配置内容里面就用什么样的格式编写。
返回配置管理
模块,进入历史版本
列表中,这里可以看到配置修改的历史记录。也可以将版本进行回滚。
还有一些其他好用的功能,这里不做详细讲解。
权限配置
nacos配置中心可以给nacos配置用户,设置用户的权限,用户归属的分组,从而达到区分项目用户,当然,如果一个nacos服务端只给一个项目使用,那么这个权限则可以用来配置项目的线上和线下区分。
下面来看看怎么配置权限。
首先我们在权限控制
模块里面可以看到三个菜单分别是:用户管理
、角色管理
、权限管理
。
用户管理
nacos服务端的用户配置,可以创建用户,也可以修改用户密码,如果这边修改了用户的密码,也就是说用户登录nacos服务密码变了,那么在项目的配置文件application.yml
里面也需要将以下两个参数进行修改:
spring:
cloud:
nacos:
discovery:
username: nacos
password: nacos
username
和password
默认都是nacos
,如果发生变化,这边需要修改,否则登录会报异常。
角色管理
新增角色,和用户绑定。在下面的权限管理
中,要给用户配置权限,需先新增角色。
权限管理
权限管理即是为命名空间配置权限的,同时新增角色,点击界面的添加权限按钮,进入配置界面如下图:
-
角色名可自行输入,用于在角色管理菜单中配置和用户进行绑定。 -
资源即是命名空间的列表,我们可以下拉看到如下图:
-
动作即是权限,可选的有:只读、只写、读写三种:
权限配置演示
-
为了演示,我们先创建两个新的命名空间: pro
和dev
-
回到权限控制,我们新建两个用户: test01
和test02
-
再到角色管理新建两个角色: test01_r
和test02_rw
,分别代表test01
用户只读权限,test02
用户读写权限,并分别绑定test01
和test02
用户:
-
在权限管理中,为新建的角色分配命名空间和权限,我们都将两个角色分配在了 dev
命名空间下:
-
启用权限认证功能。要想让配置有权限认证功能,首先需要启用权限认证功能,我们进入nacos安装的根目录,打开conf文件夹,使用编辑器打开 application.properties
文件,找到如下内容,将false
改为true
,默认是false
(注意:如果是集群,每个集群都得把这个配置打开),改成下方配置:
### If turn on auth system:
nacos.core.auth.enabled=true
-
重启nacos服务后,使用test01登录nacos后台,这个时候,我们再去访问除 dev
之外的其他命名,会提示没有权限,如下:
不止是无法访问其他命名空间的内容,因为test01是只读权限,在dev
命名空间下,也是不能够编辑配置内容的:
可以看到我们在dev命名空间下去新增一个配置集,提示授权失败。
我们用test02登录系统,因为是读写权限的,除了非dev
命名空间不能访问外,在dev
命名空间内可以新增、修改配置。这里不做演示。此外,在权限配置里面配置的权限,不单单在配置中心生效,在命名空间、服务列表都是生效的,都是只能读,服务列表也是只能看dev
下的服务,无法看到其他空间的服务,查看会提示授权失败。
上面就是我们使用nacos配置中心可视化操作和权限配置。下面我们进入nacos配置中心的使用。
总结
本章先简单介绍nacos配置中心,可视化操作,具体的代码环节放下一个章节演示,一个章节尽量不写太多,写的太多,大家看的也烦,学的也累。
每天学习一点技术,喜欢就关注我吧。