zookeeper入门到精通01——zookeeper入门

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 1.zookeeper入门1.1 概述

1.zookeeper入门


1.1 概述

选择zookeeper3.5.7作为教程版本.Zookeeper 是一个开源的分布式的,为分布式框架提供协调服务的 Apache 项目。也就是说zookeeper可以为其它的分布式框架提供服务,而它本身也是分布式项目。


从设计模式的角度理解,zookeeper是一个基于观察者模式的设计模式,它可以存储一些大家都关心的数据,然后接受观察者的注册,一旦数据发生变化,就会通知到各个观察者们,使其做出相对应的反应。其实它就相当于一个文件系统+通知机制。微服务中很重要的一个机制就是服务的注册、监听与发现,使用zookeeper很容易就做到。

1.2特点


1)zookeeper一个领导者(Leader),多个跟随者(Follower)组成的集群。 所有的写操作都需要经过leader,避免数据写入混乱,但是follower都可以提供读服务,提高效率分散压力。


2)集群中只要有半数以上节点存活,Zookeeper集群就能正常服务。所 以Zookeeper适合安装奇数台服务器。比如5台服务器挂2台集群还能使用,但是如果是6台服务器挂2台也能使用,挂3台就不行了,这样我们多安装了一台服务器,但是服务器集群的稳定性并没有提高,相当于浪费了一台服务器。


3)全局数据一致:每个Server保存一份相同的数据副本,Client无论连接到哪个Server,数据都是一致的。


4)更新请求顺序执行,来自同一个Client的更新请求按其发送顺序依次执行。


5)数据更新原子性,一次数据更新要么成功,要么失败。


6)实时性,在一定时间范围内,Client能读到最新数据。这是因为zookeeper的数据同步效率很高。

1.3 数据结构

ZooKeeper 数据模型的结构与 Unix 文件系统很类似,整体上可以看作是一棵树,每个节点称做一个 ZNode。每一个 ZNode 默认能够存储 1MB 的数据,因此zookeeper不适合用来存储海量数据,只适用于存储一些小存储量的配置信息,每个 ZNode 都可以通过其路径唯一标识。

1.4 应用场景

提供的服务包括:统一命名服务、统一配置管理、统一集群管理、服务器节点动态上下线、软负载均衡等。


(1)统一命名服务


在分布式环境下,经常需要对应用/服务进行统一命名,便于识别。例如:IP不容易记住,而域名容易记住。同时统一命名服务一台主机挂掉并不影响服务整体的使用。ngix也可以起到类似的作用。

(2)统一配置管理

分布式环境一般要求服务集群的配置信息保持一致,如果一个配置信息发生改变,需要尽快的同步到各个服务器节点。同时可以将变化尽快的通知到服务端。

(3)统一集群管理

客户端在zookeeper上注册后,可以将其节点信息存放到一个znode,这样就可以被其它节点监听到。

4)服务动态上线

服务上线、下线都可以被监听到

(5)软负载均衡

均衡客户端对服务端的请求

1.5 下载地址

服务上线、下线都可以被监听到

相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
|
4月前
|
存储 消息中间件 负载均衡
Zookeeper基础入门与安装部署
Zookeeper基础入门与安装部署
44 0
|
3月前
|
NoSQL 中间件 API
分布式锁【数据库乐观锁实现的分布式锁、Zookeeper分布式锁原理、Redis实现的分布式锁】(三)-全面详解(学习总结---从入门到深化)(下)
分布式锁【数据库乐观锁实现的分布式锁、Zookeeper分布式锁原理、Redis实现的分布式锁】(三)-全面详解(学习总结---从入门到深化)
80 2
|
3月前
|
NoSQL Java API
分布式锁【数据库乐观锁实现的分布式锁、Zookeeper分布式锁原理、Redis实现的分布式锁】(三)-全面详解(学习总结---从入门到深化)(上)
分布式锁【数据库乐观锁实现的分布式锁、Zookeeper分布式锁原理、Redis实现的分布式锁】(三)-全面详解(学习总结---从入门到深化)
71 0
|
2月前
|
NoSQL Java API
分布式锁【数据库乐观锁实现的分布式锁、Zookeeper分布式锁原理、Redis实现的分布式锁】(三)-全面详解(学习总结---从入门到深化)
分布式锁【数据库乐观锁实现的分布式锁、Zookeeper分布式锁原理、Redis实现的分布式锁】(三)-全面详解(学习总结---从入门到深化)
298 0
|
8月前
|
Dubbo Java 应用服务中间件
springboot + dubbo + zookeeper入门到实战超级详解
springboot + dubbo + zookeeper入门到实战超级详解
126 0
|
4月前
|
存储 Shell Linux
ZooKeeper【部署 01】单机版安装+配置+添加到service服务+开机启动配置+验证+chkconfig配置+shell自动部署脚本(一篇入门zookeeper)
ZooKeeper【部署 01】单机版安装+配置+添加到service服务+开机启动配置+验证+chkconfig配置+shell自动部署脚本(一篇入门zookeeper)
103 0
|
4月前
|
Dubbo Java 应用服务中间件
分布式应用简单入门及SpringBoot整合Dubbo+Zookeeper
分布式应用简单入门及SpringBoot整合Dubbo+Zookeeper
45 1
|
9月前
|
存储
zookeeper入门(二)
接触zookeeper也有一段时间了,一直有一个问题困扰着我,那就是zookeeper在codis中扮演什么角色,zookeeper中到底存储了哪些数据。
43 0
|
9月前
|
存储 消息中间件 设计模式
zookeeper入门(一)
Zookeeper 是一个开源的分布式的,为分布式应用提供协调服务的 Apache 项目
91 0
|
11月前
zookeeper入门到精通08——服务器节点动态上下线案例实战
zookeeper入门到精通08——服务器节点动态上下线案例实战

热门文章

最新文章