量大,服务器压力大。需要用到分布式,集群。

问题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初始(一)的更多相关文章

  1. Zookeeper基础教程(六):.net core使用Zookeeper

    Demo代码已提交到gitee,感兴趣的更有可以直接克隆使用,地址:https://gitee.com/shanfeng1000/dotnetcore-demo/tree/master/Zookeep ...

  2. zookeeper篇-zookeeper客户端和服务端的基础命令

    点赞再看,养成习惯,微信搜索「小大白日志」关注这个搬砖人. 文章不定期同步公众号,还有各种一线大厂面试原题.我的学习系列笔记. 前提:我把zookeepee安装在了服务器/usr/local/java ...

  3. dubbo学习之服务提供者

    1.简介 这里主要记录如何搭建一个spring框架,提供一个dubbo服务,包括详细的步骤. 2.详细步骤 2.1 项目目录结构 2.2 创建maven项目 new --> Web Projec ...

  4. 初始zookeeper与集群搭建实例

    zookeeper是什么 Zookeeper,一种分布式应用的协作服务,是Google的Chubby一个开源的实现,是Hadoop的分布式协调服务,它包含一个简单的原语集,应用于分布式应用的协作服务, ...

  5. 【分布式】Zookeeper数据与存储

    一.前言 前面分析了Zookeeper对请求的处理,本篇博文接着分析Zookeeper中如何对底层数据进行存储,数据存储被分为内存数据存储于磁盘数据存储. 二.数据与存储 2.1 内存数据 Zooke ...

  6. 【分布式】Zookeeper的Leader选举

    一.前言 前面学习了Zookeeper服务端的相关细节,其中对于集群启动而言,很重要的一部分就是Leader选举,接着就开始深入学习Leader选举. 二.Leader选举 2.1 Leader选举概 ...

  7. 【分布式】Zookeeper与Paxos

    一.前言 在学习了Paxos在Chubby中的应用后,接下来学习Paxos在开源软件Zookeeper中的应用. 二.Zookeeper Zookeeper是一个开源的分布式协调服务,其设计目标是将那 ...

  8. Zookeeper开源客户端框架Curator简介

    Curator是Netflix开源的一套ZooKeeper客户端框架. Netflix在使用ZooKeeper的过程中发现ZooKeeper自带的客户端太底层, 应用方在使用的时候需要自己处理很多事情 ...

  9. ZooKeeper个人笔记客户端watcher和AsycCallback回调

    每一个Watcher具有如下属性: 1.KeeperState 2.EventType 3.path 4.process(WatchedEvent evnet)回掉方法 Watcher干嘛的?用户监听 ...

随机推荐

  1. OO第二单元总结(多线程的电梯调度)

    经过第一单元作业的训练,在做第二单元的作业的时候,要更加的有条理.但是第二次作业多线程的运行,带来了更多的运行的不确定性.呈现出来就是程序会出现由于线程安全问题带来的不可复现的bug.本单元的作业也让 ...

  2. c#中WebApi开发遇到的坑

    一.如何新建一个webApi项目 打开VS→找到解决方案→新建项目→类库或web应用程序→选择空的WebApi项目→在Global.asax文件的Application_Start方法中注册WebAp ...

  3. 依据ECMA规范,手写一个bind函数

    Function.prototype.bind 函数,参见ECMA规范地址 如题,这次来实现一个boundFunction函数,不挂载在Function.prototype上,而是一个单独声明的函数. ...

  4. 深入理解虚拟机之Java内存区域

    1 概述 对于Java程序员来说,在虚拟机自动内存管理机制下,不再需要像C/C++程序开发程序员这样为内一个new 操作去写对应的delete/free操作,不容易出现内存泄漏和内存溢出问题.正是因为 ...

  5. Django中上传图片---避免因图片重名导致被覆盖

    上一篇文章中(https://www.cnblogs.com/lutt/p/10640412.html),我们以图片文件夹+图片名字的方式来储存图片,这样的做法会导致有重名的图片会导致之前的图片被覆盖 ...

  6. Python练习:爬虫练习,从一个提供免费代理的网站中爬取IP地址信息

    西刺代理,http://www.xicidaili.com/,提供免费代理的IP,是爬虫程序的目标网站. 开始写程序 import urllib.requestimport re def open_u ...

  7. Promise的那些事儿

    在JavaScript中,异步操作非常多见,然而在Promise之前,我们是在类似以下的做法中处理多重异步回调,每一层里都要调另一个异步函数,形成了所谓的"回调地狱", Promi ...

  8. Asp.Net Core WebApi 和Asp.Net WebApi上传文件

    public class UpLoadController : ControllerBase { private readonly IHostingEnvironment _hostingEnviro ...

  9. Python strip()与lstrip()、rstrip()

    .strip()方法可以根据条件遍历字符串中的字符并一一去除 默认去除字符串中的头尾空格 “  Alins  ”.“  AA  BB  CC  ”用了之后就是 “Alins”.“AA  BB  CC” ...

  10. volatile CAS

    减少上下文切换的方法有无锁并发编程.CAS算法.使用最少线程和使用协程. 无锁并发编程.多线程竞争锁时,会引起上下文切换,所以多线程处理数据时,可以用一 些办法来避免使用锁,如将数据的ID按照Hash ...