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了:

Nacos集群部署



过一段时间,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注册中心入门单机模式及集群模式

Nacos配置中心之Nacos集群

SpringCloud--alibliba--Nacos--上

微服务管理平台nacos虚拟ip负载均衡集群模式搭建

Nacos作为注册中心,配置中心部署方案

配置中心Config