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

广安建设厅官方网站摄影网站的设计与实现开题报告

广安建设厅官方网站,摄影网站的设计与实现开题报告,队徽logo在线设计,要怎么网站做推广zookeeper 本文由 简悦 SimpRead 转码#xff0c; 原文地址 zhuanlan.zhihu.com 前言 只有光头才能变强。 文本已收录至我的 GitHub 仓库#xff0c;欢迎 Star#xff1a;https://github.com/ZhongFuCheng3y/3y 上次写了一篇 什么是消息队列#xff1f;以后#xff0c;本来…zookeeper 本文由 简悦 SimpRead 转码 原文地址 zhuanlan.zhihu.com 前言 只有光头才能变强。 文本已收录至我的 GitHub 仓库欢迎 Starhttps://github.com/ZhongFuCheng3y/3y 上次写了一篇 什么是消息队列以后本来想入门一下 Kafka 的 (装一下环境、看看 Kafka 一些概念啥的)。后来发现 Kafka 用到了 ZooKeeper而我又对 ZooKeeper 不了解所以想先来学学什么是 ZooKeeper再去看看什么是 Kafka。 ZooKeeper 相信大家已经听过这个词了不知道大家对他了解多少呢我第一次听到 ZooKeeper 的时候是在学 Eureka 的时候外行人都能看懂的 SpringCloud错过了血亏同样 ZooKeeper 也可以作为注册中心。 后面听到 ZooKeeper 的时候是因为 ZooKeeper 可以作为分布式锁的一种实现。 直至在了解 Kafka 的时候发现 Kafka 也需要依赖 ZooKeeper。Kafka 使用 ZooKeeper 管理自己的元数据配置。 这篇文章来写写我学习 ZooKeeper 的笔记如果有错的地方希望大家可以在评论区指出。 一、什么是 ZooKeeper 从上面我们也可以发现好像哪都有 ZooKeeper 的身影那什么是 ZooKeeper 呢我们先去官网看看介绍 官网还有另一段话 ZooKeeper: A Distributed Coordination Service for Distributed Applications 相比于官网的介绍我其实更喜欢 Wiki 中对 ZooKeeper 的介绍 (留下不懂英语的泪水) 我简单概括一下 ZooKeeper 主要服务于分布式系统可以用 ZooKeeper 来做统一配置管理、统一命名服务、分布式锁、集群管理。 使用分布式系统就无法避免对节点管理的问题 (需要实时感知节点的状态、对节点进行统一管理等等)而由于这些问题处理起来可能相对麻烦和提高了系统的复杂性ZooKeeper 作为一个能够通用解决这些问题的中间件就应运而生了。 二、为什么 ZooKeeper 能干这么多 从上面我们可以知道可以用 ZooKeeper 来做统一配置管理、统一命名服务、分布式锁、集群管理。 这里我们先不管统一配置管理、统一命名服务、分布式锁、集群管理每个具体的含义 (后面会讲) 那为什么 ZooKeeper 可以干那么多事来看看 ZooKeeper 究竟是何方神物在 Wiki 中其实也有提到 ZooKeeper nodes store their data in a hierarchical name space, much like a file system or a tree data structure ZooKeeper 的数据结构跟 Unix 文件系统非常类似可以看做是一颗树每个节点叫做 ZNode。每一个节点可以通过路径来标识结构图如下 那 ZooKeeper 这颗 “树” 有什么特点呢ZooKeeper 的节点我们称之为 ZnodeZnode 分为两种类型 短暂 / 临时 (Ephemeral)当客户端和服务端断开连接后所创建的 Znode(节点) 会自动删除持久 (Persistent)当客户端和服务端断开连接后所创建的 Znode(节点) 不会删除 ZooKeeper 和 Redis 一样也是 C/S 结构 (分成客户端和服务端) 2.1 监听器 在上面我们已经简单知道了 ZooKeeper 的数据结构了ZooKeeper 还配合了监听器才能够做那么多事的。 常见的监听场景有以下两项 监听 Znode 节点的数据变化监听子节点的增减变化 没错通过监听 Znode 节点 (持久 / 短暂 [临时])ZooKeeper 就可以玩出这么多花样了。 三、ZooKeeper 是怎么做到的 下面我们来看看用 ZooKeeper 怎么来做统一配置管理、统一命名服务、分布式锁、集群管理。 3.1 统一配置管理 比如我们现在有三个系统 A、B、C他们有三份配置分别是ASystem.yml、BSystem.yml、CSystem.yml然后这三份配置又非常类似很多的配置项几乎都一样。 此时如果我们要改变其中一份配置项的信息很可能其他两份都要改。并且改变了配置项的信息很可能就要重启系统 于是我们希望把ASystem.yml、BSystem.yml、CSystem.yml相同的配置项抽取出来成一份公用的配置common.yml并且即便common.yml改了也不需要系统 A、B、C 重启。 做法我们可以将common.yml这份配置放在 ZooKeeper 的 Znode 节点中系统 A、B、C 监听着这个 Znode 节点有无变更如果变更了及时响应。 参考资料 基于 zookeeper 实现统一配置管理 https://blog.csdn.net/u011320740/article/details/78742625 3.2 统一命名服务 统一命名服务的理解其实跟域名一样是我们为这某一部分的资源给它取一个名字别人通过这个名字就可以拿到对应的资源。 比如说现在我有一个域名www.java3y.com但我这个域名下有多台机器 192.168.1.1192.168.1.2192.168.1.3192.168.1.4 别人访问www.java3y.com即可访问到我的机器而不是通过 IP 去访问。 3.3 分布式锁 锁的概念在这我就不说了如果对锁概念还不太了解的同学可参考下面的文章 Java 锁分布式锁乐观锁行锁 我们可以使用 ZooKeeper 来实现分布式锁那是怎么做的呢下面来看看 系统 A、B、C 都去访问/locks节点 访问的时候会创建带顺序号的临时 / 短暂 (EPHEMERAL_SEQUENTIAL) 节点比如系统 A 创建了id_000000节点系统 B 创建了id_000002节点系统 C 创建了id_000001节点。 接着拿到/locks节点下的所有子节点 (id_000000,id_000001,id_000002)判断自己创建的是不是最小的那个节点 如果是则拿到锁。 释放锁执行完操作后把创建的节点给删掉 如果不是则监听比自己要小 1 的节点变化 举个例子 系统 A 拿到/locks节点下的所有子节点经过比较发现自己 (id_000000)是所有子节点最小的。所以得到锁 系统 B 拿到/locks节点下的所有子节点经过比较发现自己 (id_000002)不是所有子节点最小的。所以监听比自己小 1 的节点id_000001的状态 系统 C 拿到/locks节点下的所有子节点经过比较发现自己 (id_000001)不是所有子节点最小的。所以监听比自己小 1 的节点id_000000的状态 …… 等到系统 A 执行完操作以后将自己创建的节点删除 (id_000000)。通过监听系统 C 发现id_000000节点已经删除了发现自己已经是最小的节点了于是顺利拿到锁 …. 系统 B 如上 3.4 集群状态 经过上面几个例子我相信大家也很容易想到 ZooKeeper 是怎么 感知 节点的动态新增或者删除的了。 还是以我们三个系统 A、B、C 为例在 ZooKeeper 中创建临时节点即可 只要系统 A 挂了那/groupMember/A这个节点就会删除通过监听groupMember下的子节点系统 B 和 C 就能够感知到系统 A 已经挂了。(新增也是同理) 除了能够感知节点的上下线变化ZooKeeper 还可以实现动态选举 Master 的功能。(如果集群是主从架构模式下) 原理也很简单如果想要实现动态选举 Master 的功能Znode 节点的类型是带顺序号的临时节点 (EPHEMERAL_SEQUENTIAL) 就好了。 Zookeeper 会每次选举最小编号的作为 Master如果 Master 挂了自然对应的 Znode 节点就会删除。然后让新的最小编号作为 Master这样就可以实现动态选举的功能了。 最后 这篇文章主要讲解了 ZooKeeper 的入门相关的知识ZooKeeper 通过 Znode 的节点类型 监听机制就实现那么多好用的功能了 当然了ZooKeeper 要考虑的事没那么简单的后面有机会深入的话我还会继续分享希望这篇文章对大家有所帮助~ 参考资料 分布式服务框架 Zookeeper https://www.ibm.com/developerworks/cn/opensource/os-cn-zookeeper/index.html ZooKeeper 初识整理 (老酒装新瓶) https://lxkaka.wang/2017/12/21/zookeeper/ ZooKeeper https://www.cnblogs.com/sunshine-long/p/9057191.html ZooKeeper 的应用场景 https://zhuanlan.zhihu.com/p/59669985 Redis分布式锁 乐观锁和悲观锁
http://www.w-s-a.com/news/616643/

