一.nacos的配置隔离
对于Nacos配置管理,通过Namespace、Group、Data ID能够定位到一个配置集
Namespace:代表不同环境的配置隔离
Group:分组,代表某些项目
Data ID:每个项目下的工程模块
1.namespace隔离
1.1新建两个namespace命名为dev和test
1.2克隆配置文件
点击克隆按钮,选择要克隆的配置文件到指定的命名空间中
1.3读取配置文件
spring:
cloud:
nacos:
config:
server-addr: 192.168.137.114:8848 #注册中心的地址#配置文件的前缀
prefix: nacos-config #配置文件的前缀,默认是spring.application.name
file-extension: yaml #配置文件的后缀,默认是properties
namespace: dev
#Data ID的语法:${spring.cloud.nacos.config.prefix}.${spring.cloud.nacos.config.file-extension}
2.group隔离
2.1新建一个config配置不同分组
2.2不同的分组下可以有相同的dataid配置
2.3读取配置文件
spring:
cloud:
nacos:
config:
server-addr: 192.168.137.114:8848 #注册中心的地址#配置文件的前缀
prefix: nacos-config #配置文件的前缀,默认是spring.application.name
file-extension: yaml #配置文件的后缀,默认是properties
namespace: test
group: NACOS_GROUP
#Data ID的语法:${spring.cloud.nacos.config.prefix}.${spring.cloud.nacos.config.file-extension}
二.服务隔离
两个服务选择不同的namespace和group就不可进行数据的交互,如若交互,必须配置相同的namespace和group
server:
port: 80
spring:
cloud:
nacos:
discovery:
server-addr: 192.168.137.114:8848 # nacos的注册中心地址
namespace: test
group: nacos_group
application:
name: nacos-consumer # 注册到nacos的服务名字
三.nacos的持久化
1.数据的持久化
1.1切换数据库
修改conf/application.properties文件,增加支持mysql数据源配置(目前为止只支持mysql)
集群模式下会导致每台服务器的配置都不一样
### If use MySQL as datasource:
spring.datasource.platform=mysql
### Count of DB:
db.num=1
### Connect URL of DB:
db.url.0=jdbc:mysql://192.168.31.19:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=1111
1.2建立数据库数据表
建立nacos数据库
找到conf/nacos-mysql.sql并且执行
1.3测试
启动mysql
启动nacos
新建配置文件,观察nacos是否把配置信息存储到mysql中
四.nacos的集群
1.节点规划
192.168.137.114 | 8848 |
192.168.137.114 | 8849 |
192.168.137.114 | 8850 |
2.集群搭建
2.1找到conf/cluser.conf.example,将其改名为conf/cluster.conf,并将内容修改为
# ip:port
192.168.209.129:8848
192.168.209.129:8849
192.168.209.129:8850
2.2复制三份nacos
[root@localhost bin]# cd /usr/local
[root@localhost java]# mkdir nacos_cluster
[root@localhost java]# cp -r nacos nacos_cluster/nacos_8848
[root@localhost java]# cp -r nacos nacos_cluster/nacos_8849
[root@localhost java]# cp -r nacos nacos_cluster/nacos_8850
2.3将conf/application.properties中的端口号分别改为
server.port=8848
server.port=8849
server.port=8850
3.配置nginx代理服务器
3.1安装nginx的依赖库
yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
3.2下载nginx
wget -c https://nginx.org/download/nginx-1.12.0.tar.gz
3.3解压安装包
tar -zxvf nginx-1.12.0.tar.gz
3.4配置nginx安装包
cd nginx-1.12.0
./configure --prefix=/usr/local/nginx
3.5编译并且安装
make && make install
3.6配置nginx代理nacos
upstream nacos {
server 192.168.209.129:8848;
server 192.168.209.129:8849;
server 192.168.209.129:8850;
}
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://nacos;
}
}
五.测试
1.启动nacos集群
⚠️要将虚拟机内存设置足够,否则会导致服务启动失败
[root@localhost upload]# cd /usr/local/nacos_cluster/nacos_8848/bin
[root@localhost bin]# ./startup.sh
[root@localhost bin]# cd /usr/local/nacos_cluster/nacos_8849/bin
[root@localhost bin]# ./startup.sh
[root@localhost bin]# cd /usr/local/nacos_cluster/nacos_8850/bin
[root@localhost bin]# ./startup.sh
2.启动nginx
[root@localhost nginx]# cd /usr/local/nginx/sbin/
[root@localhost sbin]# ./nginx
3.将微服务注册到nacos集群
启动nacos-config服务,并通过nginx访问nacos集群:
http://192.168.137.114/nacos
六.开机自启动
1.添加nacos.service文件
vim /lib/systemd/system/nacos.service
nacos开机自启动文件配置如下
[Unit]
Description=nacos
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nacos/bin/startup.sh -m standalone
ExecReload=/usr/local/nacos/bin/shutdown.sh
ExecStop=/usr/local/nacos/bin/shutdown.sh
PrivateTmp=true
[Install]
WantedBy=multi-user.target
2.修改nacos的startup.sh
修改JAVA_HOME路径并注销之后的3行配置
[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/local/jdk1.8.0_191
#[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/java
#[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/opt/taobao/java
#[ ! -e "$JAVA_HOME/bin/java" ] && unset JAVA_HOME
3.设置开机自启动
systemctl daemon-reload #重新加载服务配置
systemctl enable nacos.service #设置为开机启动
systemctl start nacos.service #启动nacos服务
systemctl stop nacos.service #停止nacos服务