环境搭建 (docker)
拉取nacos镜像
docker pull nacos/nacos-server
创建nacos挂载文件
mkdir /data/nacos/conf
mkdir /data/nacos/data
mkdir /data/nacos/logs
启动nacos
启动一次nacos获取配置文件
docker run -d -p 8848:8848 --name nacos nacos/nacos-server
将nacos配置文件复制到指定数据卷(可选择手动创建配置文件)
docker cp nacos:/home/nacos/conf/ /data/nacos/
docker cp nacos:/home/nacos/logs/ /data/nacos/
docker cp nacos:/home/nacos/data/ /data/nacos/
删除nacos容器
docker rm -f nacos
生成nacos有效密钥(32位)
openssl rand -hex 32
将生成的密钥进行base64转码(https://www.toolhelper.cn/EncodeDecode/Base64)
导入nacos数据库
nacos默认端口为8848,需要将9848和9849也映射到宿主机,原理为程序端口加上偏移量1000和1001;
如果需要开启鉴权则需要配置
NACOS_AUTH_ENABLE:默认false,设置为true开启鉴权
NACOS_AUTH_IDENTITY_KEY :默认登录账号,nacos
NACOS_AUTH_IDENTITY_VALUE :默认登录密码,nacos
NACOS_AUTH_TOKEN:实现生成的nacos密钥(base64转码)
再次启动nacos容器
docker run -d --name nacos -p 8848:8848 -p 9848:9848 -p 9849:9849 -v /data/nacos/logs/:/home/nacos/logs -v /data/nacos/data/:/home/nacos/data -v /data/nacos/conf/:/home/nacos/conf --restart=always -e MODE=standalone -e MYSQL_SERVICE_USER=root -e MYSQL_SERVICE_PASSWORD=root -e MYSQL_SERVICE_DB_NAME=nacos -e MYSQL_SERVICE_HOST=mysql -e MYSQL_SERVICE_PORT=3306 -e SPRING_DATASOURCE_PLATFORM=mysql -e NACOS_AUTH_ENABLE=true -e NACOS_AUTH_IDENTITY_KEY=nacos -e NACOS_AUTH_IDENTITY_VALUE=nacos -e NACOS_AUTH_TOKEN=Y2QXNSKDWjYzZGVmMjZsdixjKzM5N2QwMjY4MmNmMGUxNGU1ODY0mISHJDUyMzY0ZmI4NjdjNzQ3MzY2MTllNQ== --network power-network --privileged=true -e JVM_XMS=128m -e JVM_XMX=128m -e JVM_XMN=64m nacos/nacos-server
服务注册
依赖管理
nacos discovery 用于注册服务
<!--nacos服务注册-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
服务配置
spring:
application:
name: power-server # 程序名称,绑定在nacos中的服务名
cloud:
nacos:
discovery:
namespace: power # nacos配置命名空间
server-addr: 117.72.66.229:8848 # nacos地址
username: nacos # nacos账号
password: nacos # nacos密码
配置中心
依赖管理
使用application配置,会在程序加载完后再读取,导致远程配置无效,使用bootstrap会在程序前读取配置内容
nacos-config 配置中心
<!--bootstrap-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
<!--nacos配置管理-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
服务配置
spring:
cloud:
nacos:
config:
server-addr: 117.72.66.229:8848 # nacos地址
username: power # nacos账号
password: power # nacos密码
file-extension: yaml # 配置文件后缀
shared-configs: # 共享文件配置
- data-id: power-config.yaml # nacos中配置文件的id,一定要加后缀,不然读取不到
- data-id: power-redis.yaml
namespace: power # 配置文件空间
profiles:
active: dev # 配置文件读取
评论区