相关文章:

  • 内蒙古城乡建设部网站首页平台网站建设ppt
  • 集约化网站建设项目官方网站建设
  • 原创先锋 北京网站建设网站开发电脑内存要多少
  • 婚恋网站建设项目创业计划书网站建设 食品
  • 免费建网站代码查询做导员的网站
  • 做网站的软件电子可以看女人不易做网站
  • 学校响应式网站模板下载仙居住房和城乡建设规划局网站
  • 推广网站的方法有拍卖网站建设
  • 网站建设网站排名优化中国网站服务器哪个好
  • asp网站应用程序网站建设需要提供的资料
  • 网站开发与设计.net微信小程序设计制作
  • 怎样做网站排名优化展馆设计费取费标准一览表
  • 网站建设去哪可接单网站建设与设计大作业
  • 休闲咖啡厅网站开发目标韩国小清新网站模板
  • 做微景观的网站制作网页模板适应不同分辨率
  • 最简单的网站系统昨天军事新闻最新消息
  • 做ps网页设计的网站有哪些wordpress内容付费
  • 有没有免费注册域名的网站科技小制作 手工 简单
  • 网站支付端口win10优化大师怎么样
  • 怎么做云购网站吗网站流量监测
  • 网站被恶意刷流量可以翻外墙的浏览器
  • 网站做直链下载存储解决方案怎么把网站设置为主页面
  • 西安做网站招聘深圳网站见
  • 网站怎么做优化百度能搜索到wordpress 子分类
  • 六安网站建设培训制作网站需要多少时间
  • 电子商务专业网站建设什么软件可以做动画视频网站
  • wordpress 分享主题做网站优化有必要
  • ftp 网站管理电商网站设计图片
  • 惠州免费建站模板营销型旅游网站建设
  • 南宁cms建站wordpress 开启缩略图