Zookeeper功能简介:

ZooKeeper 是一个开源的分布式协调服务,由雅虎创建,是 Google Chubby 的开源实现。分布式应用程序可以基于 ZooKeeper 实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、配置维护,名字服务、分布式同步、分布式锁和分布式队列等功能。

 ZooKeeper几个核心概念

集群角色

一个 ZooKeeper 集群同一时刻只会有一个 Leader,其他都是 Follower 或 Observer。

ZooKeeper 配置很简单,每个节点的配置文件(zoo.cfg)都是一样的,只有 myid 文件不一样。myid 的值必须是 zoo.cfg中server.{数值} 的{数值}部分。

在装有 ZooKeeper 的机器的终端执行 zookeeper-server status 可以看当前节点的 ZooKeeper是什么角色(Leader or Follower)。

1.ZooKeeper 集群的所有机器通过一个 Leader 选举过程来选定一台被称为『Leader』的机器,Leader服务器为客户端提供读和写服务。

2.Follower 和 Observer 都能提供读服务,不能提供写服务。两者唯一的区别在于,Observer机器不参与 Leader 选举过程,也不参与写操作的『过半写成功』策略,因此 Observer 可以在不影响写性能的情况下提升集群的读性能。

节点读写服务分工

1.ZooKeeper 集群的所有机器通过一个 Leader 选举过程来选定一台被称为『Leader』的机器,Leader服务器为客户端提供读和写服务。

2.Follower 和 Observer 都能提供读服务,不能提供写服务。两者唯一的区别在于,Observer机器不参与 Leader 选举过程,也不参与写操作的『过半写成功』策略,因此 Observer 可以在不影响写性能的情况下提升集群的读性能

Session

Session 是指客户端会话,在讲解客户端会话之前,我们先来了解下客户端连接。在ZooKeeper 中,一个客户端连接是指客户端和 ZooKeeper 服务器之间的TCP长连接。

ZooKeeper 对外的服务端口默认是2181,客户端启动时,首先会与服务器建立一个TCP连接,从第一次连接建立开始,客户端会话的生命周期也开始了,通过这个连接,客户端能够通过心跳检测和服务器保持有效的会话,也能够向 ZooKeeper 服务器发送请求并接受响应,同时还能通过该连接接收来自服务器的 Watch 事件通知。

Session 的 SessionTimeout 值用来设置一个客户端会话的超时时间。当由于服务器压力太大、网络故障或是客户端主动断开连接等各种原因导致客户端连接断开时,只要在 SessionTimeout 规定的时间内能够重新连接上集群中任意一台服务器,那么之前创建的会话仍然有效

 

转载于:https://www.cnblogs.com/szss/p/9929539.html

