用途:动态管理配置服务,将需要经常更改的yml配置文件托管到nacous,下次需要更改的时候就可以直接在nacos里更改,不用重启项目
快速集成
下载地址: Releases · alibaba/nacos · GitHub
本人用的2.0.3版本
安装类型
本地windows启动nacos
下载后解压,,进入bin目录更改配置文件,默认启动的是集群模式,这里我先改为单机模式。把cluster改为standalone
双击启动startup.cmd
访问:http://localhost:8848/nacos/ 默认用户名和密码都是nacos
docker安装nacos
- 使用docker安装nacos:
docker pull nacos/nacos-server:2.0.3
② 启动容器(配置8848端口为nacos端口):
docker run --name mynacos -e MODE=standalone -p 8848:8848 -d nacos/nacos-server:2.0.3
③ 查看是否启动成功:
docker ps
以下代表启动成功:
④启动nacos:
docker exec -it 76c9be91653a /bin/bash //其中76c9be91653a 为nacos的containerID
没有关闭防火墙的可以选择性关闭防火墙:
systemctl stop firewalld
启动成功后,就可以在浏览器访问nacos了:
地址: [服务器ip]:8848/nacos
账号和密码都是nacos
集成到springboot项目里
1,引入依赖
引入依赖(注意springcloud和springboot的版本需要对应)
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> <version>2.2.2.RELEASE</version> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <version>2.2.2.RELEASE</version> </dependency> // <spring-boot.version>2.3.4.RELEASE</spring-boot.version> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.4.RELEASE</version> </dependency>
2,新建bootstrap.yml
yml配置: 新建bootstrap.yml(需要将旧的application.yml文件里面的配置移动到这个bootstrap.yml里,然后删除application.yml)
spring: application: name: demo profiles: active: dev cloud: nacos: username: nacos password: nacos server-addr: 127.0.0.1:8848 #nacos服务地址 discovery: namespace: 26d106c5-8c76-47a0-8c77-b58316892a91 config: namespace: 26d106c5-8c76-47a0-8c77-b58316892a91 #我们在nacos中创建的空间名称 timeout: 3000 refresh-enabled: true #修改后自动加载 group: dev #nacos配置文件所选择的group prefix: ${spring.application.name} file-extension: yaml #读取nacos配置文件后缀
3,添加注解
1,启动类注解
启动类增加注解@EnableDiscoveryClient
@SpringBootApplication @EnableDiscoveryClient //<------添加到这里 public class NacosApplication { public static void main(String[] args) { SpringApplication.run(NacosApplication.class,args); System.err.println("启动成功"); } }
2,测试类注解
3,控制台添加配置文件
1,新建命名空间
在命名空间里点击新建命名空间
输入命名空间和描述(id会自动生成)
2,在命名空间里新建配置
点击配置列表
点击上面的sso,这个是刚才创建好的命名空间
在这个命名空间里点击新建配置
上面那个username就是获取的这里的name:zhangsan
然后我们启动我们的项目,发现与nacos通信成功,,并且所用的端口是我们在nacos中配置的port
注意!!
DataID这里的这个demo是指bootstrap.yml里的application:name:demo
---------------------------------------------------------------------------------------------------------------------
而这里圈上的这个dev是指active: dev
-----------------------------------------------------------------------------------------------
下面这个Group:dev是指cloud下的config:group:dev
-----------------------------------------------------------------------------------------------------------
还有要注意namespace这个是填写命名空间的id