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选举。

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的控制台,在菜单“节点列表”中可以看到如下信息,展示当前节点组成及节点信息。

以上是关于zookeeper高可用集群部署的主要内容,如果未能解决你的问题,请参考以下文章

ActiveMQ 高可用集群安装配置(ZooKeeper + LevelDB)

Spark 系列—— 基于 ZooKeeper 搭建 Spark 高可用集群

Spark 系列—— 基于 ZooKeeper 搭建 Spark 高可用集群

Kafka+ZooKeeper高可用集群部署

部署 Zookeeper 高可用集群

大厂分布式面试题分享:ZooKeeper集群如何实现高可用部署?