[ ZooKeeper]ZooKeeper 的功能和原理相关推荐

  1. 5分钟让你了解 ZooKeeper 的功能和原理

    个人分类: 分布式服务 目录  一 .Zookeeper功能简介  二 . ZooKeeper基本概念  2.1 集群角色  2.2 集群节点分工  2.3 session  2.4 数据节点  2. ...

  2. api 创建zookeeper客户端_zookeeper分布式锁原理及实现

    前言 本文介绍下 zookeeper方式 实现分布式锁 原理简介 zookeeper实现分布式锁的原理就是多个节点同时在一个指定的节点下面创建临时会话顺序节点,谁创建的节点序号最小,谁就获得了锁,并且 ...

  3. zookeeper实现分布式锁的原理及具体使用案例

    zookeeper跟redis一样,也是基于内存的. 官网: http://zookeeper.apache.org/ zookeeper是分布式系统的协调服务,提供配置管理.分布式协同.命名的中心化 ...

  4. 基于 Kafka 和 ZooKeeper 的分布式消息队列原理

    转载:https://gitbook.cn/books/5bc446269a9adf54c7ccb8bc/index.html 消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量 ...

  5. 再谈基于 Kafka 和 ZooKeeper 的分布式消息队列原理

    关于分布式消息队列,我在几个月前写过一篇文章:<深入浅出理解基于 Kafka 和 ZooKeeper 的分布式消息队列 >.最近,由于写作课程<分布式中间件实践之路>的契机,我 ...

  6. 学习 launch-editor 源码整体架构,探究 vue-devtools「在编辑器中打开组件」功能实现原理...

    1. 前言 你好,我是若川[1],微信搜索「若川视野」关注我,专注前端技术分享,一个愿景是帮助5年内前端开阔视野走向前列的公众号.欢迎加我微信ruochuan12,长期交流学习. 这是学习源码整体架构 ...

  7. 网络交换机功能和原理详解

    网络交换机,是一个扩大网络的器材,能为子网络中提供更多的连接端口,以便连接更多的计算机.它具有性能价格比高.高度灵活.相对简单.易于实现等特点.那么,网络交换机具体有哪些功能呢?网络交换机的原理是什么 ...

  8. [html] 图片上传时实现本地预览功能的原理是什么?

    [html] 图片上传时实现本地预览功能的原理是什么? 通过HTML5 File API读取用户上传的图片,生成一个image对象显示到页面 个人简介 我是歌谣,欢迎和大家一起交流前后端知识.放弃很容 ...

  9. bic计算机原理,CBTC系统区域控制器(ZC)功能及原理探究

    屈耀 摘  要:地面区域控制器(ZC)作为CBTC系统的核心地面设备,剖析其功能.工作原理及外部通信,对我们深化认知,学习和理解有着极为重要意义. 关键词:区域控制器;ZC;CBTC 中图分类号:U2 ...

  10. Spring Security实现RememberMe功能以及原理探究

    在大多数网站中,都会实现RememberMe这个功能,方便用户在下一次登录时直接登录,避免再次输入用户名以及密码去登录,下面,主要讲解如何使用Spring Security实现记住我这个功能以及深入源 ...

最新文章

  1. 编译原理(六)自底向上分析之LR分析法
  2. redis怎么不让存byte_redis用bitfield存储的问题
  3. figma下载_素描vs Figma困境
  4. ubuntu mysql 内存满了_Ubuntu 下 mysql 卸载后重安装时遇到的问题
  5. 计算机定义函数求出以下,求大神看一下 计算机提示 函数定义不合法
  6. maven下手动导入ojdbc6.jar
  7. easyui快速入门
  8. CE教程:植物大战僵尸(单卡片无CD)
  9. 虚拟麦克风音频输入_Audio Precision 全新声学/音频分析软件可减少测试时间
  10. Linux下截图的简单方案
  11. iOS视频播放器开发
  12. 5号字对应的数字字号_我想要个字号对照表,就比如五号字对应10.5磅,更详细一点的更好...
  13. Apache——CVE-2021-41773
  14. 共识算法PBFT资料整理
  15. thinkDifferent思维糖果
  16. 你真的知道Win 10中注销、睡眠、休眠的区别么?
  17. 概说SEO中的过度优化
  18. docker启动容器之后马上又自动关闭
  19. 【概念梳理】NMS 非极大值抑制
  20. USACO 2020你知道你的ABC吗

热门文章

  1. 【译】Why Decentralized AI Matters Part I: Economics and Enablers
  2. EOS从入门到精通(四)
  3. tensorflow笔记:模型的保存与训练过程可视化
  4. FlowDroid工具的构建与运行
  5. 重塑世界的区块链技术你必须要懂得
  6. JZOJ 5476. 【NOIP2017提高组正式赛】奶酪
  7. java sessionid长度_php中session_id()函数详细介绍,会话id生成过程及session id长度
  8. linux gnome3安装_Windows 10安装与管理WSL体验原生Linux系统
  9. 打印机支持打印html页面吗,vue下调用打印功能,打印html页面
  10. python分组函数_Python中如何按列分组和按自己的函数汇总