zookeeper概述和分布式系统简介

  1. 什么是zookeeper

    1. 中间件,提供协调服务。
    2. 作用于分布式系统,发挥其优势,可以为大数据服务
    3. 支持java,提供java和c语言的客户端api
  2. 什么是分布式系统

    1. 很多台计算机组成一个整体,一个整体一致对外并且处理同一个请求。
    2. 内部的每台计算机都可以相互通信(rest/rpc)
    3. 客户端到服务端的一次请求到响应结束历经很多台计算机
    4. 关于分布式系统,就是一个系统,进行功能的拆分,最后整合成一个庞大的系统。这个庞大的系统对于用户来说不是透明的,对于自己来说,全是透明的。可以根据业务拆分成为不同的子系统。这样的好处的负载会大大的增加,用户的请求会分布到不同的系统里面去,这样负载就会有一个整体的提高。
  3. 分布式系统的瓶颈以及zk的相关特性

    1. 分布式系统的瓶颈

      1. 在发生高并发的时候,例如上海的虹桥火车站。系统的负载肯定会上升,也就是请求量会暴增,跟火车站类似,在某一个时间点,人流量特别多,某个班次的火车的人的容量是固定的,是有控制的,但是目前人这么多,只能按照先来先得,后来后上的道理。这其实就是一个非常典型的分布式锁的案例。整个系统都需要做到同步。才可以做到数据的一致性
      2. 在高并发的时候也可以映射为车流量特别的多,车流量多就会导致堵车,那么此时就需要有交警进行协调,哪个路口的车先走。
    2. zookeeper的特性

      1. 一致性:数据一致性,数据按照顺序分批入库
      2. 原子性:事务要么成功要么失败,不会局部化
      3. 单一视图:客户端连接集群中的任一zk节点,数据都是一致的。比如说连接到某一个节点的数据是A,等下次断开连接到第二个节点,它的数据其实也会还是A,不会是一种ABA,或者ABB,所有的数据应该都是一致的。所有节点上的数据全是一致的,要么全是A,要么全是B。
      4. 可靠性:每次对zk的操作状态都会保存在服务端。可以查看每一次都是什么状态,甚至可以根据某一个状态进行回滚
      5. 实时性:客户端可以读取到zk服务端的最新数据。
  4. Zookeeper的主要目录

    1. bin:主要的一些运行命令
    2. conf:存放配置文件,其中我们需要修改zk.cfg
    3. contrib:附件的一些功能
    4. dist-maven:mvn编译后的目录
    5. docs:文档
    6. lib:需要依赖的jar包
    7. recipies:demo案例
    8. src:源码
  5. zoo.cfg配置

    1. tickTime:用于计算的时间单元。比如session超时:N * tickTime
    2. initLimit:用于集群,允许从节点连接并同步到mater节点的初始化连接时间,以tickTime的倍数来表示
    3. syncLimit:用于集群,master主节点与从节点之间发送消息,请求和应答时间长度。(心跳机制)
    4. dataDir:必须配置。存储zk开发需要的一些数据
    5. dataLogDir:日志目录,如果不配置会和dataDir共用
    6. clientPort:连接服务器的端口,默认2181
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值