zookeeper高可用集群部署
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了zookeeper高可用集群部署相关的知识,希望对你有一定的参考价值。
参考技术A一、Zookeeper 的搭建方式
Zookeeper 安装方式有三种,单机模式和集群模式以及伪集群模式。
Zookeeper 通过复制来实现高可用性,只要集合体中半数以上的机器处于可用状态,它就能够保证服务继续。
为什么一定要超过半数呢? 这跟 Zookeeper 的复制策略有关:Zookeeper 确保对 znode 树的每一个修改都会被复制到集合体中超过半数的机器上。
二、配置JDK环境
三、Zookeeper 单机模式搭建
1、下载 ZooKeeper :http://mirrors.hust.edu.cn/apache/zookeeper/
2、解压
3、配置环境变量
非必须操作
4、修改 Zookeeper 的配置文件 conf/zoo.cfg
5、启动 ZooKeeper
四、Zookeeper 集群模式搭建
Zookeeper 集群模式搭建方案:
1、解压
2、配置环境变量
非必须操作
3、修改 Zookeeper 的配置文件
zookeeper参数说明
A :其中 A 是一个数字,表示这个是服务器的编号;B :是这个服务器的 ip 地址;C :Leader 选举的端口;D :Zookeeper 服务器之间的通信端口。
4、添加服务器标识配置 dataDir/myid
5、将修改后的zookeeper分发到其他节点
6、启动
分别在3个节点启动zookeeper
查看状态
五、 Zookeeper 伪集群模式搭建
只需将zookeper复制3份到不同的位置,配置如下
zookeeper服务脚本
Nacos的高可用部署
在分布式架构中,任何中间件或者应用都不允许单点存在,所以开源组件一般都会自己支持高可用集群方式,如图所示,Nacos提供了类似于Zookeeper的集群架构,包含一个Leader节点和多个Follower节点。
和ZooKeeper不同的是,它的数据一致性算法是Raft,同样采用了该算法的中间件有Redis Sentinel的Leader选举。
Raft是一种共识算法,旨在替代Paxos。它通过逻辑分离比Paxos更容易理解,但它也被正式证明是安全的,并提供了一些额外的功能。Raft提供了一种在计算系统集群中分布状态机的通用方法,确保集群中的每个节点都同意一系列相同的状态转换。它有许多开源参考实现,具有Go,C ++,Java和Scala中的完整规范实现。
安装环境要求
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:8848
192.168.1.107:8848
192.168.1.108:8848
由于3台服务器直接需要彼此通信,所以需要开放8848端口。
配置Mysql数据库
Derby数据库是一种文件类型的数据库,在使用时会存在一定的局限性,比如它无法支持多用户同时操作,在数据量大、连接数多的情况下会产生大量连接的积压,所以在生产环境中,使用Mysql替换。执行nacos-mysql.sql创建数据库和表,分别修改conf目录下application.properties,增加Mysql的配置。
spring.datasource.platform=mysql
db.num=1
db.url=jdbc:mysql://192.168.1.104:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=root
启动Nacos服务
分别进入3台服务器的Nacos的bin目录,在linux系统下,我们运行的是startup.sh。服务启动之后,在nacos/logs/start.out下可以获得如下日志,则表示启动成功。
通过浏览器访问nacos的控制台,在菜单“节点列表”中可以看到如下信息,展示当前节点组成及节点信息。
以上是关于zookeeper高可用集群部署的主要内容,如果未能解决你的问题,请参考以下文章
ActiveMQ 高可用集群安装配置(ZooKeeper + LevelDB)
Spark 系列—— 基于 ZooKeeper 搭建 Spark 高可用集群