Nacos集群和持久化配置(重要)
官网集群部署说明:https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html
架构图:
官网说明:
https://nacos.io/zh-cn/docs/deployment.html
Nacos持久化配置解释
Nacos默认自带的是嵌入式数据库derby
:https://github.com/alibaba/nacos/blob/develop/config/pom.xml
derby是nacos的内嵌数据库,如果集群的话,每个节点的数据都持久化到本地的数据库,可能会出现数据不一致的问题,解决方法,nacos集群一致不使用内置数据库,统一使用外置的mysql数据库,这样所有节点的数据来源于mysql,就不会存在数据不一致的问题了
- nacos-server-1.1.4\nacos\conf目录下找到sql脚本,nacos-mysql.sql,执行脚本
- nacos-server-1.1.4\nacos\conf目录下找到application.properties 添加配置
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
启动nacos,可以看到是个全新的空记录界面,以前是记录进derby
Linux版Nacos+MySQL生产环境配置
按照上面的架构图搭建:预计需要,1个nginx+3个nacos注册中心+1个mysql
至少3个nacos节点。
1.下载nacos
linux版安装包nacos-server-1.1.4.tar.gz
,放到linux
下,解压。
2.conf
目录下获取 nacos-mysql.sql
文件。
3.新建一个数据库nacos_config
,导入sql
文件。
4.还是conf
目录下,application.properties
配置
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://ip:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=12345678
5.好了,已经配置好了一台nacos,但是至少要3台。开始配置集群
6.conf
目录下, cp cluster.conf.example cluster.conf
vi cluster.conf
#192.168.63.131本机ip 这个IP不能写127.0.0.1,必须是Linux命令hostname -i能够识别的IP
192.168.63.131:3333
192.168.63.131:4444
192.168.63.131:5555
7.编辑Nacos
的启动脚本startup.sh
,使它能够接受不同的启动端
vi start.sh
:
while getopts ":m:f:s:p:" opt
do
case $opt in
m)
MODE=$OPTARG;;
f)
FUNCTION_MODE=$OPTARG;;
s)
SERVER=$OPTARG;;
p)
PORT=$OPTARG;;
?)
echo "Unknown parameter"
exit 1;;
esac
done
nohup $JAVA -Dserver.port=${PORT} ${JAVA_OPT} nacos.nacos >> ${BASE_DIR}/logs/start.out 2>&1 &
8.安装nginx
。并且启动后能访问主页。然后才是来改配置
conf
下,nginx.conf
upstream cluster{
server 127.0.0.1:3333;
server 127.0.0.1:4444;
server 127.0.0.1:5555;
}
server{
listen 1111;
server_name localhost;
location /{
proxy_pass http://cluster;
}
启动nginx
:./nginx -c /root/nginx/nginx-1.18.0/conf/nginx.conf
启动nacos
:bin目录下
./startup.sh -p 3333
./startup.sh -p 4444
./startup.sh -p 5555
[root@localhost bin]# ps -ef|grep nacos|grep -v grep |wc -l
3
由于我的虚拟机内存只有1G,根本带不起来,我是修改了nacos的默认jvm参数后才起来的:
startup.sh
原jvm
参数:
可以看到集群时,这一上来就给我搞2G的内存,这个TM谁顶的住。
修改后适合我自己虚拟机的参数:
抠抠搜搜,哈哈哈!
不过终究是起来了,嘻嘻!
起完后再看一下内存:我的妈呀,就这么点了,刚刚好吧
访问nacos集群:
通过nginx转发访问
http://192.168.63.131:1111/nacos/#/login
查看集群信息:
添加一个配置文件,同时查看是否持久化到mysql里:
成功!
至此,1个Nginx+3个nacos注册中心+1个mysql的nacos集群搭建好了。
测试
模块:cloudalibaba-provider-payment9002修改
配置文件:
启动,查看是否注册到了nacos集群里:
成功注册上了!