2023-01-17
班门弄斧
00
请注意,本文编写于 676 天前,最后修改于 321 天前,其中某些信息可能已经过时。

目录

简介
一、Nacos页面
命名空间(namespace)
新增后检查
Nacos用户相关配置
创建用户
创建角色
权限管理
二、Nacos作为注册中心使用
创建项目
启动项目
三、Nacos作为配置中心使用
配置管理
新增配置文件
注意
配置导出
配置导入
配置引用
引用配置
项目启动日志

简介

  • 本文是从我的CSDN迁移过来,不是抄袭哦!CSDN原文
  • 注意:本文是建立在Nacos安装成功的基础上讲解。建议安装Nacos后,对照系统页面学习此文章。
  • 1、本文采取Nacos 2.0.3单例形式、服务单例形式来讲解,不涉及集群相关特定知识点。
  • 2、本文分为三部分来讲解Nacos的基本使用:
    • 一、Nacos页面;
    • 二、Nacos作为注册中心使用;
    • 三、Nacos作为配置中心使用。
  • 3、如有错误,请务必指出,感谢!

一、Nacos页面

  • 主要讲解Nacos的一些通用性配置,如用户、角色配置等。

命名空间(namespace)

  • 【重要】:Nacos所有配置的最顶层分组,项目中需要用到该字段值。
  • 默认的namespacepublic在这里插入图片描述
  • 命名空间ID:可以不填,会自动生成一个不规则值,也可以自定义,不能重复。
  • 命名空间名:自定义一个名称,帮助识别分组。
  • 描述:字面意思

新增后检查

在这里插入图片描述

  • 命名空间新增后,随便点点页面,你会在很多地方可以找到该分组,如上图【配置管理】--【配置列表】中。

Nacos用户相关配置

创建用户

在这里插入图片描述

  • 上图为Nacos系统页面,启动Nacos成功后,访问Nacos页面,默认的登录用户账号密码都是nacos
  • 进入页面后,找到【权限控制】--【用户列表】,在该页面可以创建用户,只需要输入账号和密码即可创建。

创建角色

在这里插入图片描述

  • 如图进入【权限控制】–【角色管理】,点击绑定角色弹出图中窗口,可以自定义一个新的角色名,也可以填已经存在的角色名,用户名必须是已存在的用户。
  • 注意:之所以说可以自定义一个新的角色名,也可以填已经存在的角色名的,因为这里即可以视为角色和用户的关系维护,也可以视为新增角色。
  • 一般我们对角色、用户的理解可能是:先有用户和角色,再给用户指定相应的角色。但是在这里不太一样,可以理解为角色创建时,即绑定了用户:必须先有用户,创建角色时,必须指定一个已存在的用户。

权限管理

在这里插入图片描述

  • 如图进入【权限控制】–【权限管理】,即角色权限的维护页面。
  • 角色名:已存在的一个角色名
  • 资源:命名空间(namespace)
  • 动作:只读、只写、读写

二、Nacos作为注册中心使用

创建项目

  1. 创建一个普通的SpringCloud项目,引入如下Nacos的maven依赖:
xml
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency>
  1. 项目中创建bootstrap.yml配置文件,添加如下Yml配置:
yml
spring: cloud: nacos: # 【注册中心】相关配置 discovery: # 命名空间(大分组) namespace: cjbgd_nacos # 分组名称,默认为【DEFAULT_GROUP】 group: CJBGD_DEV # 注册中心地址 server-addr: localhost:8848
  1. 启动类上增加注解:@EnableDiscoveryClient

启动项目

  • 项目启动成功后,可以到Nacos页面中看到如下图的结果 在这里插入图片描述

三、Nacos作为配置中心使用

  • nacos作为配置中心,主要分两部分:1、配置管理;2、配置引用。
  • 配置管理:使用Nacos页面管理配置文件。
  • 配置引用:在项目中引用想要的配置。

配置管理

新增配置文件

  • Nacos作为配置中心,必须先在Nacos管理页面新增一些配置。
  1. 在【配置管理】--【配置列表】页面中,点击右侧加号,进入配置新增页面 在这里插入图片描述 在这里插入图片描述
  2. 在新增页面中填写相应信息。
    • Data ID:配置文件名。【如果在引用时,想要某个项目缺省式的引用到该配置文件,Data ID应该与服务的spring.application.name保持一致】
    • Group:配置分组,默认为DEFAULT_GROUP
    • 描述:描述
    • 配置格式:按需选择,现在一般都用yaml,即yml
    • 配置内容:配置内容
  3. 填写示例 在这里插入图片描述
注意
  • Nacos配置新增保存成功后,新增页面不会自动关闭,只会弹出成功提示框。即这个新增页面不会主动关闭,而且不会清空已填写的内容,会一直开着,直到你手动返回。
  • 如果你以为你新增失败了,再次点击保存,会弹出已存在同名配置的错误提示。
  • 且新增页面只能用来新增配置,新增后想要修改必须返回列表,点击对应配置后边的【编辑】按钮。
  • 这是个使用习惯的问题,对我来说刚使用的时候不是很友好,用多了也就无所谓了。

