测试环境:window10+jdk11+Nacos 2.1.1+springboot2.6.13+Spring Cloud2021.0.4+Spring Cloud Alibaba2021.0.4.0
作用:注册中心+配置中心
1.文档、资源
nacos文档:
https://nacos.io/zh-cn/docs/what-is-nacos.html
nacos下载:
https://github.com/alibaba/nacos/releases
Spring Cloud Alibaba中文文档:
https://github.com/alibaba/spring-cloud-alibaba/blob/2021.x/README-zh.md
Spring Boot、Spring Cloud、Spring Cloud Alibaba版本对应关系:
https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E
官方示例中文文档:
每个示例中的readme-zh.md即中文文档
Nacos 2.1.1资源:
链接: https://pan.baidu.com/s/1h2xCEmZwtqUkHsd0j-vFkA
提取码:1111
jdk11+springboot2.6.13+Spring Cloud2021.0.4+Spring Cloud Alibaba2021.0.4.0+Nacos客户端:
链接: https://pan.baidu.com/s/1bpvafkEYfCLMeVCkCNJjhA
提取码:1111
2.安装、启动
windows环境下载压缩包、解压
cmd到bin目录下运行startup
单节点运行:
startup.cmd -m standalone
集群方式运行:
startup.cmd(1.4.1版本开始该脚本默认是以集群方式运行,以集群方式运行必须数据持久化到MySQL)
数据持久化到MySQL
修改nacos的conf目录下的application.properties
### If use MySQL as datasource:
spring.datasource.platform=mysql
### Count of DB:
db.num=1
### Connect URL of DB:
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=数据库密码
将nacos的conf目录下的nacos-mysql.sql导入上面配置的数据库中
3.集群搭建
数据持久化到MySQL
将所有nacos节点的conf目录下的cluster.conf.example文件拷贝一份并重命名为cluster.conf,然后在里面配置上所有集群节点的地址
#2022-10-15T18:38:29.179
# 所有nacos服务地址,包括自己
192.168.88.1:8848
重新启动所有的nacos节点(1.4.1之前的版本不包括1.4.1启动脚本默认单机运行,需加-m cluster参数)
访问任意节点可查看集群状态
4.注册中心
jdk版本:
建springboot项目:
加入Spring Cloud、Spring Cloud Alibaba依赖
加注册中心依赖:
修改配置文件:
# 应用名称
spring.application.name=nai1
# 应用服务 WEB 访问端口
server.port=4001
#nacos地址
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
启动项目后应在服务管理中可见
5.配置中心
加配置中心依赖:
增加依赖,用于加载bootstrap(否则springcloud config报错No spring.config.import set):
将application.properties改为bootstrap.properties增加用于测试:
jeecg.path.upload=path
增加Controller用于测试
@RestController
@RequestMapping("/nai1")
@RefreshScope
public class Nai1Controller {
@Value("${jeecg.path.upload}")
private String upLoadPath;
@RequestMapping(value = "/uploadPath")
public String uploadPath() {
return upLoadPath;
}
}
在nacos配置列表增加配置文件:
Data ID:nai1.properties
Group:DEFAULT_GROUP
配置格式:Properties
配置内容:jeecg.path.upload=path2
发布
启动项目,访问http://localhost:4001/nai1/uploadPath,显示结果“path2”,配置文件获取成功