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

深圳微网站制作网站建设 - 碧诺网络

深圳微网站制作,网站建设 - 碧诺网络,网络平台设计公司广东,广州东莞网站建设摘要 本文介绍常见的分布式共识算法,使用场景,以及相关已经落地了的程序或框架 1. 为什么要分布式共识算法 在分布式系统中,不同节点之间可能存在网络延迟、故障等原因导致彼此之间存在数据不一致的情况,为了保证分布式系统中的…

摘要

本文介绍常见的分布式共识算法,使用场景,以及相关已经落地了的程序或框架

1. 为什么要分布式共识算法

在分布式系统中,不同节点之间可能存在网络延迟、故障等原因导致彼此之间存在数据不一致的情况,为了保证分布式系统中的数据一致性,因此需要引入共识算法。

在共识算法中,节点通过相互通信来传递数据,并根据一定的规则进行数据处理和验证。一旦多个节点达成一致,系统就会根据达成的共识状态来执行相应的操作。

例如Paxos算法、Raft算法、ZAB等。

2. 算法对比

Paxos和Raft都是强一致性算法,ZAB是最终一致性。
Raft算法中只有leader对外提供服务,follower仅仅是作为副本,也就是一个Raft集群的性能与集群节点数量无关,至于leader的性能有关(可以通过mutil raft提高系统性能,注意是提高整个系统的性能而不是提高单个raft集群的性能)

ZAB算法和Raft算法很详细,都有领导选举和日志复制过程。ZAB中follower节点是可以的,而都经过leader,这样就导致哪怕集群达成共识(过半数节点同步了leader的数据),依旧存在某些节点还未达成与leader数据同步,可能存在读取旧数据。

raft与zab的详细对比可以参考:https://www.zhihu.com/question/28242561
Paxos是强一致的,算法比较难理解就不多阐述

3.共识算法的落地

刚刚讲的都是理论算法,大家需要实现这些算法到具体的应用中,不同的系统虽然使用的是同一个算法,但是具体细节上可能会有差异(例如HDFS是复现GFS论文的产物),但是核心不会变,分布式共识算法

我们知道节点数据同步需要同步,但是这些强一致性算法并不适用于数据库主从同步(OLAP或OLTP系统)。原因就是强一致性必然会造成大量的性能损失,这是DB无法接受的。

那么哪些场景需要使用强一致性的算法呢?注册中心
为什么注册中心需要分布式共识算法?
因为注册中心原本就是一个小的存储系统,存储了集群中(或者微服务集群)所有的配置信息,并且可能频繁出现服务或者节点的上下线,需要保证注册中心的高可用则必须要副本冗余,有了副本必然就出现主从数据同步,并且需要强一致性保证服务发现不会出错,由于存储的数据量很小,所有强一致性造成的性能损失也是可以接受的。

4. 常见落地

常见的注册中心框架有nacos(spring cloud),eureka(spring cloud),zookeeper(hadoop),consul,etcd(k8s)

不同注册中心的选型和对比可以看这:https://juejin.cn/post/7068065361312088095

在这里插入图片描述

上图中zookeeper应该是使用ZAB算法,ZAB算是Paxos的一种演变。
刚刚说了ZAB并不能保证强一致性,为什么这里zookeep又是CP,可以保证强一致性呢?
原因:zookeeper在实现ZAB后,还加入了一些特殊操作,可以保证zookeeper的强一致性,但是ZAB算法理论并不是强一致性,这就是算法理论和落地之间的不同

eureka使用的是自己设计的一套共识算法,不能保证强一致性,这里不展开了。

具体可以看:https://blog.csdn.net/trntaken/article/details/108949114
zookeeper原生客户端API和Curator客户端都提供了该sync()方法,调用sync()方法之后,zookeeper集群会保证集群所有节点数据都是一致性的,此时客户端再去任意节点读取数据,都能读取最新的数据。

如何选择一个合适的注册中心呢?

这里涉及到技术选型,个人认为主要关注 是否满足需求社区活跃度使用成本这几个方面,就不展开了。

http://www.yayakq.cn/news/795539/

相关文章:

  • 家居装修企业网站源码wordpress 云备份
  • 网站关键词库是怎么做的外贸优化网站制作
  • 什么网站可以做线上小游戏wordpress在线监测
  • 深圳微信分销网站制作试玩网站建设
  • 做简历比较好的网站叫什么营销网站建设模板
  • 滨州市建设局网站做网站挣钱打擦边球
  • 免费域名怎么做网站能打开各种网站的浏览器推荐
  • 重庆网站建设 制作 设计 优惠价如何修改WordPress备份中的网址
  • 网站被入侵网站建设预付流程
  • 帮别人做违法网站会判刑吗网站开发后台技术
  • 自己做物流网站wordpress带轮播企业站主题
  • 网站设计的用途如何做网站预览
  • 网站内页标题桓台网站
  • 百度网站收录查询地址手上有一个好网站怎么做赚钱
  • 网站开发微盘百度公众号
  • 网站域名不合法网络营销推广培训班
  • 专做网站公司奥利奥广告策划书
  • 让人做网站 需要准备什么软件用redis加速wordpress
  • 网站建设用的是什么软件网站开发方案 文档
  • 温州网站关键词怎样做网站手机客户端
  • 佛山微网站建设报价wordpress post 与 page 区别
  • 宝尊电商是做什么的温州seo优化
  • 昆明网站公司建设甘肃省专业做网站
  • 如何建设下载网站ps如何做ppt模板下载网站
  • wordpress个人网站赚钱体育网站开发的目的
  • 网站建设论文标题百度首页排名优化哪家专业
  • 网站关键字优化价格用ps制作黑色高光网站按钮
  • 网站虚拟机可以自己做吗广州购物网站设计
  • 营业执照注册网站网站外包注意事项
  • 网站开发项目任务接软件开发项目的平台