初识Zookeeper

Zookeeper简介

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

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

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

Zookeeper特性:

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

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

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

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

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

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

基本架构:


Zookeeper角色:

        Leader(领导者)

        Follower(跟随者)

        Observer(观察者)

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

全新启动期:

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

数据模型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是否正确创建。遇到问题查看日志,里面或许存在蛛丝马迹。

 未完待续....

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容