vlambda博客
学习文章列表

Nacos的高可用部署

在分布式架构中,任何中间件或者应用都不允许单点存在,所以开源组件一般都会自己支持高可用集群方式,如图所示,Nacos提供了类似于Zookeeper的集群架构,包含一个Leader节点和多个Follower节点。

和ZooKeeper不同的是,它的数据一致性算法是Raft,同样采用了该算法的中间件有Redis Sentinel的Leader选举。

Nacos的高可用部署

Raft是一种共识算法,旨在替代Paxos。它通过逻辑分离比Paxos更容易理解,但它也被正式证明是安全的,并提供了一些额外的功能。Raft提供了一种在计算系统集群中分布状态机的通用方法,确保集群中的每个节点都同意一系列相同的状态转换。它有许多开源参考实现,具有Go,C ++,Java和Scala中的完整规范实现。


Nacos的高可用部署



安装环境要求


  • 64-bit Linux系统

  • 64-bit JDK1.8以上

  • Maven 3.2以上

  • 3个及3个以上Nacos

  • Mysql数据库


安装包及环境准备


下载安装包,分别进行解压,tar -zvxf nacos-server-1.3.1.tar.gz 解压后会得到5个文件夹:bin、conf、logs、data、target。


集群配置


在conf目录下包含以下文件:

  • application.properties:默认的配置文件。

  • cluster.conf.example:集群配置样例文件。

  • nacos-mysql.sql:Mysql数据库。

  • nacos-logback.xml:Nacos日志配置文件。


Nacos支持Derby和Mysql两种持久化机制,默认采用Derby数据库,如果采用Mysql,需要运行nacos-mysql.sql创建数据库和表。

192.168.1.106:8848192.168.1.107:8848192.168.1.108:8848

由于3台服务器直接需要彼此通信,所以需要开放8848端口。


配置Mysql数据库


Derby数据库是一种文件类型的数据库,在使用时会存在一定的局限性,比如它无法支持多用户同时操作,在数据量大、连接数多的情况下会产生大量连接的积压,所以在生产环境中,使用Mysql替换。执行nacos-mysql.sql创建数据库和表,分别修改conf目录下application.properties,增加Mysql的配置。

spring.datasource.platform=mysqldb.num=1db.url=jdbc:mysql://192.168.1.104:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=truedb.user=rootdb.password=root


启动Nacos服务


分别进入3台服务器的Nacos的bin目录,在linux系统下,我们运行的是startup.sh。服务启动之后,在nacos/logs/start.out下可以获得如下日志,则表示启动成功。



通过浏览器访问nacos的控制台,在菜单“节点列表”中可以看到如下信息,展示当前节点组成及节点信息。