nacos配置中心单击模式改造为集群模式
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nacos配置中心单击模式改造为集群模式相关的知识,希望对你有一定的参考价值。
参考技术A nacos作为配置中心可以将配置项目的配置提取到外部,独立管理,当nacos单机部署时,当nacos服务不正常时,项目便不可获取到正确的配置信息。如果将nacos搭建成集群环境,只要不是集群的所有机器都有挂掉,都可以正常读取配置,可以提高项目稳定性。需要多台linux机器作为集群的环境
此外,需要linux机器包含maven环境、java环境
github地址: https://github.com/alibaba/nacos
新建cluster.conf文件,或者将cluster.conf.example重明明为cluster.conf
在此文件中添加集群地址和端口号
新建application.properties文件或者将application.properties.example重命名为application.properties
执行bin目录下的startup.sh脚本
ps:sh startup.sh则默认以集群模式启动,sh startup.sh -m standalone则是以单机模式启动
启动成功后,单独访问每台机器的地址(ip:8848/nacos/#/login),用户名密码:nacos/nacos
如果都能正常访问,则一切正常。
启动项目,后台可以看到nacos连接的相关日志
并且项目可以正常读取到配置内容,则一切正常
如果使用jenkins部署项目,则需要需要修改jenkins的nacos相关配置,使之可以正确读取到nacos集群的每一台机器
Nacos集群部署
Nacos三种部署模式
单机模式:开发、测试
集群模式:生产环境,高可用
多集群模式:多数据中心
本文为部署集群模式,因为必须部署大于等于3个的单数(2n+1)节点(为啥必须是2n+1,另外再描述)
2台机器,部署3个节点(如果想1台部署3个节点或者3台部署3个节点,用法类似)
1、安装JDK
本步骤省略
2、到官网下载最新的包
https://github.com/alibaba/nacos/releases
3、依赖于mysql
mysql安装省略
在下载包解压出来之后,在nacosconf目录下有nacos-mysql.sql,到mysql中导入
4、准备2台服务器,还是以
1号机,192.168.1.182--部署2个节点
2号机,192.168.1.183--部署1个节点
两台机器为例
5、创建用户和组
groupadd -g 531 nacos
useradd -u 531 -g nacos nacos
passwd nacos #更改密码
更改密码为111111
6、上传官方下载包nacos-server-1.1.4.zip
解压
unzip nacos-server-1.1.4.zip
最终目录机构为
1号机:
/home/nacos/nacos60001
/home/nacos/nacos60002
2号机:
/home/nacos/nacos60003
7、修改cluster配置文件
1号机
cd /home/nacos/nacos/conf
cp cluster.conf.example cluster.conf
vi cluster.conf
修改为
192.168.1.182:60001
192.168.1.182:60002
192.168.1.183:60003
cp /home/nacos/nacos60001/conf/cluster.conf /home/nacos/nacos60002/conf/cluster.conf
scp /home/nacos/nacos60001/conf/cluster.conf nacos@192.168.1.183:/home/nacos/nacos60003/conf/
8、修改application配置文件
1号机:
vi application.properties
nacos60001主要修改以下内容:
1)修改
server.port=60001
nacos.cmdb.dumpTaskInterval=3600
nacos.cmdb.eventTaskInterval=10
nacos.cmdb.labelTaskInterval=300
nacos.cmdb.loadDataAtStart=false
2)增加mysql配置:
db.num=1
db.url.0=jdbc:mysql://58968d5a42180.gz.cdb.myqcloud.com:6853/nacos1?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=nacos
db.password=JieYiSoft123
cp /home/nacos/nacos60001/conf/application.properties /home/nacos/nacos60002/conf/application.properties
vi application.properties
nacos60001修改
server.port=60002
scp /home/nacos/nacos60001/conf/application.properties nacos@192.168.1.183:/home/nacos/nacos60003/conf/application.properties
2号机:
vi application.properties
修改
server.port=60003
9、启动服务
1号机:
sh /home/nacos/nacos60001/bin/startup.sh
sh /home/nacos/nacos60002/bin/startup.sh
2号机:
sh /home/nacos/nacos60003/bin/startup.sh
10、查看服务情况
http://192.168.1.182:60001/nacos/index.html
http://192.168.1.182:60002/nacos/index.html
http://192.168.1.182:60003/nacos/index.html
图中节点,可以看到,因为60003先启动了,所以它作为leader了
11、尝试停止60003
开始。发现没有leader了:
过一段时间,leader变成了182了:
里面的原理,后续补充
12、再启动60003
60003又作为follwer进来了
13、Springboot或者SpringCloud注册的时候
相关往nacos的都要调整
比如下面的:
spring.cloud.nacos.config.server-addr=192.168.1.182:60001,192.168.1.182:60002,192.168.1.183:60003
即可
以上是关于nacos配置中心单击模式改造为集群模式的主要内容,如果未能解决你的问题,请参考以下文章
Spring Cloud - Nacos注册中心入门单机模式及集群模式