【大数据入门笔记系列】第二节 Zookeeper简介

前言

上一节介绍了,Zookeeper是一种分布式的、开放源码的分布式应用程序协调服务,该服务用于维护配置信息、提供分布式同步以及分组等事务。

Zookeeper简介

Zookeeper为其他集群提供服务,比如服务的主从选举、客户端的注册监听,Zookeeper内部也是一个集群,且通常节点的数目是奇数个(划重点),只要有半数以上的节点存活,Zookeeper就能为分布式程序(Client)提供服务,故其可靠性极高。
在这里插入图片描述

应用场景

  • 主从协调(选举master);
  • 服务器节点动态上下线;
  • 统一配置管理;
  • 分布式共享锁;
  • 统一名称服务等;

实质作用

  • 管理client的状态信息(描述性信息,非实业务数据);
  • 为client程序提供数据节点监听;

选举方式

讲解Zookeeper的启动方式要根据是否为初次启动分两种情况。

方式一(初次启动)

以五台节点构成的Zookeeper集群为例,这五台节点名分别为server1、server2、server3、server4、server5,id分别为1、2、3、4、5,假设这五台节点配置一致且都是第一次启动,那么他们的主从选举过程应该是这样的:

  1. server1率先启动并向集群发送了一条报告,稍作等待后server1没有收到任何来自集群内的回应,它的选举状态便保持着LOOKING(选举状态)状态;
  2. server2启动之后也向集群发送了一条报告,得到了server1的回复,于是server2与server1建立通信,这时候的投票结果是server1选自己,并把选自己的消息告诉了server2,server2也选自己,并把选自己的消息告诉了server1,这个时候根据之前设定的id来看,server1的id是1,server2的id是2,故本次选举server2获胜,但是由于该结果只有server1和server2两台机器认可,没有达到五台节点的半数以上的标准,因此两台机器的状态,继续保持为LOOKING。
  3. server3启动并向集群发送报告后,server1选自己,server2选自己,server3选自己,但是由于server3的id最大,因此server3胜出,这个结果目前server1、server2、server3军认同,且投认同票数已经占了集群节点半数以上,故server3变成leader。
  4. server4和server5启动后,Zookeeper集群已经产生leader,因此server4、server5只能和server1、server2一样充当随从服务。
方式二(宕机选举)

按照初次选举的过程,server3是主节点,但是在生产环境运行一段时间后,主节点server3宕机,现在集群没有主节点,需要重新进行选举,介绍选举过程之前我们介绍三个概念,即Zxid(数据id)、leader id和逻辑时钟,其释义如下

  • Zxid:即数据id,数据越新的节点其Zxid越大,原则上数据每次更新都会更新Zxid;
  • Serverid:搭建zookeeper集群时,我们会为每个几点设定一个id,在这里server1的id为1,server2的id为2,以此类推;
  • Epoch:即逻辑时钟,逻辑时钟的值从0开始递增,每次选举对应一个值,相同的Epoch值代表着各个节点处于同一批选举过程,每个节点除了维护自身的Epoch值外,在选举过程中还会收到别的节点发来的Epoch值信息,根据对比结果,执行不一样的操作(逻辑时钟小的节点将作废自我选票,重新投票并修改自己的逻辑时钟,直到与其他节点的逻辑时钟保持一致,即所有几点均处于同一轮选举);

此种情况下,它的选举过程是这样的:

  1. 第一轮投票,server1投自己并告诉[server2,server4,server5],server2投自己并告诉[server1,server4,server5],server4投自己并告诉[server1,server2,server5],server5投自己并告诉[server1,server2,server4],同时各节点更新自己的Epoch值,与其他节点传来的Epoch值做比较,如果有有节点发现自己的Epoch值小于其他节点,则该节点重新投票并更新自己的Epoch值,如此调整直到所有节点(除宕机的server3)的Epoch值统一;
  2. Epoch值统一之后,比对Zxid即数据id,Zxid大的被选为leader。
  3. 若存在Epoch值统一,Zxid相同的情况下,则Serverid大的节点当选leader。

脑裂问题

