zookeeper的架构及应用场景(zookeeper类似的框架是什么)

技术zookeeper框架是怎样的呢zookeeper框架是怎样的呢,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。先一句话概括下zookeeper:zook

动物园管理员框架是什么样的?我相信很多没有经验的人对此无能为力。为此,本文总结了问题产生的原因及解决方法。希望你能通过这篇文章解决这个问题。

总之,zookeeper:zookeeper是目前使用最广泛的分布式组件。它的功能和责任是单一的,但却是非常重要的。

zookeeper到底是什么?(技术文)

1)zookeeper实际上是yahoo为分布式系统中的一致性处理而开发的框架。

2)背景:一开始是Hadoop研发的副产品。由于分布式系统中一致性处理的困难,其他分布式系统不需要重复制作轮子,因此zookeeper被广泛应用于后续的分布式系统中。因此,zookeeper在大多数分布式系统中得到了广泛的应用,以至于zookeeper成为了各种分布式系统的基本组件,其重要性可想而知。(以此类推,之前研究过的netty是一个优秀的套接字网络编程包和通信组件框架。不了解netty的可以先收藏这篇文章,然后花五分钟研究一下。姑且说Netty很简单,其实是一个Jar包,作为通讯组件使用)

3)具体应用场景:著名的hadoop、kafka、dubbo都是基于zookeeper的。

4)好处:保证分布式环境下数据的最终一致性,这是zookeeper可以解决的问题。

5)一致性上面已经提到很多次了,那么到底什么是一致性呢?让我们添加这个概念:

所谓的一致性,其实就是围绕着“看”展开的。谁能看到?你能看见吗?你什么时候看到的?举个例子:淘宝后端卖家,把一个大促销商品放在后端货架上,通过服务器A提交到主数据库,假设提交后,用户会立即通过应用服务器B从数据库中查询该商品,会出现卖家更新成功,但买家看不到的现象。一段时间后,主数据库的数据同步到从数据库,这样买家就可以找到它。(真正的技术文本)

假设在卖家更新成功后,买家可以立即看到卖家的更新,称为强一致性;

如果卖家更新成功后,买家看不到卖家更新的内容,称为弱一致性;

卖家更新成功后,买家在一段时间后终于可以看到卖家的更新,这叫做最终一致性。

zookeeper框架是怎样的呢

6)添加一些解决一致性问题的常用方法:

查询重试补偿。对于分布式应用中的不确定情况,首先使用查询接口查询当前状态,如果当前状态不一致,则使用补偿接口重试状态,或者使用回滚接口回滚业务。典型场景比如银行和支付宝的互动。支付宝向银行发送转账请求。如果一直没有收到回复,可以通过银行的查询界面查看交易状态。如果交易对手没有收到交易,将通过补偿方式推送。

定时任务推送。对于以上情况,有可能一推不行,所以需要两三推。毫无疑问,支付宝中的初始掉线率非常高,通过预定任务的持续推送,成功率有所提升。

TCC .尝试-确认-取消.实际上,它是一个两阶段协议,第二阶段可以实现提交操作或反向操作。

动物园管理员能做什么?如前所述,hadoop、kafka和dubbo都是基于zookeeper构建的。在这里,我将与杜博详细阐述动物园管理员。(甄珍技术文本)

作为业内知名的分布式SOA框架,dubbo的主要服务注册发现功能由zookeeper提供。

对于一个服务框架来说,注册中心是其核心的核心。虽然暂时挂机不会对整个服务造成问题,但一旦挂机,整体风险会很高。考虑到一般情况,当注册中心为单机时,其实现非常容易。所有的机器都起来为它注册服务,所有的呼叫者都与它保持长时间的连接。一旦服务改变,通过长连接通知呼叫者。但是,当服务集群规模扩大时,就不简单了,单机连接数有限,容易出现故障。

作为一个稳定的面向服务的框架,dubbo可以选择并推荐zookeeper作为注册中心。在底层,zookeeper常用的客户端zkclient和馆长被打包到ZookeeperClient中。

当服务提供者服务启动时,向zookeeper注册一个节点;

服务消费者订阅其父节点的变化,如启动和停止,可以通过节点创建和删除来获知,被叫方掉线等异常情况也可以通过临时节点会话断开的自动删除来获知;

同时,消费者也会把自己订阅的服务放到zookeeper通过创建节点。

然后我们可以得到映射关系,比如谁提供服务,谁订阅谁提供的服务。基于这种关系,我们可以很容易地了解整个系统。

zookeeper的基本数据模型(技术好文):

