【1】Zookeeper概述

一、前言

在“网络是不可靠的”这一前提下,分布式系统开发需要解决如下四个问题:

  • 客户端如何访问众多服务?
    ?解决方案:服务聚合,使用API网关
  • 服务于服务之间如何通信?
    ?解决方案:
    ??同步通讯:HTTP(Apache http client)、 RPC(Dubbo、Apache Thrift、gRPC)
    ??异步通讯:消息队列(Kafka Rabbitmq Rockermq)
  • 众多服务,如何进行管理(实现高可用、高并发、高性能)?
    ?解决方案:服务治理,采用服务注册与发现,包括
    ??基于客户端的服务注册与发现:Apache Zookeeper
    ??基于服务端的服务注册于发现:Netflix Eureka
  • 服务挂了怎么办?
    ?解决方案:重试机制、服务熔断、服务降级、服务限流

目前流行的微服务架构解决方案:

  • Spring Boot + Spring Cloud
  • Spring Boot + Dubbo + Zookeeper

二、Zookeeper是什么?

2.1、Zookeeper简介

??ZooKeeper是一个开放源代码的分布式协调服务,由知名互联网公司雅虎创建,是Google Chubby的开源实现。ZooKeeper的设计目标是将那些复杂且容易出错的分布式一致性服务封装起来,构成一个高效可靠的原语集,并以一系列简单易用的接口提供给用户使用。

2.2、Zookeeper本质

??分布式锁:在同一台JVM上使用多线程异步的方式实现对临界资源的访问,而在分布式系统中为了防止多个进程之间相互干扰,需要使用分布式协调技术。
??分布式协调技术:主要用来解决分布式环境当中多个进程之间的同步控制,保证各个进程有序的访问某些临界资源,防止造成“脏数据“。
??分布式协调技术的核心就是实现分布式锁。
??ZooKeeper是分布式协调服务,Zookeeper的本质就是分布式锁的实现框架

2.3、Zookeeper特性

  • 顺序一致性
    ??从同一个客户端发起的事务请求,最终将会严格地按照其发起顺序被应用到ZooKeeper中去。
  • 原子性
    ??所有事务请求的处理结果在整个集群中所有机器上的应用情况是一致的,也就是说,要么整个集群所有机器都成功应用了某一个事务,要么都没有应用,一定不会出现集群中部分机器应用了该事务,而另外一部分没有应用的情况。
  • 单一视图
    ??无论客户端连接的是哪个ZooKeeper服务器,其看到的服务端数据模型都是一致的。
  • 可靠性
    ??一旦服务端成功地应用了事务,并完成对客户端的响应,那么该事务所引起的服务端状态变更将会一直保留下来,除非有另一个事务又对其进行了变更。
  • 实时性
    ??通常人们看到实时性的第一反应是,一旦一个事务被成功应用,那么客户端能够立即从服务端上读取到这个事务变更后的最新数据状态。这里需要注意的是,ZooKeeper仅仅保证了在一定的时间段内,客户端最终一定能够从服务端上读取到最新的数据状态。

三、Zookeeper能干什么?

??Zookeeper典型应用场景包括:数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master选举、分布式锁、分布式队列。

原文地址:https://www.cnblogs.com/DeepInThought/p/11066919.html

时间: 2024-10-13 02:12:19

【1】Zookeeper概述的相关文章

Zookeeper概述、特点、数据模型

Zookeeper 1.Zookeeper概述 Zookeeper是一个工具,可以实现集群中的分布式协调服务. 所谓的分布式协调服务,就是在集群的节点中进行可靠的消息传递,来协调集群的工作. Zookeeper之所以能够实现分布式协调服务,靠的就是它能够保证分布式数据一致性. 所谓的分布式数据一致性,指的就是可以在集群中保证数据传递的一致性. Zookeeper能够提供的分布式协调服务包括:数据发布订阅.负载均衡.命名服务.分布式协调/通知.集群管理.分布式锁.分布式队列等功能 2.Zookee

ZooKeeper概述(转)

ZooKeeper是一个用于分布式应用的开源分布式协调服务.它提供了简单的原语集合,分布式应用可在这些原语之上构建用于同步.配置维护.分组和命名的高层服务.ZooKeeper的设计使得编程容易,并且使用类似于广泛熟知的文件系统目录树结构的数据模型.它运行在Java环境中,但是有Java和C语言绑定. 分布式协调服务是出了名的难得编写正确,很容易出现竞争条件和死锁之类的错误.ZooKeeper的动机是减轻为分布式应用开发协调服务的负担. 1 设计目标 1.1 简单 ZooKeeper让分布式进程可

