分布式架构专题—分布式协调服务 zookeeper

Zookeeper 详解:分布式协调服务的核心概念与实践 Zookeeper 是一个开源的分布式协调服务,用于分布式应用程序中的数据管理和协调。它提供了一套简单而有效的原语,用于实现诸如配置管理、同步、组服务和命名等复杂的分布式系统任务。 阅读详情

前言:

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终,将简单易用的接口和性能高效、功能稳定的系统提供给用户

中心化和去中心化:

分布式架构里面,很多的架构思想采用的是:当集群发生故障的时候,集群中的人群会自动“选举”出一个新的领导,最典型的是:zookeeper/etcd。

典型的 CAP/BASE 理论:

CAP 理论:

C:(一致性 Consistency):所有的节点上的数据时刻保持一致

A:(可用性 Avaliable):每个请求都能够收到一个响应,无论响应成功或者失败。

P:(分区容错 Partition-tolerance):表示系统出现脑裂之后,可能导致默写server与集群中的其他机器失去联系。

CAP 理论仅适用于Nosql场景,不适用于数据库系统,或者原子读写。

BASE 理论:

基于CAP理论,CAP理论并不适用于数据库事务(因为更新一些错误的数据而导致数据出现紊乱,无论什么样的数据库高可用方案都是徒劳),虽然XA 事务虽然可以保证数据库在分布式系统下的ACID特性,但是会带来性能方面的影响。

eBay 尝试了一种完全不同的套路,放宽了对事务的ACID的要求,提出了BASE理论

Basically avaliable 分片:数据库采用分片模式,把100W的用户数据分布在5个实例上,如果破坏了其中一个实例,还可以保证80%的用户可以访问数据库。

soft-state 软状态:在基于client/server模式的系统中,server端是否有状态,决定了系统是否具备良好的水平扩展,负载均衡,故障恢复等特性。server端承诺会维护 client 端状态数据,这个状态仅仅维持一小段时间,这段时间以后,server端就会丢失这个状态,恢复正常状态。

Eventually consistent:数据的最终一致性。

初步认识zookeeper:

zookeeper 是一个开源的分布式协调服务,是由雅虎创建的,基于google chubby。

是什么:是一个分布式数据一致性的解决方案。

能做什么:数据的发布/订阅(配置中心:disconf),负载均衡(dubbo利用zookeeper机制实现的),命名服务,master 选举(kafka,Hadoop,HBASE),分布式队列,分布式锁。

zookeeper 的特性:

顺序一致性:同一个客户端搭起的事务请求,最终会严格按照顺序被应用到zookeeper中。

原子性:所有的事务请求的处理结果在整个集群中的所有机器上的应用情况是一致的,也就是说,要么整个集群中的所有的机器都成功应用了某一个事务,要么都不应用。

可靠性:一旦服务器成功应用了某一个事务数据,并且对客户端做了响应,那么这个数据在整个集群中一定是同步并且保留下来的。

实时性:一旦一个事务被成功应用,客户端就能够立即从服务器读取到事务变更后的最新数据状态;(zookeeper 仅仅保证在一定时间内,近实时)

单机环境下 安装zookeeper:

1.下载zookeeper 的安装包。

https://archive.apache.org/dist/zookeeper/stable/

2.解压 zookeeper  :

解压:tar -zxvf zookeeper-3.5.5.tar.gz   

3.进入zookeeper-3.5.5:cd zookeeper-3.5.5/

进入 conf 目录下:cd conf/

复制一份 zoo_sample.cfg:cp zoo_sample.cfg  zoo.cfg

进入 zoo.cfg:vim zoo.cfg

进入bin目录中:cd ../bin/
有很多shell脚本

4.启动zookeeper: sh zkServer.sh xxx

看到很多命令,键入:sh zkServer.sh start 进行启动

5.连接zookeeper:sh zkCli.sh -server localhost:2181 (2181 zookeeper 默认端口号)

集群环境下安装zookeeper:

zookeeper 集群,包含三种角色:leader/follower/observer

Leader:接收所有Follower 的提案请求并统一协调发起提案的投票,负责与所有的Follower 进行内部的数据交换(同步);

Follower:直接为客户端服务并参与提案的投票,同时与Leader 进行数据交换(同步);

Observer:直接为客户端服务单并不参与提案的投票,同时也与Leader 进行数据交换(同步)。

搭建集群:

比如以下三台机器:

192.168.11.129

192.168.11.131

192.168.11.135

分别在三台机器中安装zookeeper并解压,进行启动测试,此处省略。