之前我们介绍,zookeeper的节点个数设定为奇数个,之所以设定为奇数个是为了防止脑裂问题

  • 何谓之脑裂?
    即一个主从集群里理论上只会存在一个master,如果出现两个及以上master的话,就会存在脑裂问题。比如server3为主节点,因为网络抖动等原因,server3与其他从节点的心跳超时陷入假死,其他节点以为master挂掉了,遂又进行选举,选举过后产生一个新的master节点server5,这时候陷入假死状态的server3恢复了,Zookeeper集群就存在两个Master:server3、server5。
  • 为何会发生脑裂?
    server5当选新的master之后,作为client会获得master切换的消息,但因为Zookeeper需要一个个去通知,所以会有一些延时,这时候可能就存在即有client去连接sever3这个老master,也有client去连接server5这个新master,这就会导致很严重的问题。
  • Zookeeper是如何预防脑裂问题的?
    1. 节点数目大于等于3且为奇数台,节点数大于等于3且为奇数台是因为ZooKeeper规定集群内节点存活半数以上(不包含半数)集群就是可用的,如果节点数为2,宕掉一台之后集群就不可用;如果节点数为3,宕掉一台后,存活的两台仍大于整个集群的几点数半数以上,所以仍然可以选举出master;如果节点数为4,宕掉一台后,存活节点剩下3个仍能选举master,如果宕掉两台,则不能再选举master(不大于半数),可见4台节点与3台节点的容忍度是一样的,所以我们建议设定奇数台;
    2. 冗余通信的方式,添加冗余的心跳线,例如双线条线。尽量减少“裂脑”发生机会;
    3. 设定共享磁盘锁,通过锁的机制让脑裂的两台节点中只能有一台节点能够访问共享磁盘。

    跳转

目录

在探索智慧旅游的新纪元中,一个集科技、创新与服务于一体的整体解决方案正悄然改变着我们的旅行方式。智慧旅游,作为智慧城市的重要分支,旨在通过新一代信息技术,如云计算、大数据、物联网等,为游客、旅游企业及政府部门提供无缝对接、高效互动的旅游体验与管理模式。这一方案不仅重新定义了旅游行业的服务标准,更开启了旅游业数字化转型的新篇章。 智慧旅游的核心在于“以人为本”,它不仅仅关注技术的革新,更注重游客体验的提升。从游前的行程规划、信息查询,到游中的智能导航、个性化导览,再到游后的心情分享、服务评价,智慧旅游通过构建“一云多屏”的服务平台,让游客在旅游的全过程中都能享受到便捷、个性化的服务。例如,游客可以通过手机APP轻松定制专属行程,利用智能语音导览深入了解景点背后的故事,甚至通过三维GIS地图实现虚拟漫游,提前感受目的地的魅力。这些创新服务不仅增强了游客的参与感和满意度,也让旅游变得更加智能化、趣味化。 此外,智慧旅游还为旅游企业和政府部门带来了前所未有的管理变革。通过大数据分析,旅游企业能够精准把握市场动态,实现旅游产品的精准营销和个性化推荐,从而提升市场竞争力。而政府部门则能利用智慧旅游平台实现对旅游资源的科学规划和精细管理,提高监管效率和质量。例如,通过实时监控和数据分析,政府可以迅速应对旅游高峰期的客流压力,有效预防景区超载,保障游客安全。同时,智慧旅游还促进了跨行业、跨部门的数据共享与协同合作,为旅游业的可持续发展奠定了坚实基础。总之,智慧旅游以其独特的魅力和无限潜力,正引领着旅游业迈向一个更加智慧、便捷、高效的新时代。
内容概要:本文详细介绍了大模型的发展现状与未来趋势,尤其聚焦于DeepSeek这一创新应用。文章首先回顾了人工智能的定义、分类及其发展历程,指出从摩尔定律到知识密度提升的转变,强调了大模型知识密度的重要性。随后,文章深入探讨了DeepSeek的发展路径及其核心价值,包括其推理模型、思维链技术的应用及局限性。此外,文章展示了DeepSeek在多个行业的应用场景,如智能客服、医疗、金融等,并分析了DeepSeek如何赋能个人发展,具体体现在公文写作、文档处理、知识搜索、论文写作等方面。最后,文章展望了大模型的发展趋势,如通用大模型与垂域大模型的协同发展,以及本地部署小模型成为主流应用渠道的趋势。 适合人群:对人工智能和大模型技术感兴趣的从业者、研究人员及希望利用DeepSeek提升工作效率的个人用户。 使用场景及目标:①了解大模型技术的最新进展和发展趋势;②掌握DeepSeek在不同领域的具体应用场景和操作方法;③学习如何通过DeepSeek提升个人在公文写作、文档处理、知识搜索、论文写作等方面的工作效率;④探索大模型在特定行业的应用潜力,如医疗、金融等领域。 其他说明:本文不仅提供了理论知识,还结合实际案例,详细介绍了DeepSeek在各个场景下的应用方式,帮助读者更好地理解和应用大模型技术。同时,文章也指出了当前大模型技术面临的挑战,如模型的局限性和数据安全问题,鼓励读者关注技术的持续改进和发展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值