SpringCloud-2.0-周阳(20.Nacos 集群和持久化配置)
Posted ABin-阿斌
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringCloud-2.0-周阳(20.Nacos 集群和持久化配置)相关的知识,希望对你有一定的参考价值。
- 声明:原文作者:csdn:yuan_404
文章目录
1 . 概述
1.1 集群架构图
-
集群架构图
-
对上图的理解
1.2 数据存储
-
当我们重启 Nacos 后发现,之前配置的信息还都存在。
-
其实 Nacos 默认使用嵌入式数据库(derby)实现数据的存储。
-
所以,如果启动多个默认配置下的 Nacos 节点,数据存储是存在一致性问题的。
-
为了解决这个问题,Nacos 采用了集中式存储的方式来支持集群化部署,目前只支持 MySQL 的存储。
-
配置过后,再启动 Nacos 所有数据都会写入 mysql 中
2 . Nacos 持久化配置
2.1 说明
- Nacos默认自带的是嵌入式数据库derby
- 查看源码 POM 文件
2.2 切换为 MySql
-
在本地 Nacos 的目录 —— \\ nacos \\ conf 下找到sql脚本
nacos-mysql.sql
-
使用 MySql 执行该脚本
-
在本地 Nacos 的目录 —— \\ nacos \\ conf 下找到 application.properties
-
按照官网要求对该文件进行修改
添加上如下代码(数据库的用户名、密码信息写自己的)
########## 修改 Nacos 数据库 ########## spring.datasource.platform=mysql db.num=1 db.url.0=jdbc:mysql://localhost:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true db.user=root db.password=123456
说明 :这里的 MYSQL 必须为 5.7 版本
如果一定要配置 MYSQL 8.0 可以参考 :https://blog.csdn.net/qq_40885085/article/details/107366137 -
重启 Nacos
3 . Linux 版 Nacos+MySQL 生产环境配置
- 目标 :搭建 1个nginx 、3个Nacos、1个Mysql
- 因为这里的重点是 Nacos 的使用,所以其他两个就不演示集群了
3.1 Linux 配置 Nacos
- 官网说明
-
去官网下载 Nacos Linux 版本
Github 下载地址 :https://github.com/alibaba/nacos/releases/tag/1.1.4
-
打开 Linux,并将下载的文件传到 /opt 目录下
-
解压该文件
tar -zxvf nacos-server-1.1.4.tar.gz
-
进入解压后的文件夹
3.2 集群配置
1 . Linux 上 Mysql 数据库配置
-
利用 Navicat for Mysql 连接 Linux 服务器上的 Mysql
-
运行 Nacos 中 nacos-mysql.sql 脚本
2 . application.properties配置
-
进入 nacos/conf
-
先复制一份备份
cp application.properties application.properties.bk
-
编辑 application.propertie
vim application.propertie
########## 修改 Nacos 数据库 ########## spring.datasource.platform=mysql db.num=1 db.url.0=jdbc:mysql://localhost:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true db.user=root db.password=123456
-
保存退出
3 . nacos的集群配置
- 这里需要配 3 台 Nacos
- 修改配置文件 cluster.conf
-
进入 nacos/conf
-
复制出一,并命名为 :cluster.conf
cp cluster.conf.example cluster.conf
-
查看本机的 IP
hostname -i
-
编写 cluster.conf
前缀 IP 必须为上一步查到的 IP 地址
-
保存退出
4 . 编辑Nacos的启动脚本startup.sh
- 之前在 Windows 中单机版本的 Nacos 直接使用 startup.cmd 就可以启动,并端口号为 8848
- 但是上一步,我们配置了三台 Nacos,使用 startup.sh 脚本,不知道启动的是哪一台,所以需要配置指明
-
进入 nacos/bin
-
复制一份 startup.sh
cp startup.sh startup.sh.bk
-
编辑 startup.sh
第一处:
第二处 :
-
保存退出
5 . 配置 Nginx 作为负载均衡器
-
进入 /usr/local/nginx/conf
-
复制 nginx.conf 备份
cp nginx.conf nginx.conf.bk
-
编辑 nginx.conf
vim nginx.conf
# 配置 Nacos 集群 upstream cluster server 127.0.0.1:3333; server 127.0.0.1:4444; server 127.0.0.1:5555;
proxy_pass http://cluster;
-
保存退出
-
进入 /usr/local/nginx/sbin/ 目录
cd /usr/local/nginx/sbin/
6 . 启动集群
-
使用刚刚修改的配置文件启动 Nginx
./nginx -c /usr/local/nginx/conf/nginx.conf
-
进入 Nacos 的 bin 目录
-
启动 Nacos 集群
启动 3333、4444、5555
-
查看 Nacos 的启动情况
查看所有 Nacos 进程的具体情况
ps -ef|grep nacos
统计 Nacos 进程的数量
ps -ef|grep nacos|grep -v grep | wc -l
-
查看 Nginx 的状态,以确定开启
ps -ef|grep nginx
-
关闭防火墙
systemctl stop firewalld
-
查看防火墙状态确保关闭
systemctl status firewalld
7 . 测试环境是否搭建成功
-
网页访问 Nacos (Linux、Windows 都可)
-
新建配置
-
查看 Linux 数据库
- 我这里使用 Navicat 连接了 Linux 数据库,直接查看
- 也可以用命令行
8 . 与项目整合
- 将微服务 alibaba-nacos-provider-payment-9001 启动、注册进 Nacos 集群
-
修改 application.yml
server-addr: 192.168.142.120:1111 # Linux + Nginx 集群版
-
启动 alibaba-nacos-provider-payment-9001
-
查看 Nacos 控制台
成功
其他的配置就都是一样的了,就不演示了。
以上是关于SpringCloud-2.0-周阳(20.Nacos 集群和持久化配置)的主要内容,如果未能解决你的问题,请参考以下文章
SpringCloud-2.0-周阳(21. Sentinel 环境搭建)
SpringCloud-2.0-周阳(15. 消息驱动 - SpringCloud Stream)
SpringCloud-2.0-周阳(16. 请求链路追踪 - SpringCloud Sleuth)
SpringCloud-2.0-周阳(13. 分布式配置中心 - SpringCloud Config)