第一步:修改配置文件 zoo.cfg

vim zoo.cfg 

加入:

server.1=192.168.11.129:2181:3181

server.2=192.168.11.131:2181:3181

server.3=192.168.11.135:2181:3181

进行配置。

既:server.id=host:port:port  且 id不能重复,id 的取值范围是:1~255,用id来标识该机器再集群中的机器序列。

2181 代表zookeeper的端口号;后续客户端连接到zookeeper服务端需要这个端口号,zookeeper各个服务节点之间通信的一个端口号。

3181代表leader选举端口号;

server.x 代表集群中每台机器

第二步:创建myid.

dataDir:表示数据文件存储的目录,如:快照,事务日志。

在每一个服务器的dataDir 目录下创建一个myid的文件,文件就一行数据,数据内容是每台机器对应的serverID的数字。

第三步:启动zookeeper。

 

 

未完结,待续。。。

ZooKeeper(分布式协调服务)使用介绍 包含最全MySQL、Redis、Java并发编程等等面试题和答案,用于参考~ 阅读详情

相关推荐

ZooKeeper架构篇 - 分布式协调服务ZooKeeper

本文介绍分布式协调服务-ZooKeeper

The Secret 744

腾讯云分布式高可靠消息队列CMQ架构

在分布式大行其道的今天,我们在系统内部、平台之间广泛运用消息中间件进行数据交换及解耦。CMQ是腾讯云内部自研基于的高可靠、强一致、可扩展分布式消息队列,在腾讯内部包括微信手机QQ业务红包、腾讯话费充值、广告订单等都有广泛使用。目前已上线腾讯云对外开放,本文对腾讯云CMQ 核心技术原理进行分享介绍。 CMQ消息队列主要适用于金融、交易、订单等对可靠性、可用性有较高要求的业务场景。 以腾讯

tengxy_cloud的专栏 1024

Zookeeper分布式协调服务核心原理

Zookeeper 是一个开源的分布式协调服务,主要用于解决分布式系统中的数据一致性和协调问题。其核心设计目标是提供高性能、高可用且严格有序的分布式一致性服务。

HTTP404_CN的博客 957

Zookeeper详细使用解析!分布式架构中的协调服务框架最佳选型实践

Zookeeper详尽应用分析!分布式架构中的融洽服务项目架构最好型号选择实践活动 Zookeeper定义 Zookeeper是分布式系统融洽服务项目,用以管理方法大中型服务器,在分布式系统自然环境中融洽和管理服务是很繁杂的全过程,Zookeeper根据简易的构架和API解决了这个问题 Zookeeper完成分布式锁 分布式锁三要素: 上锁 开启 锁请求超时 Zookeeper算法设计相近树形结构,由连接点Znode构成 Znode分成四种种类:

刀客源码网 250

从零开始:手把手教你设计DP接口电路(含原理图实战)

本文是一份详尽的DisplayPort接口电路设计实战指南。文章从DP接口的核心架构与HDMI的差异讲起,手把手解析了高速差分对、AUX辅助通道、热插拔检测等关键模块的原理图设计要点,并提供了一个完整的DP Source端原理图实例,最后总结了PCB布局与信号完整性的核心考量,旨在帮助硬件工程师高效、稳定地完成DP接口电路设计。

transformer2023的博客 733

PostgreSQL数据库全攻略:从入门到精通

本文是一份PostgreSQL数据库综合指南,涵盖安装配置、基础操作和高级管理。主要内容包括:1) PostgreSQL简介与各平台安装方法;2) 数据库基本操作,如创建数据库/表、CRUD操作、用户权限管理;3) 高级功能包括索引优化、事务控制、视图、存储过程、触发器和扩展模块;4) 数据库管理维护,涉及配置调优、备份恢复、性能监控和日常维护;5) 安全设置与高可用方案。指南提供了从入门到进阶的实用知识,强调结合官方文档进行深入学习,帮助用户高效使用这一功能强大的开源关系型数据库系统。

索大神的博客 1969

Zookeeper: 一个分布式应用程序协调服务

Zookeeper: A Service for Coordinating Processes of Distributed ApplicationsA Scalable,reliable,robust centrailized service ZooKeeper是一个开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等。Zooke

lilele12211104的专栏 6926

AI量化投资开源平台——Qlib(微矿)的学习使用笔记(随缘更新)