ZooKeeper概述及其安装

ZooKeeper笔记 ZooKeeper概述 背景: 现代企业对计算机系统的计算存储能力要求越来越高,单纯的高性能服务器已经无法满足要求.企业的IT架构从集中式向分布式过度.所谓分布式,就是将一个计算任务分解成若干计算单元,分派到不同的计算机中去执行,然后汇总计算结果的过程. ZooKeeper是源代码开放的分布式协调服务,是高性能的分布式一致性解决方案.它将那些复杂的.容易出错的分布式一致性服务封装起来,构成一个高效的原语集,并提供一系列简单易用的接口给用户使用 分布式数据一致性问题,指的是

Zookeeper概述和基本概念

一.Zookeeper背景 随着互联网技术的发展,企业对计算机系统的计算,存储能力要求越来越高,各大IT企业都在追求高并发,海量存储的极致,在这样的背景下,单纯依靠少量高性能单机来完成计算机,云计算的任务已经无法满足需求,企业的IT架构逐渐由集中式往分布式过渡.所谓的分布式是指:把一个计算任务分解成若干个计算单元,并分派到不同的计算机中去执行,最终汇总计算结果的过程. 二.Zookeeper概述 Zookeeper是源代码开放的分布式协调服务,是一个高性能的分布式数据一致性的解决方案,它将那些复

ZooKeeper概述

1.Zookeeper概述 Zookeeper 是 Google 的 Chubby一个开源的实现,是 Hadoop 的分布式协调服务.它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等. Zookeeper的角色:  zk可以用来保证数据在zk集群之间的数据的事务性一致. 解释:如果客户端client1改变了server1的数据文件1,那么其它server的数据文件1也同时改变,那么其他客户端也能访问到改变了的数据文件. 2.为什么使用Zookeeper? 大部分

Zookeeper 概述

ZooKeeper是一种分布式协调服务,用于管理大型主机.在分布式环境中协调和管理服务是一个复杂的过程.ZooKeeper通过其简单的架构和API解决了这个问题.ZooKeeper允许开发人员专注于核心应用程序逻辑,而不必担心应用程序的分布式特性. ZooKeeper框架最初是在"Yahoo!"上构建的,用于以简单而稳健的方式访问他们的应用程序. 后来,Apache ZooKeeper成为Hadoop,HBase和其他分布式框架使用的有组织服务的标准. 例如,Apache HBase使

zookeeper_01:zookeeper概述

应对场景: 相对于开发在一台计算机上运行的单个程序,如何让一个应用中的多个独立的程序协同工作是一件非常困难的事情.开发这样的应用,很容易让很多开发人员陷入如何使多个程序协同工作的逻辑中,最后导致没有时间更好地思考和实现他们自己的应用程序逻辑:又或者开发人员对系统逻辑关注不够,只是用很少的时间开发了一个简单脆弱的主协调器,导致不可靠的单一失效点. ZooKeeper使命: 在分布式系统中协作多个任务.一个协作任务指一个包含多个进程的任务.这个任务可以是为了协作或者是为了管理竞争.协作意味着多个进程

十四、Hadoop学习笔记————Zookeeper概述

顺序一致性:严格按照顺序在zookeeper上执行 原子性:所有事物请求的结果,在整个集群的应用情况一致 单一视图:无论从哪个服务器进入集群,看到的东西都是一致的 可靠性:服务端成功响应后,状态会 一直保留 3台的zookeeper集群达到12-13万QPS

Zookeeper简单介绍

转自:ZooKeeper学习第一期---Zookeeper简单介绍 一.分布式协调技术 在给大家介绍ZooKeeper之前先来给大家介绍一种技术--分布式协调技术.那么什么是分布式协调技术?那么我来告诉大家,其实分布式协调技术 主要用来解决分布式环境当中多个进程之间的同步控制,让他们有序的去访问某种临界资源,防止造成"脏数据"的后果.这时,有人可能会说这个简单,写一个调 度算法就轻松解决了.说这句话的人,可能对分布式系统不是很了解,所以才会出现这种误解.如果这些进程全部是跑在一台机上的