当前位置: 首页 > article >正文

【Zookeeper】一、Zookeeper的使命

摩尔定律揭示了集成电路每18个月计算性能就会增加一倍。

Zookeeper以Fast Paxos算法为基础。

在一个大型应用中,经常会按照功能边界将应用分为多个模块,这些模块可以分别独立部署。而要完成某一项具体的功能,不能仅靠其中一个模块,需要多个模块一起配合工作。如何让一个应用中多个模块之间协同工作是一件非常困难的事情。

Zookeeper的设计保证了健壮性,可以让开发者更多的关注到自己的应用程序逻辑本身,不必过多的考虑程序模块之间的协同工作。

关于zookeeper的核心功能

用于在分布式系统中协作多个任务,一个协作任务是指一个包含多个进程的任务。这个任务可以是为了协作和管理竞争。

协作是指多个进程共同处理某些事情,一个进程采取某些行动使得其他进程可以继续工作。比如在典型的主从架构中,从节点处于空闲状态会通知主节点,说明其可以接收下一项任务,于是主节点便会分配任务给从节点。

竞争是指两个进程不能同时处理一项工作,其中一个进程必须等待另一个进程处理完成才能继续进行。例如还是在主从架构中,进行主节点选举时,很多节点都想成为主节点,所以此时必须通过互斥排他锁来保证只有一个节点成为主节点。

Zookeeper使用实例
HBase

在HBase中,Zookeeper用于选举一个集群内的主节点。

Kafka

在Kafka中,Zookeeper用于崩溃检测,实现主题(Topic)的发现,并保持主题的生产和消费状态。

Zookeeper名字的来源

ZooKeeper由雅虎研究院开发。小组也一同致力于Hadoop项目,参与了很多动物命名的项目,其中有广为人知的Apache Pig项目。

分布式系统就像动物园中的各种动物,混乱且难以管理,而Zookeeper就是将这一切变得可控。

Zookeeper解决了什么问题

使用ZooKeeper可以让开发人员更专注于其应用本身的逻辑而不是神秘的分布式系统概念。

Zookeeper不适合的场景

ZooKeeper不适合用作海量数据存储。

关于分布式系统的定义

同时跨越多个物理主机,独立运行的多个软件组件所组成的系统。

为什么要采用分布式去设计系统
  • 充分利用多处理器的运算能力来运行组件。
  • 一个系统由于战略的原因,需要分布在多个地域,例如一个应用需要多个不同地点的服务器提供服务。
分布式系统的各进程之间如何通信?
  • 通过网络进行信息交换。
  • 读写某些共享存储。

网络通信是分布式系统中并发设计的基础。


http://www.kler.cn/a/400544.html

相关文章:

  • mysql 的乐观锁和 mvcc 是一回事吗
  • 网页作业9
  • 理解 Python 中的 __getitem__ 方法:在自定义类中启用索引和切片操作
  • SQL MID() 函数详解
  • candence : 如何利用EXCEL 绘制复杂、多管脚元件
  • ubuntu20.04 更换清华源报错
  • 激光雷达不够用,怎么办?Ubuntu如何用一个激光雷达实现两个激光雷达的扫描点云效果?点云配准ICP,点云拼接、话题转换、ROS重录制bag包。
  • 互联网演进跨越半世纪,智能化时代呼唤Net5.5G网络新代际
  • React 教程第一节 简介概述 以及 特点
  • 新版华为认证全套资料(题库试题、知识点速记、考试大纲、思维导图、面试宝典)
  • WebSocket实战,后台修改订单状态,前台实现数据变更,提供前端和后端多种语言
  • 智能停车解决方案之停车场室内导航系统(二):核心技术与系统架构构建
  • 如何利用CSS制作导航菜单
  • 网约车治理:构建安全、高效、规范的出行新生态
  • i18n的原理是什么,spring整合i18n
  • nodejs+mysql+vue3 应用实例剖析
  • DAY66||Floyd 算法精讲 |A * 算法精讲 (A star算法)|最短路算法总结篇|图论总结
  • PyTorch 与 TensorFlow 模型搭建的区别
  • 前端处理input框只能输入带小数点的数字
  • gin源码阅读(1)URL中的参数是如何解析的?
  • FastApi学习第二天:Pydantic对数据的校验和Form表单数据
  • 力扣题解661 图片平滑器
  • 三周精通FastAPI:42 手动运行服务器 - Uvicorn Gunicorn with Uvicorn
  • 群控系统服务端开发模式-应用开发-前端管理员功能开发
  • BLE 蓝牙客户端和服务器连接
  • 纯前端实现语音文字互转