目录
前言
最近在做nacos配置中心的功能,之前公司只用了注册中心,在这里做下总结。
一、单体部署
docker run -itd --name 容器名称 \
--network=定义网络 \
--ip 定义网络IP \
-p 7848:7848 \
-p 8848:8848 \
-p 9848:9848 \
-p 9849:9849 \
--restart=always \
-e TZ=Asia/Shanghai \
-e PREFER_HOST_MODE=本机IP \
-e NACOS_SERVER_IP=本机IP \
-e MODE=standalone \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=数据库网络IP\
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_DB_NAME=nacos数据库名称 \
-e MYSQL_SERVICE_USER=数据库用户 \
-e MYSQL_SERVICE_PASSWORD=数据库密码 \
nacos/nacos-server:v2.2.0
二、集群部署
2.1、启动服务
集群应该最少3台机器
docker run -itd --name 容器名称 \
--network=定义网络 \
--ip 定义网络IP \
-p 7848:7848 \
-p 8848:8848 \
-p 9848:9848 \
-p 9849:9849 \
--restart=always \
-e TZ=Asia/Shanghai \
-e PREFER_HOST_MODE=本机IP \
-e NACOS_SERVER_IP=本机IP \
-e MODE=cluster \
-e NACOS_SERVERS="集群所有主机:端口空格分隔" \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=数据库网络IP\
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_DB_NAME=nacos数据库名称 \
-e MYSQL_SERVICE_USER=数据库用户 \
-e MYSQL_SERVICE_PASSWORD=数据库密码 \
nacos/nacos-server:v2.2.0
2.2、使用nginx实现负载
1、启动nginx容器
docker run -itd --name nacos-nginx \
--network=定义网络 --ip 定义网络IP -p 10010:80 \
-v /usr/local/nacos-nginx/conf.d:/etc/nginx/conf.d \
-v /usr/local/nacos-nginx/html:/etc/nginx/html \
-v /usr/local/nacos-nginx/log:/usr/log/nginx \
nginx
2、修改nginx配置文件
cd /usr/local/nacos-nginx/conf.d
vim defalut.conf
填写以下内容:
upstream nacosList {
server 结点1IP:端口 weight=1;
server 结点2IP:端口 weight=1;
server 结点3IP:端口 weight=1;
}
server {
listen 80;
server_name localhost;
location / {
root /etc/nginx/html/;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location /nacos {
proxy_pass http://nacosList/nacos;
}
}
3、重启容器
docker restart nacos-nginx
三、配置
导入数据库略,默认账号密码为nacos/nacos
3.1、设置鉴权
修改/usr/local/nacos/conf/application.properties
1.开启鉴权
修改 nacos.core.auth.enabled 为true
nacos.core.auth.enabled=true
2.自定义秘钥
nacos.core.auth.plugin.nacos.token.secret.key=VGhpc0lzTXlDdXN0b21TZWNyZXRLZXkwMTIzNDU2Nzg=
3.开启服务身份识别功能-可选
服务间通信
nacos.core.auth.server.identity.key=example
nacos.core.auth.server.identity.value=example
所有集群均需要配置相同的server.identity信息
重启nacos
docker restart nacos容器名称
3.2、配置中心使用详解
1、添加依赖
<!--nacos配置管理依赖-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
2、删除application.yml ,添加bootstrap.yml
注意:配置文件=prefix-active.file-extension 区分大小写
spring:
profiles:
active: dev
cloud:
nacos:
#配置中心
config:
server-addr: nacosIP:端口
username: 账号
password: 密码
#前缀名称
prefix: 配置文件前缀
file-extension: yaml # 文件后缀名
3、动态刷新配置
配置动态刷新
配置类上加
@RefreshScope
配置@bean上加
@Primary
@RefreshScope
@Primary注解表示spring会优先IOC此DataSource,使得spring容器能够优先托管自定义的DataSource注入。
Nacos配置自动刷新机制不支持动态刷新静态化配置,即配置项的值在启动时已经确定且不可更改。
例如
spring.application.name
server.port
总结
本文归纳总结了docker安装nacos以及设置密码和配置中心的使用,希望对你有所帮助。