目录
一,持久化
Nacos在默认的情况下是不会开启持久化的,为了保证数据可持久化的保存,需要使用外部的数据库MySQL。可以使用MySQ来保证数据在集群的情况下保持统一和持久。
- 切换数据库:修改conf/application.properties文件,增加支持mysql数据源配置(目前只支持mysql,版本要求:5.6.5+)
# vim /usr/local/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://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
- 建库建表 把图中选中的文件复制,在MySQL中的nacos库中运行,得到对应的表


- 测试 重启Nacos,上传配置问件,观察是否有配置文件持久化到MySQL。
二,Nacos集群搭建
1.找到cluster.conf.example 复制一份并改名cluster.conf(防止文件配置错误,所以选择复制出一份) 
cd /usr/local/nacos/conf
cp cluster.conf.example cluster.conf
#it is ip
#example
192.168.145.131:8848
192.168.145.131:8849
192.168.145.131:8850# 将cluster.conf中的内容修改成你的地址。
2.复制出3台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
3.将 复制的Nacos中的conf/application.properties 的端口号分别改为
server.port=8848
server.port=8849
server.port=8850
三,配置代理服务
1,nginx的安装
- 安装nginx的依赖库
yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
- 下载nginx
wget -c https://nginx.org/download/nginx-1.12.0.tar.gz
- 解压安装包
tar -zxvf nginx-1.12.0.tar.gz
- 配置nginx安装包(注意:./configure配置nginx安装到/usr/java/nginx目录下)
cd nginx-1.12.0
./configure --prefix=/usr/local/nginx
- 编译并安装
make && make install
2,配置Nacos的代理nginx
修改nginx.conf文件
upstream nacosList{
server 192.168.145.131:8848;
server 192.168.145.131:8849;
server 192.168.145.131:8850;
}server {
listen 80;
server_name localhost;
location / {
proxy_pass http://nacosList;
}
}
3,测试
(1)启动集群:
[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)启动代理:
[root@localhost nginx]# cd /usr/local/nginx/sbin/
[root@localhost sbin]# ./nginx
(3)把服务注册到Nacos
spring:
cloud:
nacos:
discovery:
server-addr: 192.168.145.131:8848
group: DEFAULT_GROUP
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://192.168.145.128:3306/health?characterEncoding=UTF-8
username: root
password: 1111
type: com.alibaba.druid.pool.DruidDataSource
application:
name: nacos-consumer

为什么集群要用三个?
在集群中要有一个“老大”来实现数据的同步,采用投票的算法取决谁是老大,采用三台Nacos几乎不会出错。

当在运行的时候,“老大死亡”,会重新选出老大,如果原来老大的Nacos重启,则会成为附属Nacos。


四,补充
1,监听查询
修改配置文件后nacos监听到MD5有变化则推送消息给客户端,客户端收到消息后会拉取最新配置(参考配置管理->监听查询菜单)

当我们修改配置文件的信息后MD5的信息发生改变


客户端收到消息后会拉取最新配置
本文详细介绍了如何配置Nacos集群以实现数据持久化,并通过MySQL作为数据源。此外,还讲述了如何搭建Nacos集群,包括修改端口号、配置集群文件以及启动多个实例。同时,文章还涉及了通过nginx作为代理服务来负载均衡Nacos集群的步骤,确保高可用性。
966

被折叠的 条评论
为什么被折叠?