配置导出

  • 在微服务时代,微服务越多吗,配置文件也就越多,在开发环境、正式环境中,总不能每次改动都是都在Nacos的编辑页面修改配置吧,所以配置导入导出就很有必要。 在这里插入图片描述
  • 如上图,主要就是两种选择:
    • 导出查询结果:根据查询条件,把查出的所有配置一起导出。
    • 导出选中的配置:导出选中的配置。
  • 至于有个【新版】,我猜测是分页数据导出的优化?由于我的配置文件较少,没有做测试,有想法的可以试试。
  • 导出的是一个zip压缩包,打开可以看到导出文件如下图: 在这里插入图片描述 在这里插入图片描述

配置导入

  • 细心地同学看导出文件时候,会发现没有导出命名空间(namespace)的信息,这也意味着,导出的配置可以导入到任意的命名空间中,导入前点到想要导入的命名空间即可。
  • 如下图,先进入cjbgd_nacos的命名空间中,再点击【导入配置】,弹出的窗口会自动显示导入的空间信息,且不能更改。
  • 上传的文件,直接选中导出的压缩包即可。 在这里插入图片描述

配置引用

引用配置

  • 项目中想用配置中心,还要写相应配置,告诉项目我要用哪个配置中心、哪个配置文件。【没有希洛克打啥希洛克!?没有奥兹玛打啥奥兹玛!?突然感觉有点道理。。。】
  • 配置示例:
yml
spring: cloud: nacos: # 【配置中心】相关配置 config: # 命名空间(大分组) namespace: cjbgd_nacos # 配置中心地址 server-addr: 127.0.0.1:8848 # 配置文件的data-id,默认使用服务名(spring.application.name) #name: gateway.yaml # 配置文件类型:test/json/xml/yaml/properties file-extension: yaml # 分组名称,默认为【DEFAULT_GROUP】 group: CJBGD_PRO # 自动刷新配置,默认为true refresh-enabled: true # 共享配置引用 shared-configs: # 配置ID - data-id: shared-datasource-dbcp2-pro.yaml # 配置组名称,默认为【DEFAULT_GROUP】 group: SHARED_PRO refresh: true - data-id: shared-redis-pro.yaml group: SHARED_PRO refresh: true - data-id: shared-info-pro.yaml group: SHARED_PRO refresh: true
  • 上边我把我用到的所有配置全部贴出来了,注释也都写的很明白,不做太细的讲解,只说几个个人理解:
  1. config.name:应该填写配置中心中对应配置的data-id,可以缺省,缺省时默认使用本服务的spring.application.name的值。
  2. config.file-extension:配置文件拓展名,会自动和config.name组合,用.拼接为一个data-id到配置中心查找配置。
  3. config.shared-configs:声明引用哪些公共的配置。下边可以显式引用多个配置中心的配置文件。
  4. group:默认值为DEFAULT_GROUP,当配置文件较多时,建议自定义一些group,对配置文件进行分组管理,使用起来也更加清晰明了。

项目启动日志

shell
2022-04-12 11:54:14.224 INFO 65808 --- [ main] c.a.n.client.config.impl.ClientWorker : [fixed-localhost_8848-cjbgd_nacos] [subscribe] gateway+CJBGD_DEV+cjbgd_nacos 2022-04-12 11:54:14.224 INFO 65808 --- [ main] c.a.nacos.client.config.impl.CacheData : [fixed-localhost_8848-cjbgd_nacos] [add-listener] ok, tenant=cjbgd_nacos, dataId=gateway, group=CJBGD_DEV, cnt=1 2022-04-12 11:54:14.225 INFO 65808 --- [ main] c.a.n.client.config.impl.ClientWorker : [fixed-localhost_8848-cjbgd_nacos] [subscribe] gateway.yaml+CJBGD_DEV+cjbgd_nacos 2022-04-12 11:54:14.225 INFO 65808 --- [ main] c.a.nacos.client.config.impl.CacheData : [fixed-localhost_8848-cjbgd_nacos] [add-listener] ok, tenant=cjbgd_nacos, dataId=gateway.yaml, group=CJBGD_DEV, cnt=1 2022-04-12 11:54:14.225 INFO 65808 --- [ main] c.a.n.client.config.impl.ClientWorker : [fixed-localhost_8848-cjbgd_nacos] [subscribe] gateway-dev.yaml+CJBGD_DEV+cjbgd_nacos 2022-04-12 11:54:14.225 INFO 65808 --- [ main] c.a.nacos.client.config.impl.CacheData : [fixed-localhost_8848-cjbgd_nacos] [add-listener] ok, tenant=cjbgd_nacos, dataId=gateway-dev.yaml, group=CJBGD_DEV, cnt=1
  • debug模式启动项目,观察启动日志会发现上面的日志,可以看到他在从配置中心加载哪些配置。
  • 但是没有发现shared-configs引用的相关日志,可能开发者任务缺省的形式才有必要打印日志,而shared-configs都是显式的将各种信息填写到配置文件中了,所以没必要打印日志。
如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:DingDangDog

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!