Zookeeper初始(一)
量大,服务器压力大。需要用到分布式,集群。
问题1:三台机器,一个请求如何落到一台机器上?如何协调工作
问题2:集群如何选取leader?
问题3:既然是分布式,集群,一个请求只能有一台机器接接收并处理,其他机器如何同步消息?
问题4:同时竞争资源如何让一个机器执行?
解答:
问题1:三台机器,一个请求如何落到一台机器上?
zookeeper 解决了各服务之间协调工作的内容如下图:

问题2:集群如何选取leader?
1 leader-follower-observer
2 leader选取 :?有哪些算法?
问题3:既然是分布式,集群,一个请求只能有一台机器接接收并处理,其他机器如何同步消息?
3 数据同步怎么办?事务请求走leader,非事务走所有节点,增删改有leader节点处理,处理完同步到非leader;使用了节点zab协议(原子广播协议):数据同步,leader选取,原子广播。
zookeeper:文件类型的树形目录结构
有序节点:顺序递增
持久化节点:永久存储
临时节点:回话结束即删除节点,不能有字节点,存在冲突:比如 临时节点下在建立了持久节点怎么办,如果在建立个临时节点,生命周期不一样怎么办?
树形结构: 每个节点是 key-value
zookeeper 应用:
1分布式锁:(节点抢占,顺序节点)
1 节点抢占 :同级节点是唯一的(同时创建同一个节点,多个应用创建肯定只有一个成功),失败的节点怎么办?
watcher:客户端可以监控某一个节点的变化 监听方式3中:get exists getchildren 设置监控: get /mic true 对mic 节点监控 监控删除事件
如 app2可以watcher app1新建的节点事件,如果app1新建的节点有修改会给所有监控对象app2,app3发通知(只触发一次,如果失败则丢掉事件)会发生 惊群问题?会触发所有节点
2 顺序节点:创建顺序节点,最小节点获取锁 1 2 3 ;2监控1 3监控2 ,每个节点监控上一个节点
2 服务注册:
各个服务通信:rpc协议远程过程服务调用
rpc 协议有 hession,dubbo,webservice 框架
服务直接通信用到:序列化/反序列化,反射

Zookeeper初始(一)的更多相关文章
- Zookeeper基础教程(六):.net core使用Zookeeper
Demo代码已提交到gitee,感兴趣的更有可以直接克隆使用,地址:https://gitee.com/shanfeng1000/dotnetcore-demo/tree/master/Zookeep ...
- zookeeper篇-zookeeper客户端和服务端的基础命令
点赞再看,养成习惯,微信搜索「小大白日志」关注这个搬砖人. 文章不定期同步公众号,还有各种一线大厂面试原题.我的学习系列笔记. 前提:我把zookeepee安装在了服务器/usr/local/java ...
- dubbo学习之服务提供者
1.简介 这里主要记录如何搭建一个spring框架,提供一个dubbo服务,包括详细的步骤. 2.详细步骤 2.1 项目目录结构 2.2 创建maven项目 new --> Web Projec ...
- 初始zookeeper与集群搭建实例
zookeeper是什么 Zookeeper,一种分布式应用的协作服务,是Google的Chubby一个开源的实现,是Hadoop的分布式协调服务,它包含一个简单的原语集,应用于分布式应用的协作服务, ...
- 【分布式】Zookeeper数据与存储
一.前言 前面分析了Zookeeper对请求的处理,本篇博文接着分析Zookeeper中如何对底层数据进行存储,数据存储被分为内存数据存储于磁盘数据存储. 二.数据与存储 2.1 内存数据 Zooke ...
- 【分布式】Zookeeper的Leader选举
一.前言 前面学习了Zookeeper服务端的相关细节,其中对于集群启动而言,很重要的一部分就是Leader选举,接着就开始深入学习Leader选举. 二.Leader选举 2.1 Leader选举概 ...
- 【分布式】Zookeeper与Paxos
一.前言 在学习了Paxos在Chubby中的应用后,接下来学习Paxos在开源软件Zookeeper中的应用. 二.Zookeeper Zookeeper是一个开源的分布式协调服务,其设计目标是将那 ...
- Zookeeper开源客户端框架Curator简介
Curator是Netflix开源的一套ZooKeeper客户端框架. Netflix在使用ZooKeeper的过程中发现ZooKeeper自带的客户端太底层, 应用方在使用的时候需要自己处理很多事情 ...
- ZooKeeper个人笔记客户端watcher和AsycCallback回调
每一个Watcher具有如下属性: 1.KeeperState 2.EventType 3.path 4.process(WatchedEvent evnet)回掉方法 Watcher干嘛的?用户监听 ...
随机推荐
- subprocess.CalledProcessError: Command ‘(‘lsb_release’, ‘-a’)’ returned non-zero exit status 1.
解决方法find / -name lsb_releaserm -rf /usr/bin/lsb_release
- 【Mac】-NO.133.Mac.1 -【重置忘记macos root密码】
Style:Mac Series:Java Since:2018-09-10 End:2018-09-10 Total Hours:1 Degree Of Diffculty:5 Degree Of ...
- ubuntu 16.04 安装wechat, chrome等
安装wechat 按照https://www.jb51.net/article/131179.htm,结果发现不行. 用apt-get install electronic-wechat的方式呢,也不 ...
- vue-devtools的安装与使用
安装 vue.js devtools vue官方中文文档:http://www.uihtm.com/vue/v2/guide/index.html# 安装 vue.js devtools 前提是Goo ...
- C#学习笔记(2)
1.获取当前可用串口端口号 using System.IO.Ports; string[] portNames = SerialPort.GetPortNames(); 2.TextBox换行.设置光 ...
- php中双$符 及一些基础知识
双$$符号表示可变变量 如 $a = "b", $b = 'c'; echo $$a 此时 $$a=>$($a) =>$b 输出的值就应该为c; 变量传应用值$b ...
- 浅谈Linux文件与目录权限
作为一个程序员,在工作的过程中或多或少都会接触都Linux,那么对于权限这块肯定有所了解,今天有空想谈谈觉得比较绕的权限问题,即文件权限与目录权限 1.文件权限,对于文件权限这个是比较简单的,也很容易 ...
- cygwin vim can't write .viminfo
问题 每次退出vim时,都提示 vim can't wirte .viminfo 运行环境 以管理员身份登录win7,并运行cygwin 排查过程 切换到家目录,查看发现.viminfo文件存在. 查 ...
- HTML5新增常用属性
一. 代码名称语义化的好处 1.能让搜索引擎更好的收录 2.对于特殊设备如盲人设备好解析 二.article和section的区别 article(文章):独立且能被外部引用 section(章节.段 ...
- ftp 上传和下载
ftp 下载 #!/bin/bash #auth liwei #date DATE=$(date -d today +%Y%m%d) #data files path SRCDIR=/home/web ...