分布式系统详解--框架(Zookeeper-简介和集群搭建)

本文涉及的产品
云原生网关 MSE Higress,422元/月
注册配置 MSE Nacos/ZooKeeper,118元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 分布式系统详解--框架(Zookeeper-简介和集群搭建)

分布式系统详解--框架(Zookeeper-简介和集群搭建)

一、Zookeeper简介

1.1 Zookeeper是什么?

       Zookeeper是一个集中式服务,用于维护配置信息,命名提供分布式同步和提供组服务。所有这些类型的服务都已分布式应用程序的某种形式使用。每次实施他们都需要做很多工作来修复不可避免的错误和竞争条件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。奇数台。

ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。

ZooKeeper代码版本中,提供了分布式独享锁、选举、队列的接口,代码在zookeeper-3.4.3\src\recipes。其中分布锁和队列有Java和C两个版本,选举只有Java版本。

1.2 设计目标

       ZooKeeper很简单ZooKeeper允许分布式进程通过共享的层级命名空间相互协调,该命名空间与标准文件系统类似地组织。ZooKeeper可以实现高吞吐量和低延迟数量。

ZooKeeper实现非常重视高性能,高可用性,严格有序的访问。

ZooKeeper被复制。与它协调的分布式进程一样,ZooKeeper本身也可以在称为集合的一组主机上进行复制。

 

1.3 数据模型和分层命名空间

ZooKeeper提供的名称空间非常类似于标准文件系统。名称是由斜杠(/)分隔的路径元素序列。ZooKeeper名称空间中的每个节点都由路径标识。

1.4 znode 节点有四种

普通znode: /name  /name (后者将前者覆盖)。

普通序列化znode: /name   /name  (一旦生成,系统自动序列化 /name.....1  /name.....2)。

临时znode :当session退出或者失效,则该节点失效。

临时序列化znode。

1.5 watcher 事件

事件(节点可以注册事件)删除节点、创建节点、更新节点

二、Zookeeper安装

2.1 下载ZooKeeper,可以到官网直接下载。本文下载   zookeeper-3.4.12.tar.gz

2.2 解压安装ZooKeeper。

tar -zxvf zookeeper-3.4.12.tar.gz

2.3 配置环境变量

vi /ect/profile 添加变量。

 

source /etc/profile  

选择./sbin/中的文件可以Tab出来就可以。

2.4 编辑 ./conf/zoo.cfg

mv ./conf/zoo_sample.cfg ./conf/zoo.cfg    (将前面模版改为zoo.cfg,进入进行修改)

vi ./conf/zoo.cfg

修改并添加下列属性:

tickTime=2000
dataDir=/home/zkdata
clientPort=2181
initLimit=5
syncLimit=2
server.1=MyLinux:2888:3888
server.2=centos01:2888:3888
server.3=centos02:2888:3888

2.5 复制zookeeper 到其他服务器机器上

scp ../zookeeper-3.4.12 centos01:/opt

scp ../zookeeper-3.4.12 centos02:/opt

2.6 修改centos01和centos02两台服务器中的环境变量配置。跟上面一致。

vi /etc/profile

2.7 创建文件目录 mkdir /home/zkdata

2.8 在新创建的文件夹下 /home/zkdata 创建文件myid 因为上面server配置的事情。

vi /home/zkdata/myid

在MyLinux服务器上 仅编写一个1,保存退出

在centos01服务器上 仅编写一个2,保存退出

在centos02服务器上 仅编写一个3,保存退出

2.9 启动

zkServer.sh start

zkServer.sh status 查看各自的状态。

解决状态显示报错:Error contacting service. It is probably not running问题。

(1)查看防火墙,或者直接进行重新关闭:service iptables stop

(2)查看自己的zoo.cfg 文件是否由配置错误

(3)一定要设置的目录中 ,就是上面的项目设置的目录中,/home/zkdata/myid 设置正确 1,2,3。

2.10 连接当前服务zkClin.sh  退出当前服务 quit

 

相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
目录
相关文章
|
24天前
|
Prometheus 运维 监控
解锁分布式云多集群统一监控的云上最佳实践
为应对分布式云多集群监控的挑战,阿里云可观测监控 Prometheus 版结合 ACK One,凭借高效纳管与全局监控方案有效破解了用户在该场景的监控运维痛点,为日益增长的业务需求提供了一站式、高效、统一的监控解决方案,实现成本与运维效率的双重优化。助力企业的数字化转型与业务快速增长,在复杂多变的云原生时代中航行,提供了一个强有力的罗盘与风帆。
55435 16
|
14天前
|
消息中间件 缓存 监控
如何设计一个秒杀系统,(高并发高可用分布式集群)
【7月更文挑战第4天】设计一个高并发、高可用的分布式秒杀系统是一个非常具有挑战性的任务,需要从架构、数据库、缓存、并发控制、降级限流等多个维度进行考虑。
28 1
|
16天前
|
关系型数据库 分布式数据库 PolarDB
**PolarDB开源指南:构建分布式数据库集群**踏上PolarDB开源之旅,了解如何从零开始搭建分布式集群
【7月更文挑战第3天】**PolarDB开源指南:构建分布式数据库集群**踏上PolarDB开源之旅,了解如何从零开始搭建分布式集群。采用存储计算分离架构,适用于大规模OLTP和OLAP。先准备硬件和软件环境,包括Linux、Docker和Git。然后,克隆源码,构建Docker镜像,部署控制节点和计算节点。使用PDCli验证集群状态,开始探索PolarDB的高性能与高可用性。在实践中深化学习,贡献于数据库技术创新。记得在安全环境下测试。
130 1
|
25天前
|
存储 搜索推荐 Java
微服务SpringCloud ES分布式全文搜索引擎简介 下载安装及简单操作入门
微服务SpringCloud ES分布式全文搜索引擎简介 下载安装及简单操作入门
29 2
|
25天前
|
SQL 关系型数据库 MySQL
MySQL高可用架构设计:从主从复制到分布式集群
MySQL高可用性涉及主从复制、半同步复制和Group/InnoDB Cluster。主从复制通过二进制日志同步数据,保证故障时可切换。半同步复制确保事务在至少一个从服务器确认后才提交。Group Replication是多主复制,支持自动故障切换。InnoDB Cluster是8.0的集成解决方案,简化集群管理。使用这些技术能提升数据库的稳定性和可靠性。
217 2
|
27天前
|
Shell 虚拟化
分布式系统详解--框架(Zookeeper-基本shell命令)
分布式系统详解--框架(Zookeeper-基本shell命令)
22 1
|
21天前
|
缓存 NoSQL 数据库
分布式系统面试全集通第一篇(dubbo+redis+zookeeper----分布式+CAP+BASE+分布式事务+分布式锁)
分布式系统面试全集通第一篇(dubbo+redis+zookeeper----分布式+CAP+BASE+分布式事务+分布式锁)
28 0
|
21天前
|
设计模式 监控 安全
一文搞懂:zookeeper实现分布式锁安全用法
一文搞懂:zookeeper实现分布式锁安全用法
13 0
|
27天前
|
存储 消息中间件 数据库
分布式系统详解--架构简介(微服务)
分布式系统详解--架构简介(微服务)
30 0
|
10天前
|
NoSQL Java Redis
实现基于Redis的分布式锁机制
实现基于Redis的分布式锁机制