总之,它类似于Linux文件系统的节点模型。

//cache.yisu.com/upload/information/20210521/375/502198.jpg" alt="zookeeper框架是怎样的呢">

其节点有如下有趣而又重要的特性:

  1. 同一时刻多台机器创建同一个节点,只有一个会争抢成功。利用这个特性可以做分布式锁。

  2. 临时节点的生命周期与会话一致,会话关闭则临时节点删除。这个特性经常用来做心跳,动态监控,负载等动作。

  3. 顺序节点保证节点名全局***。这个特性可以用来生成分布式环境下的全局自增长id。

通过zookeeper提供的原语服务,可以对zookeeper能做的事情有个精确和直观的认识。

zookeeper提供的原语服务:

  1. 创建节点

  2. 删除节点

  3. 更新节点

  4. 获取节点信息

  5. 权限控制

  6. 事件监听

实际上,就是对节点的增删查改加上权限控制与事件监听,但是通过对这些原语的组合以及不同场景的使用,可以实现很多用法。

  1. 数据发布订阅。即注册中心,见上面dubbo用法。主要通过对节点管理做到发布以及事件监听做到订阅。

  2. 负载均衡。见上面kafka用法。

  3. 命名服务。zookeeper的节点结构天然支持命名服务,即把信息集中存储,并以树状管理,方便统一查阅。

  4. 分布式协调通知。协调通知实际上与发布订阅类似,由于引入的第三方的zookeeper,实际上对很多种协调通知做了解耦。

  5. 集群管理与master选举。通过上面的第二点特性,可以轻易得知集群机器存活状况,从而轻松管理集群;通过上面***点特性,可以做出master争抢。

  6. 分布式锁。实际上就是***点特性的应用。

  7. 分布式队列。实际上就是第三点特性的应用。

  8. 分布式的并发等待。类似于多线程的join问题,主任务的执行依赖于其他子任务全部执行完毕,在单机多线程里可以用join,但是分布式环境下如何实现呢。利用zookeeper,可以创建一个主任务节点,旗下子任务一旦执行完毕,则在主任务节点下挂一个子任务节点,等节点数量足够,则认为主任务可以开始执行。

可以发现,所有的原语就是zookeeper的基础,而其他的用法总结无非是将原语放到不同场景下的归类罢了。

看完上述内容,你们掌握zookeeper框架是怎样的呢的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/157336.html

(0)

相关推荐

  • Splay维护序列 洛谷 P3391 【模板】文艺平衡树

    技术Splay维护序列 洛谷 P3391 【模板】文艺平衡树 Splay维护序列 洛谷 P3391 【模板】文艺平衡树传送门解题思路
    Splay如何维护序列呢
    以序列下标作为val值,扔到Splay

    礼包 2021年11月7日
  • pl什么意思,JM们,我到底PL了没啊?

    技术pl什么意思,JM们,我到底PL了没啊?我10月份做的造影,当时是备孕十一个月都没有好孕,去医院做了所有检查,除了造影,以前听说造影痛苦一直不敢做,医生也不建议我做,说是备孕时间短,后来等所有检查结果出来一切都没问题

    生活 2021年10月27日
  • html中让图片靠右(html5怎么让文字在图片右边)

    技术html5如何实现图片往右这篇文章将为大家详细讲解有关html5如何实现图片往右,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 在html中,图片往右的

    攻略 2021年12月17日
  • 抖音粉丝多少钱一个,抖音真人粉多少钱?

    技术抖音粉丝多少钱一个,抖音真人粉多少钱?关于到现在教大家抖音真人粉购买的方法这个话题,相信很多小伙伴都是非常有兴趣了解的吧,因为这个话题也是近期非常火热的,那么既然现在大家都想要知道教大家抖音真人粉购买的方法,小编也是

    测评 2021年11月10日
  • mysql中where1=1是什么意思

    技术mysql中where1=1是什么意思这篇文章主要介绍“mysql中where1=1是什么意思”,在日常操作中,相信很多人在mysql中where1=1是什么意思问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操

    攻略 2021年12月10日
  • 黑色上衣配什么颜色的裤子好看,黑色上衣配什么颜色裤子好看

    技术黑色上衣配什么颜色的裤子好看,黑色上衣配什么颜色裤子好看虽然已经是夏天,天气炎热,但是还是有很多人喜欢穿黑色,如果说黑色的裤子倒还是百搭的如果是上衣应该怎么搭配呢黑色上衣配什么颜色的裤子好看?男装黑色上衣大多会搭配牛

    生活 2021年10月21日