zookeeper(一) --- zookeeper概述

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介:


zookeeper(一) --- zookeeper概述


 

         写文章之前笔者先说明一下笔者最近了解zookeeper的原因,最近笔者所在的项目中需要用全文索引,而架构师和项目经理决定使用比较成熟的solr+zookeeper的模式。这个任务比较幸运的落到了笔者的肩上,以上就是文章的背景了,进入主题。

 

         什么是Zookeeper?

 

         Apache ZooKeeper是Apache软件基金会的一个软件项目,他为大型分布式计算提供开源的分布式配置服务、同步服务和命名注册。由雅虎创建,是Google Chubby的开源项目实现。 ZooKeeper曾经是Hadoop的一个子项目,但现在是一个独立的顶级项目。

 

         ZooKeeper的架构通过冗余服务实现高可用性。因此,如果第一次无应答,客户端就可以询问另一台ZooKeeper主机。ZooKeeper节点将它们的数据存储于一个分层的命名空间,非常类似于一个文件系统或一个前缀树结构。客户端可以在节点读写,从而以这种方式拥有一个共享的配置服务。更新是全序的。

 

         应用场景

 

         1、  数据发布/订阅


         数据发布/订阅 顾名思义就是一方把数据发布出来,另一方通过某种手段可以得到这些数据。

         通常数据订阅有两种方式:推模式和拉模式,推模式一般是服务器制动向客户端发送消息,拉模式是客户端主动去服务器获取数据(通常采用定时轮询的方式),而zookeeper采用两种方式相结合。发布者将数据发布到zookeeper集群节点上,订阅者通过一定得方法告诉服务器,我对那个节点的数据感兴趣,那服务器在这些节点的数据发生变化时,就通知客户端客户端得到通知后可以去服务器获取数据信息。

 

         2、  负载均衡

 

         a.      首先DB再启动的时候先在zookeeper上注册一个临时节点(服务器出现问题的时候,节点会自动从zookeeper上删除)

         b.      客户端需要低些数据库的时候首先它去zookeeper得到所有可用的DB的连接信息(一张表)

         c.      客户端随机选择一个与之建立连接

         d.      当客户端发现连接不可用的时候可再次从zookeeper上获取可用的DB连接信息,当然也可以在刚获取的那个列表里移除不可用的连接后再随机选择一个DB与之连接。

 

         3、  命名服务


         顾名思义,就是提供名称的服务,,例如数据库表格ID,串通的开发中,可以通过ping某个主机来实现,ping得通说明对方是可用的,相反是不可用的。Zookeeper中我们让所有的机器都注册一个临时的节点,我们判断一个机器是否可用,我们只需要判断这个节点在zookeeper中是否存在就可以了,不需要直接去连接诶需要检查的机器,降低系统的复杂度。

 

         Zookeeper的优势?


         1、  源代码开放

         2、  已经被证实是高性能,易用的工业级产品

         3、  有广泛的应用:Solr、Hadoop、Storm

 

 

 

相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
目录
相关文章
|
9月前
|
数据安全/隐私保护
Zookeeper快速入门(Zookeeper概述、安装、集群安装、选举机制、命令行操作、节点类型、监听器原理)(二)
Zookeeper快速入门(Zookeeper概述、安装、集群安装、选举机制、命令行操作、节点类型、监听器原理)(二)
|
10月前
|
存储 算法 网络协议
分布式组件 ZooKeeper 介绍、术语概述以及集群搭建篇
分布式组件 ZooKeeper 介绍、术语概述以及集群搭建篇
74 0
|
9月前
|
消息中间件 负载均衡 监控
Zookeeper快速入门(Zookeeper概述、安装、集群安装、选举机制、命令行操作、节点类型、监听器原理)(一)
Zookeeper快速入门(Zookeeper概述、安装、集群安装、选举机制、命令行操作、节点类型、监听器原理)(一)
|
存储 消息中间件 监控
ZooKeeper 概述&特性|学习笔记
快速学习 ZooKeeper 概述&特性
89 0
ZooKeeper 概述&特性|学习笔记
|
5天前
|
监控 负载均衡 Cloud Native
ZooKeeper分布式协调服务详解:面试经验与必备知识点解析
【4月更文挑战第9天】本文深入剖析ZooKeeper分布式协调服务原理,涵盖核心概念如Server、Client、ZNode、ACL、Watcher,以及ZAB协议在一致性、会话管理、Leader选举中的作用。讨论ZooKeeper数据模型、操作、会话管理、集群部署与管理、性能调优和监控。同时,文章探讨了ZooKeeper在分布式锁、队列、服务注册与发现等场景的应用,并在面试方面分析了与其它服务的区别、实战挑战及解决方案。附带Java客户端实现分布式锁的代码示例,助力提升面试表现。
135 2
|
5天前
|
监控 Dubbo 前端开发
快速入门分布式系统与Dubbo+zookeeper Demo
快速入门分布式系统与Dubbo+zookeeper Demo
44 0
|
5天前
|
消息中间件 Java 网络安全
JAVAEE分布式技术之Zookeeper的第一次课
JAVAEE分布式技术之Zookeeper的第一次课
73 0
|
5天前
|
监控 NoSQL Java
Zookeeper分布式锁
Zookeeper分布式锁
92 1
|
3天前
|
前端开发 JavaScript 算法
分布式系统的一致性级别划分及Zookeeper一致性级别分析
分布式系统的一致性级别划分及Zookeeper一致性级别分析
|
5天前
|
NoSQL 中间件 API
分布式锁【数据库乐观锁实现的分布式锁、Zookeeper分布式锁原理、Redis实现的分布式锁】(三)-全面详解(学习总结---从入门到深化)(下)
分布式锁【数据库乐观锁实现的分布式锁、Zookeeper分布式锁原理、Redis实现的分布式锁】(三)-全面详解(学习总结---从入门到深化)
90 2