Qlib 涵盖了量化投资的全过程,为用户的 AI 算法提供了高性能的底层基础架构,从框架设计上让用户可以更容易地应用 AI 算法来辅助解决量化投资的各个关键问题(例如 Alpha 预测,风险预测,市场动态性建模)。本文旨在记录一些面向初学者的基础内容。

in_void的博客 3133

【架构】分布式协调服务-zookeeper

前言 小编最近接触分布式的学习,对于分布式协调服务zookeeper有了一定的了解,现在简单地总结一下这块的知识。奉上一张导图: 分布式环境 一、特点 分布性、并发性、无序性 分布性:部署两台以上的服务器,多个节点分布开来; 并发性:同一个分布式系统中的多个节点,同时访问一个共享资源,如数据库、分布式存储; 无序性:进程之间的消息通...

冯浩月 424

HFSS 3D Layout一键导入PCB,高效搞定微带线损耗仿真

在高速PCB设计中,信号完整性与电磁仿真是确保链路质量的关键环节。传统的HFSS手动建模流程繁琐且极易出错,尤其面对微带线、带状线等高频结构时,叠层参数、铜箔粗糙度等细节难以精准还原,导致仿真结果与实测偏差较大。HFSS 3D Layout模块提供了从EDA工具直接导入PCB文件的能力,完整保留走线、过孔、叠层及材料属性,结合精确的介质损耗模型与端口设置,大幅缩短建模时间并提升仿真精度。该技术广泛应用于DDR、SerDes等高速数字链路的设计验证,以及SI/PI工程师对PCB损耗性能的快速评估。本文从导入操

weixin_29191081的博客 254

基于MediaPipe的智能俯卧撑计数与姿势矫正系统

在现代健身和体能训练中,俯卧撑是最基础也是最有效的自重训练动作之一。然而,许多人在进行俯卧撑训练时常常存在姿势不正确、计数不准确等问题。本文将介绍如何利用计算机视觉和姿态估计技术,开发一个智能的俯卧撑计数与姿势矫正系统。

qq_36224726的博客 916

ZooKeeper架构深度解析:分布式协调服务的核心设计与实现

ZooKeeper:分布式协调服务的核心架构解析 摘要 ZooKeeper是Apache开源的高性能分布式协调服务,为分布式系统提供一致性、可靠性和高效性的基础支持。其核心架构设计包括: 层次化命名空间:采用类似文件系统的树形结构(ZNode),支持多种节点类型(持久、临时、顺序节点) 强一致性保证:基于ZAB协议实现原子广播,确保数据顺序一致性和可靠性 高可用集群:Leader-Follower架构,支持故障自动恢复和数据同步 事件监听机制:Watcher机制实现高效的节点变更通知 丰富的应用场景:广泛用

言不信者行不果,行不敏者言多滞. 3008

AI 实战篇 |基于 AI开放平台实现 人脸识别对比 功能,超详细教程【附带源码】

本篇文章来学习一下怎样使用 Unity实现简单地人脸识别 功能。 关于人脸识别,我们可以选择很多平台的SDK接入Unity来实现人脸识别的功能。

努力前行,总会成为自己心中的那道光 5万+

分布式协调服务-ZooKeeper

What is ZooKeeper?

!!! 1973

30. 如何使用 SEGW 的 redefine 功能对 SAP 标准 OData 服务进行扩展

SAP 发布了很多标准的 Fiori 应用,可以通过笔者的文章里提到的进行浏览。比如 My Opportunities 就是 SAP CRM 领域的一个 Fiori 应用:下图是 Opportunity 明细页面的 Info 标签页:假设我们想在这些标准字段的末尾增添一个新字段 Created By,用来维护当前 Opportunity 的创建者。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1171

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Zookeeper分布式协调服务全解析

Zookeeper是一个分布式协调服务框架,用于解决集群中的一致性和数据管理问题。它基于观察者模式,提供文件系统和通知机制,确保数据一致性、顺序性和原子性。集群安装需要至少3台同步时钟的服务器,配置包括修改zoo.cfg文件、设置myid值、分发安装包和配置环境变量。启动后,集群会选举一个Leader和多个Follower。关闭时应按顺序操作:先关闭Zookeeper集群,再关闭虚拟机。Zookeeper广泛应用于Hadoop高可用等分布式场景。

渣渣盟的博客 3872

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

【分布式技术】中间件-分布式协调服务zookeeper

