首页 > 技术文章 > 分布式之协调服务Zookeeper专题第一讲

java333 2019-07-25 14:50 原文

写在前面:

  再谈架构演进:

    1.单体架构->tomcat(war)

      演进:水平拆分(服务拆分,(用户服务,订单服务,商品服务))

           涉及问题:1).服务通信(webservice)

                 2).三态问题(成功、失败,超时等)

            垂直拆分(集群)

           涉及问题:1).地址维护

                2).负载均衡机制
                3).服务上下线感知(感知服务节点是否宕机 )

    2.分布式架构

      为了解决上述演进过程的各种问题,提供一个中间件,也就是我们的猪脚Zookeeper

一、什么是Zookeeper

  1.历史:

    起源于雅虎,为了解决共享资源锁竞争的问题,实现一个分布式锁,是一个分布式协调服务,协调服务的一个顺序性。

  2.数据结构:

    2.1树形目录结构,基于Key-Value的存储,可以作为注册中心来使用,每一个节点上注册一个服务。会有顺序性。

    2.2节点特性:

      同级节点唯一性、临时节点(在客户端建立的会话周期中,创建的的临时节点,会话结束后会自动删除)和持久化节点、有序节点和无序节点、临时节点下不能存在节点

 

  3.部署方式

    为了高可用,ZK一般采用集群部署,一主两从。而这里就产生了数据同步的问题。就CAP理论而言,zk采用了2pc的分布式事务解决方案以保证最终一致性。

    

二、zookeeper的安装部署

  1.安装部署

    1.1下载安装包:http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.14/  说明:下载3.5.5在启动时总是遇到如下问题

                 

    1.2解压zookeeper  tar -zxvf zookeeper-3.4.14.tar.gz

    1.3 拷贝一份配置文件 cp zoo_sample.cfg zoo.cfg (zk默认使用zoo.cfg配置文件)

    1.4 启动服务端 sh zkServer.sh start 

    1.5 启动客户端 sh zkCli.sh -server localhost:2182

  2.基本操作

    help

    create/delete/

三、zoo.fcg配置文件分析

 

  

推荐阅读