初识Zookeeper

Zookeeper简介

        >开源的针对大型分布式系统可靠协调系统

        > 设计目标:将复杂且容易出错的分布式一致性服务封装起来,构成一个高效可靠的原语集,并以简单易用的接口提供给用户使用。

        >功能:发布/订阅,分布式协调/通知,配置管理,集群管理,主从协调,分布式锁等。

Zookeeper特性:

        最终一致性:保证最终数据能够达到一致。(重要功能)

        顺序性:从同一个客户端发起的事务请求,最终会严格地按照其发送顺序被应用到Zookeeper中。

        可靠性:一旦服务器成功的应用一个事务,并完成了客户端的响应,那么该服务所引起的服务端状态变更将会被一直保留下去。

        实时性:Zookeeper不能保证两个客户端能同时得到刚更新的数据,如果需要最新数据,应该在读数据之前调用sync()接口。

        原子性:一次数据更新要么成功,要么失败。

        单一视图:无论客户端连接到哪个服务器,看到的数据模型都是一致的。

基本架构:


初识Zookeeper_第1张图片

Zookeeper角色:

        Leader(领导者)

        Follower(跟随者)

        Observer(观察者)

选举方式(分两种)全新启动期和运行期间

全新启动期:

初识Zookeeper_第2张图片

运行期间:(更正步骤2改为(3,123)

初识Zookeeper_第3张图片

数据模型Znode

        Zookeeper特有数据节点Znode,视图类似于linux的文件系统,是系统中最小的数据单元。并且可以保存数据,通过挂在子节点构成数状层次化空间

节点类型

        节点有三种:

                        持久节点       临时节点      顺序节点

        组合节点类型:

                        持久节点

                        持久顺序节点

                        临时节点

                        临时顺序节点

搭建中遇到的问题

        1、软连接创建之后使用ll查看存在闪烁情况,检查路径后使用rm移除错误的连接重新创建解决问题。

        2、创建完成后,在三台机器上面启动zookeeper,使用status查看提示进程未启动,检查了防火墙状态。查看日志发现报错大意是myid=5的zookeeper并未启动,原因是因为在zoo.cfg中写入了5台server。在所有机器的进程都启动后,发现只有1,2,4,5能查看到当前角色。进入node03,查看启动日志,发现myid手误打成了33,更正后重新启动,所有节点都能正确查看到角色。

            问题排除建议:检查防火墙,检查myid是否正确创建。遇到问题查看日志,里面或许存在蛛丝马迹。

 未完待续....

你可能感兴趣的:(初识Zookeeper)