ZooKeeper 是一个分布式协调服务,它为分布式应用程序提供了一套完整的协调服务功能,包括命名服务、状态同步、集群管理、配置维护以及分布式锁等功能。ZooKeeper 的设计目标是简化分布式应用程序的开发工作,使得开发者不需要从头开始实现这些复杂的协调机制。ZooKeeper 是一个非常有用的工具,特别是在构建复杂的分布式系统时。它通过提供一系列协调服务来简化开发者的任务,使得开发者可以专注于业务逻辑而不是底层的协调机制。不过,使用ZooKeeper也需要考虑它的性能和可靠性,尤其是在大规模集群环境中。

wendao76的专栏 2001

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Zookeeper分布式协调服务

本文简述了,什么是zookeeper,zookeeper提供的文件系统和通知机制,作用,特性,安装,znode节点的存储格式以及什么是分布式系统,分布式系统存在的问题和解决方法

m0_62689947的博客 1619

ZooKeeper--分布式协调服务

现在我们大多数应用都是采用的是分布式开发的应用,搭建到不同的服务器上,我们的配置文件,同一个应用程序的配置文件一样,还有就是多个程序存在相同的配置,当我们配置文件中有个配置属性需要改变,需要改变每个程序的配置属性,这样会很麻烦的去修改配置,那么可用使用ZooKeeper来实现配置中心。为了实现 服务注册与发现,ZooKeeper 提供了一个集中的注册服务,服务节点可以将自己的信息注册到 ZooKeeper 中,客户端则可以从 ZooKeeper 上发现并获取这些服务节点的信息。才会认为写操作成功。

flytalei的博客 1419

大数据基础——分布式协调服务(zookeeper)

分布式协调服务——zookeeper 1 : zookeeper 概述: 1.1 : zookeeper简介: zookeeper是一个分布式的, 开源的分布式应用程序协调服务,是对Google的Chubby组件的开源实现,为Hadoop和HBase的运行提供了相应的服务.他是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护(使得集群中的机器可以共享配置信息中的那些公共的部分);命名服务(是指通过指定的名字来获取资环或者服务的地址,以及提供者的信息,利用zookeeper可以很容易的创建一个

lixufei12138的博客 4019

Zookeeper:分布式协调服务

Zookeeper分布式协调服务:核心能力、应用场景、基础操作

xike1024的博客 1163

ZooKeeper架构深度解析:分布式协调服务的核心设计

摘要: 本文深入解析ZooKeeper的核心原理与应用场景。首先明确其作为分布式协调服务的定位,通过ZNode实现分布式锁、配置同步等功能。通过Java客户端连接示例,详解关键参数配置与连接状态监控。重点剖析ZooKeeper五大特性(顺序一致性、原子性等)及其生产实践中的典型案例与注意事项,强调特性细节对系统稳定性的影响。最后介绍ZNode的层次化命名空间设计,区分不同节点类型的适用场景,为分布式系统开发提供可靠协调方案。

没事学AI的博客 1116

深入解析 ZooKeeper:分布式协调服务的原理与应用

在当今复杂的分布式系统环境中,协调各个组件之间的工作、管理集群状态以及实现高效的服务发现等功能至关重要。ZooKeeper 作为一款强大的开源分布式协调服务,为解决这些问题提供了有效的方案。它在众多大型分布式系统中扮演着核心角色,助力系统实现高可用性、一致性和高效的协同工作。本文将深入探讨 ZooKeeper 的相关知识,包括其定义、应用场景、工作原理、通知机制以及节点监听的特性等内容,帮助读者全面了解和掌握 ZooKeeper 的奥秘。

guihong004的博客 1848

Apache ZooKeeper 分布式协调服务

核心定位:分布式系统的协调服务,提供强一致性的配置管理、命名服务、分布式锁和集群管理能力核心模型:基于树形节点(ZNode)的键值存储,支持 Watcher 监听机制生态地位:Hadoop/ Kafka 等生态核心依赖,分布式系统基础设施级组件。

slovess的博客 1243

ZooKeeper分布式协调框架

ZooKeeper分布式协调框架 1. 为什么要用ZooKeeper ZooKeeper简单易用,能够很好的解决分布式框架在运行中,出现的各种协调问题。比如集群master主备切换、节点的上下线感知等等 2. 什么是ZooKeeper? ZooKeeper是一个分布式的,开放源码的,用于分布式应用程序的协调服务(service);是Google的Chubby的一个开源实现版 3. ZooKeeper应用概览 service 攘其外,安其内 简单:原语 paxos -> raft -> zab

大锤 9263
上一篇: 分布式架构专题(一)概述
下一篇: 深入理解java虚拟机专题—实战 OutOfMemoryError 异常
MoveFlower
博客等级 码龄10年 23粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值