nacos的使用

lbc0612 / 2023-05-27 / 原文

nacos的使用

1. nacos可以作为注册中心和配置中心

  使用nacos的配置中心和注册中心的话,我们需要在配置文件中增加关于nacos的配置

  namespace,group可以不写,那么就是注册到默认的namespace和group下,不同namespace和group下是隔离开来的

  

 

2. 如果我们只是想要注册到nacos上的话,我们只需要导入nacos的注册中心依赖,以及nacos的负载均衡器依赖即可,然后配置文件中我们只需要添加关于nacos注册中心的配置即可

  启动类上还需要添加nacos的注解:@EnableDiscoveryClient

  如果我们想使用nacos的配置中心的话,我们需要导入nacos配置中心的依赖包,以及优先加载bootstrap文件的依赖包(bootstrap.yml:启动配置文件)

  

  

3. 将服务启动的时候,通过nacos页面直接查看服务列表,那么该服务就会回显到服务列表中

4. 在nacos上还有group和namespace的概念,比如,我们可以通过不同的namespace放置不同的项目,我们可以通过namespace下的group组的概念,将不同的开发幻境的配置放置到不同的组下

5. 关于springcloud中配置文件的加载顺序:启动先加载bootstrap.yml,然后再加载application.yml文件,最后根据匹配到的数据去配置中心读取所指向的配置

    关于springboot中配置文件的加载顺序:先加载application,然后根据application指定的环境加载application-环境的配置文件

6. 在bootstrap.yml文件中添加配置下图配置信息,关于一些普通配置,比如数据库库连接池的配置或者一些redis的配置,我们可以放置到nacos配置中上去

  

 7. nacos关于配置文件的命令是有一定的规范的:${prefix}-${spring.profile.active}-${file-extension}

  prefix:一般默认就是当前服务的服务名称,spring.profile.active:就是我们的application.yml中指定的,是开发环境还是生产环境  file-extension:就是当前文件的格式,目前只支持properties和yml        

  nacos首先通过我们bootstrap.yml中spring.application.name的值拼接applictation.yml的环境(dev),然后拼接我们bootstrap.yml中nacos.config.file-extension的值(yml)然后找到nacos上的配置文件的

 8. 如果你想要读取配置文件中的某些信息,可以在指定需要这些信息的类中,通过@Value("${dk.upload.image}")就可以拿到相应的值

 9. 关于nacos自动刷新配置:如果你不想要每次在nacox配置文件上更改,都要重启对应的服务,那么可以在这个服务上面添加@RefreshScope //自动刷新配置注解

所以,在我们平时的开发中,我们可以将不同的项目在nacos上创建对应的namespace,然后根据该项目下不同的部门配置不同的group,再针对于不同的开发环境我们可以指定配置不同环境下的配置信息,不同的项目之间的namespace不同且group不同,可以互相隔离,方便我们平时对项目的管理,另一点就是我们nacos配置中心上的配置信息我们修改了可以不停止项目,通过在启动类上添加注解@RefreshScopr,就可以自动刷新配置  

 10. nacos是自带持久化功能的,在nacos的安装文件夹下有一个derby-data文件,这是nacos自带的数据库,保存我们nacos的数据,但是对于我们nacos如果做集群的话,每个nacos中都有其自身的数据库,那么我们对应nacos上只会保留其自己的数据,我们没有办法做数据共享了,所以我们集群的数据我们需要使用同一份数据源,那么我们需要使用自己的mysql来作为数据源了

我们在搭建nacos的时候数据源一定要提前切换好,如果是单机的话基本没啥影响,如果我们是搭建集群的话,需要提前切换我们mysql的数据源