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干嘛的?用户监听 ...
随机推荐
- linux 查看是否安装了MySQL
yum 安装mysql yum -y install mysql-server ------------------------------------------------------- ...
- selenium--键盘事件
from selenium import webdriver from selenium.webdriver.common.keys import Keys driver = webdriver.Fi ...
- 19.C# 泛型
1.泛型的概念 所谓泛型,即通过参数化类型来实现在同一份代码上操作多种数据类型.泛型编程是一种编程范式,它利用“参数化类型”将类型抽象化,从而实现更为灵活的复用. 2. .net提供的泛型 2.1可空 ...
- 简单的C++输出日志
myLog.h #ifndef __myLog_H_ #define __myLog_H_ #include <stdio.h> #include <stdlib.h> #in ...
- Qt QComBox 文本框输入itemText && 文本框查找item && 本文框添加Item &&设置显示Item数量
comBox的几种状态图如下: 图1:ui->comboBox->setEditable(true); 图2:ui->comboBox->setEditable(false ...
- C# 使用Newtonsoft.Json读写Json文件
{ "CAN": false, "AccCode": 4294901856, "Id": 768, "BPointMove&quo ...
- Wed Sep 19 20:48:46 CST 2018 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection mus
Wed Sep 19 20:48:46 CST 2018 WARN: Establishing SSL connection without server's identity verificatio ...
- EL有11个隐含对象
EL有11个隐含对象: 隐含对象 类型 说明 ...
- springmvc <mvc:default-servlet-handler/> & <mvc:annotation-driven>
1. mvc 标签内部加载的基础类: 1). <mvc:view-controller> 1 org.springframework.web.servlet.handler.SimpleU ...
- Mac 下 实现终端跳转 服务器 不用输入密码
首先需要安装 expect 安装 expect 需要 tcl 依赖 第一步 下载tcl http://www.tcl.tk/software/tcltk/downloadnow84.tml 将下载好 ...