zookeeper(三)zk集群应该怎么实现

为什么要搭建zookeeper集群?

这个一般都没啥好说的,就是因为可能一台zookeeper可能会出现宕机的情况,为了提升系统的稳定性,就要多部署到几台机器上,还有一点就是在量很大的情况下一台机器撑不住只有多扩几台机器去分担压力。但是就会存在一个问题:如果要多部署几台,那么不同的机器接到了不同的请求就会做不一样的事,导致每台服务器都不一样。
有人会说就不能像业务系统那样吗?比如把多台服务器对应到同一个数据库中,其中一台发生了改变其它自动更新?
请想一想如果数据库连不上了呢?有人说那我可以把数据库做成集群啊。要是这样做的话你想想你想写一个集群却使用了数据库的集群技术,而且数据库使用的分布式锁效率都不高,zookeeper正是因为数据库的效率的问题才产生的。而且当多台服务器从数据库读的话,那一瞬间的压力会不会很大,最终的压力全都压在了数据库上了,不要扯使用redis缓存之类的。redis存在的问题用过的都知道。而且重点是zookeeper是为了解决分布式的一致性问题,redis使用存在缺陷。

zookeeper集群是怎么做的?

首先回顾一下前面zookeeper单机的情景。它的启动的确很简单,无非就是把配置读到类中,读取一下快照和事务,然后做一个调用链就行了。
假设你来设计一个zookeeper集群,因为你是为了解决上面数据库和redis的分布式锁的缺点而设计的,你会怎么做?
首先肯定大体逻辑跟单机是一样的。最重要的是要保证一致性。
1、假设我们每次做了修改就通告给所有的zookeeper。
那么如果有的zookeeper没有启动怎么办呢?作为集群,不可能挂掉一台就不工作了吧,你说没有启动我就保存到本地,直到那台启动了在传给它,那么如果这台机器漏掉了或者出现了大故障导致以前的数据也不在了怎么办呢?难道你会想数据库一样全量拷贝一份吗?或者你想加一台机器进去是不是要手动同步?你现在同步应该以哪一台机器为准?因为是其中一台做了修改通告其它的对吧?所以如果数据保存本地的话,这种方法问题太多了。
2、选择一台作为主,其它的作为从(跟数据库类似)。
一般都是这么做的。所有有关写的操作都由主来确定,其它从服务器来从主这边同步数据对吧,那么选主应该怎么选呢?数据应该怎么同步呢?有关写的操作连接到从了怎么办呢?怎么保证zookeeper中多个数据的一致性呢?这些就是zookeeper重要的实现方式,后面会一一的开始讲。先放一张总体流程图。
在这里插入图片描述
这个还只是一个大概的,要是细写流程图的话恐怕会特别特别大。最重要的一点就是zookeeper使用的是多线程,多线程的调试远比普通的调试要麻烦,不信的话可以自行去尝试。这个现在肯定看起很懵。后面的文章来慢慢的讲解。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
大学生参加学科竞赛有着诸多好处,不仅有助于个人综合素质的提升,还能为未来职业发展奠定良好基础。以下是一些分析: 首先,学科竞赛是提高专业知识和技能水平的有效途径。通过参与竞赛,学生不仅能够深入学习相关专业知识,还能够接触到最新的科研成果和技术发展趋势。这有助于拓展学生的学科视野,使其对专业领域有更深刻的理解。在竞赛过程中,学生通常需要解决实际问题,这锻炼了他们独立思考和解决问题的能力。 其次,学科竞赛培养了学生的团队合作精神。许多竞赛项目需要团队协作来完成,这促使学生学会有效地与他人合作、协调分工。在团队合作中,学生们能够学到如何有效沟通、共同制定目标和分工合作,这对于日后进入职场具有重要意义。 此外,学科竞赛是提高学生综合能力的一种途径。竞赛项目通常会涉及到理论知识、实际操作和创新思维等多个方面,要求参赛者具备全面的素质。在竞赛过程中,学生不仅需要展现自己的专业知识,还需要具备创新意识和解决问题的能力。这种全面的综合能力培养对于未来从事各类职业都具有积极作用。 此外,学科竞赛可以为学生提供展示自我、树立信心的机会。通过比赛的舞台,学生有机会展现自己在专业领域的优势,得到他人的认可和赞誉。这对于培养学生的自信心和自我价值感非常重要,有助于他们更加积极主动地投入学习和未来的职业生涯。 最后,学科竞赛对于个人职业发展具有积极的助推作用。在竞赛中脱颖而出的学生通常能够引起企业、研究机构等用人单位的关注。获得竞赛奖项不仅可以作为个人履历的亮点,还可以为进入理想的工作岗位提供有力的支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值