精华内容
下载资源
问答
  • 这条抖音阿里官方号发,大概意思是随便剪网线,拉闸断电,都不影响我们买买买,让我们放心,发生故障也不影响我们花钱。 那么,从网络技术层面,有哪些可以实现这样高可靠性技术呢? 小贴士: 网络高可靠性...

    双十一时,百哥的朋友圈被一条抖音截图刷屏了

    这条抖音是阿里官方号发的,大概意思是随便剪网线,拉闸断电,都不影响我们买买买,让我们放心,发生故障也不影响我们花钱。

    那么,从网络技术层面,有哪些可以实现这样高可靠性的技术呢?

    小贴士:
    网络高可靠性:是指当设备或网络出现故障时,网络提供服务的不间断性。
    互联网公司的可靠性都会做到5个9以上
    –可靠性99.999%意味着每年故障时间不超过5分钟
    –可靠性99.9999%意味着每年故障时间不超过30秒

    为了实现更多的9,从网络技术、云计算技术、数据存储技术、甚至能源技术经过多年发展,产生了很多技术,本文分享几个常用的网络高可靠性技术。

    MSTP,多生成树技术

    可以通过连接多条线路,实现冗余,当一条线故障,数据会走备用线路。

    但是因此会产生环路,环路会导致广播风暴,广播风暴又会导致网络崩溃。

    所以必须有个技术来解决环路,这个技术就是生成树,简称STP。

    STP随着技术发展,又进化成了RSTP和MSTP,RSTP是加快了线路切换的速度,MSTP则可以部署多实例,实现数据更合理的分流。

    想成为网络工程师,获取更多网工学习资料可 + Q 裙 :7521 60765

    什么?你说生成树过时了,有更好的技术了,那这个技术是什么呢?

    VRRP,虚拟路由冗余协议

    想成为网络工程师,获取更多网工学习资料可 + Q 裙 :7521 60765

    前面实现了线路的冗余,一条线被剪断了,被老鼠咬了,被队友不小心踢掉了,都没有关系,因为有备用线路。

    但是如果网关设备坏了怎么办,有备用线路,没网关也不行啊。

    这时可以使用VRRP技术,实现网关设备的冗余。

    简单点来说就是让多个设备来充当网关,一台坏了,其他的立即顶上,网络不断。

    Linux服务器上的keepalived技术,也是基于VRRP协议。

    想成为网络工程师,获取更多网工学习资料可 + Q 裙 :7521 60765

    什么?你说VRRP也过时了,还有更好的技术了,行!

    链路聚合

    想成为网络工程师,获取更多网工学习资料可 + Q 裙 :7521 60765

    看到那个小圈圈了吧,这个就是拓扑图中用来表示链路聚合的。

    链路聚合就是把多条线捆绑起来,变成逻辑上的一根线来用,这样不仅线路冗余了,可靠性高了,两个设备间的带宽还变大了。

    而且,没有环路,因为这本来就变成1根线了。

    链路聚合,不同厂商有不同的名字,但其实是一个意思,也遵循相同的协议,可以互相兼容。

    华为叫E-trunk,思科叫以太网通道,锐捷叫AP(aggregate port)等

    想成为网络工程师,获取更多网工学习资料可 + Q 裙 :7521 60765

    堆叠技术

    想成为网络工程师,获取更多网工学习资料可 + Q 裙 :7521 60765

    堆叠技术,也叫设备虚拟化技术,可以把多台设备,虚拟成一台。

    然后通过多条线路,连到多台成员设备上,再把线路捆绑成一条。

    这样,就相当于把高可靠性网络,变成了逻辑上的单核心单线路网络。

    不但拓扑简单,整体性能还更高,故障发现和切换还更快,足以代替传统的mstp+vrrp解决方案。

    但是传统技术依然在广泛应用,因为要使用设备虚拟化技术,首先得产品支持,包括硬件和软件都得支持,很多中低端设备没这功能,或者高端设备的老版本软件支持不佳,升个级又提心吊胆怕变砖。

    想成为网络工程师,获取更多网工学习资料可 + Q 裙 :7521 60765

    本文列举几个网络方面的高可靠性技术,其实为了实现数据中心的高可靠性,还远远不够,欢迎关注百哥,更多技术干货会持续更新。

    展开全文
  • 作者:disksing 对 Raft 有所了解的同学都知道...这里超过半数的意思是 N/2+1(而不是N/2)。举例来说,3 节点集群需要 2 个以上节点在线,5 节点集群需要 3 个以上节点在线,等等。对于偶数节点的集群,2 节点集群...

    作者:disksing

    对 Raft 有所了解的同学都知道,Raft 一般会使用奇数个节点,比如 3、5、7 等等。这是因为 Raft 是 一种基于多节点投票选举机制的共识算法,通俗地说,只有超过半数节点在线才能提供服务。这里超过半数的意思是 N/2+1(而不是N/2)。举例来说,3 节点集群需要 2 个以上节点在线,5 节点集群需要 3 个以上节点在线,等等。对于偶数节点的集群,2 节点集群需要 2 节点同时在线,4 节点集群需要 3 节点在线,以此类推。实际上不只是 Raft,所有基于 Quorum 的共识算法大体上都是这么个情况,例如 Paxos,ZooKeeper 什么的,本文仅以 Raft 为例讨论。

    先考察一下为什么 Raft 通常推荐使用奇数节点而不是偶数节点。

    共识算法要解决的核心问题是什么呢?是分布式系统中单个节点的不可靠造成的不可用或者数据丢失。Raft 保存数据冗余副本来解决这两个问题,当少数节点发生故障时,剩余的节点会自动重新进行 leader 选举(如果需要)并继续提供服务,而且 log replication 流程也保证了剩下的节点(构成 Quorum)总是包含了故障前成功写入的最新数据,因此也不会发生数据丢失。

    我们对比一下 3 节点的集群和 4 节点的集群,Quorum 分别是 2 和 3,它们能容忍的故障节点数都是 1。如果深究的话,从概率上来说 4 节点集群发生 2 节点同时故障的可能性要更高一些。于是我们发现,相对于 3 节点集群,4 节点集群消耗更多的硬件资源,却换来了更差的可用性,显然不是个好选择。

    但是!!!

    上面说了,Raft 解决的核心问题有两个,分别是高可用和数据容灾。跟奇数节点相比,偶数节点的方案从可用性上看很不划算,但是数据容灾方面却是有优势的。还是以 4 节点为例,因为 Quorum 是 3,写入数据的时候需要复制到至少 3 个节点才算写入成功,假如此时有 2 个节点同时故障,这种情况下虽然不可用了,但是剩余的两个节点一定包含有最新的数据,因此没有发生数据丢失。这一点很容易被忽视,在常见的奇数节点配置下,保证可用和保证数据不丢所容忍的故障节点数是重合的,但是在偶数节点配置下是不一样的。

    根据上面的分析,偶数节点集群的适用场景是“能容忍一定时间的不可用,但不能容忍数据丢失”,应该有不少严肃的金融场景是符合这个描述的,毕竟一段时间不服务也比丢掉数据要强呀。

    下面以两数据中心环境为例来对比一下。限制条件是任意一个数据中心故障时(比如发生严重自然灾害),能容忍一定时间的不可用,但不允许发生数据丢失。

    如果使用奇数节点集群配置,两个数据中心的节点数一定是不对等的,一旦节点数更多的那个数据中心故障,就可能发生数据丢失了。而如果使用偶数节点配置,两个数据中心的节点数是一样的,任意一个数据中心故障后,另一个数据中心一定包含有最新数据,我们只需要使用工具改写 Raft 元信息,让剩余数据中心的所有节点组成新的 Raft Group 并使得 Quorum 恰好等于剩余节点数,Raft 选举机制将会自动选择包含有最新数据的节点当 leader 并恢复服务。

    题外话:本来想在 etcd 上实践下这套方案,可惜最后一步 etcd 恢复数据的时候只支持从单一节点恢复,所以无法做到“自动选择包含有最新数据的节点当 leader 并恢复服务”。我给 etcd 提了个 issue 不过貌似并没有成功让他们了解到我想干啥,如果有人看到这里觉得这事情有搞头的话,可以帮忙去 issue 下支持一下(https://github.com/etcd-io/etcd/issues/11486 )。

    以上内容转载自 disksing 个人博客:原文地址

    讨论话题:

    Raft 通常需要三数据中心来解决高可用问题,但一些场景下面,用户只有两个数据中心,那么使用 Raft 协议还有意义吗?

    欢迎大家在本篇文章下面踊跃留言,分享你遇到过的“偶数节点 Raft”的案例或者各种“奇葩”问题 以及你的思考~

    在这里插入图片描述

    展开全文
  • 作者:disksing对 Raft 有所了解的同学都...这里超过半数的意思是 N/2+1(而不是N/2)。举例来说,3 节点集群需要 2 个以上节点在线,5 节点集群需要 3 个以上节点在线,等等。对于偶数节点的集群,2 节点集群需要...

    e99524bb6ba378e05b4e3e4d396af659.png
    作者:disksing

    对 Raft 有所了解的同学都知道,Raft 一般会使用奇数个节点,比如 3、5、7 等等。这是因为 Raft 是 一种基于多节点投票选举机制的共识算法,通俗地说,只有超过半数节点在线才能提供服务。这里超过半数的意思是 N/2+1(而不是N/2)。举例来说,3 节点集群需要 2 个以上节点在线,5 节点集群需要 3 个以上节点在线,等等。对于偶数节点的集群,2 节点集群需要 2 节点同时在线,4 节点集群需要 3 节点在线,以此类推。实际上不只是 Raft,所有基于 Quorum 的共识算法大体上都是这么个情况,例如 Paxos,ZooKeeper 什么的,本文仅以 Raft 为例讨论。

    先考察一下为什么 Raft 通常推荐使用奇数节点而不是偶数节点。

    共识算法要解决的核心问题是什么呢?是分布式系统中单个节点的不可靠造成的不可用或者数据丢失。Raft 保存数据冗余副本来解决这两个问题,当少数节点发生故障时,剩余的节点会自动重新进行 leader 选举(如果需要)并继续提供服务,而且 log replication 流程也保证了剩下的节点(构成 Quorum)总是包含了故障前成功写入的最新数据,因此也不会发生数据丢失。

    我们对比一下 3 节点的集群和 4 节点的集群,Quorum 分别是 2 和 3,它们能容忍的故障节点数都是 1。如果深究的话,从概率上来说 4 节点集群发生 2 节点同时故障的可能性要更高一些。于是我们发现,相对于 3 节点集群,4 节点集群消耗更多的硬件资源,却换来了更差的可用性,显然不是个好选择。

    但是!!!

    上面说了,Raft 解决的核心问题有两个,分别是高可用和数据容灾。跟奇数节点相比,偶数节点的方案从可用性上看很不划算,但是数据容灾方面却是有优势的。还是以 4 节点为例,因为 Quorum 是 3,写入数据的时候需要复制到至少 3 个节点才算写入成功,假如此时有 2 个节点同时故障,这种情况下虽然不可用了,但是剩余的两个节点一定包含有最新的数据,因此没有发生数据丢失。这一点很容易被忽视,在常见的奇数节点配置下,保证可用和保证数据不丢所容忍的故障节点数是重合的,但是在偶数节点配置下是不一样的。

    根据上面的分析,偶数节点集群的适用场景是“能容忍一定时间的不可用,但不能容忍数据丢失”,应该有不少严肃的金融场景是符合这个描述的,毕竟一段时间不服务也比丢掉数据要强呀。

    下面以两数据中心环境为例来对比一下。限制条件是任意一个数据中心故障时(比如发生严重自然灾害),能容忍一定时间的不可用,但不允许发生数据丢失。

    如果使用奇数节点集群配置,两个数据中心的节点数一定是不对等的,一旦节点数更多的那个数据中心故障,就可能发生数据丢失了。而如果使用偶数节点配置,两个数据中心的节点数是一样的,任意一个数据中心故障后,另一个数据中心一定包含有最新数据,我们只需要使用工具改写 Raft 元信息,让剩余数据中心的所有节点组成新的 Raft Group 并使得 Quorum 恰好等于剩余节点数,Raft 选举机制将会自动选择包含有最新数据的节点当 leader 并恢复服务。

    题外话:本来想在 etcd 上实践下这套方案,可惜最后一步 etcd 恢复数据的时候只支持从单一节点恢复,所以无法做到“自动选择包含有最新数据的节点当 leader 并恢复服务”。我给 etcd 提了个 issue 不过貌似并没有成功让他们了解到我想干啥,如果有人看到这里觉得这事情有搞头的话,可以帮忙去 issue 下支持一下(https://github.com/etcd-io/etcd/issues/11486)。

    以上内容转载自 disksing 个人博客:原文地址 。

    讨论话题:

    Raft 通常需要三数据中心来解决高可用问题,但一些场景下面,用户只有两个数据中心,那么使用 Raft 协议还有意义吗?
    欢迎大家在本篇文章下面踊跃留言,分享你遇到过的“偶数节点 Raft”的案例或者各种“奇葩”问题 以及你的思考~
    展开全文
  • 3.6.3 重复以上步骤直到客户同意你模型 95 3.7 最佳实践 95 3.8 总结 96 第4章 规范化过程 97 4.1 为什么要规范化 98 4.1.1 消灭重复数据 98 4.1.2 避免编写不必要代码 98 4.1.3 给表瘦身 98 4.1.4 最大...
  • 如果字符之间有两个以上的空格程序怎么处理? 2、for(int i=0;i;i++)str1[i]=String.valueOf((char)(str1[i].charAt(0)+('A'-'a')))+str1[i].substring(1);这段代码什么意思? 3、fin+=m.group(1);什么意思
  • 其实就是更流畅的意思。 简单介绍一下自己,2012年我从中专毕业,当时17岁,2015年我加入了360最大的前端团队奇舞团,那一年我20岁;2017年由于组织架构的变动,我们组被...
  • LINGO软件学习

    2009-08-08 22:36:50
    集名字必须严格符合标准命名规则:以拉丁字母或下划线(_)为首字符,其后由拉丁字母(A—Z)、下划线、阿拉伯数字(0,1,…,9)组成总长度不超过32个字符字符串,且不区分大小写。 注意:该命名规则同样适用...
  •  GC垃圾收集的意思(Gabage Collection),内存处理编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收...
  •  这很多人追求的目标,它的意思是,在Oracle数据库中,通过调整性能参数的值,就可以让数据库运转得飞快。  实际上这不过句玩笑,它本身一句反话,却让很多人误入歧途。我看到很多人,包括一些DBA,凡涉及...
  • 的是,Linux 上有公认 C 语言世界最好编译器 gcc,如果你想得到一个效率更高开 发环境(并不一定最友好,但一定最强大),我建议你一定要好好熟悉一下 Linux。 三.如何得到Linux? 据我所知...
  • 3.4.8 找出数组中出现次数超过一半数,现在有一个数组,已知一个数出现次数超过了一半,请用O(n)复杂度算法找出这个数。 3.4.9 找出被修改过数字 3.5.0 设计DNS服务器中cache数据结构。要求设计一个...
  • 正则表达式

    2014-12-03 14:51:39
    我们已经发现了,在正则表达式中所有字母字符和数字都按照字面意思与自身相匹配.JavaScript正则表达式还通过以反斜杠(\)开头转义序列支持某些非 字母字符.例如,序列 "\n" 在字符串中匹配的是一个直接量换...
  • php高级开发教程说明

    2008-11-27 11:39:22
    偏爱语言(也许公司指定一种语言),了解它优点和它缺点,并根据语言具体特点 修正项目。但当克服所选语言缺陷时,就可能会增加不必要额外工作。 了解如何使用一门语言却缺乏其特定概念知识,就...
  • java 面试题 总结

    2009-09-16 08:45:34
     GC垃圾收集的意思(Gabage Collection),内存处理编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收...
  • 21.在.net中,配件的意思是? 答:程序集。(中间语言,源数据,资源,装配清单) 22.常用的调用WebService的方法有哪些? 答:1.使用WSDL.exe命令行工具。 2.使用VS.NET中的Add Web Reference菜单选项 23..net...
  • windows实用dos命令大全

    2010-12-10 21:27:35
    (2)PATH命令中路径,若有两条以上,各路径之间以一个分号“;”隔开;  (3)PATH命令有三种使用方法:  PATH[盘符1:][路径1][盘符2:][路径2]…(设定可执行文件搜索路径) PATH:(取消所有路径)  ...
  • 报组什么意思? 6. 组和中心有什么区别? 7. 如何获知每个组招生人数? 8. 本科学校不好,报考北邮会不会有歧视? 9. 北邮考研看重比赛和项目经历吗? 10. 跨考北邮计算机应该准备些什么,会不会歧视跨考? 11. ...
  • 翻译主要意思即可,不要超过 100 个字符) 【国宴大师•黄金炒饭】松软弹香又油润,粒粒分明不粘锅!这样黄金炒饭不来一碗吗? |老饭骨 简介 小友们好,今天给大家带来一碗...
  • 翻译主要意思即可,不要超过 100 个字符) 【国宴大师•象眼鸽蛋】快失传精致宫廷老菜:象眼鸽蛋!虾仁Q弹、面包酥脆、桃仁香甜,做宴席太赞了!牛肉丸怎么打出来才弹|老饭骨 简介 ...
  • 清水量最好能烧制40分钟以上 0:05:22.295,0:05:23.992 大概需要没过五花肉即可 0:05:25.670,0:05:27.656 加入适量糖色大火烧开 0:05:47.695,0:05:50.009 大火烧开之后再加入适量冰糖 0:05:50.106,0:05:51....

空空如也

空空如也

1
收藏数 20
精华内容 8
关键字:

以上是超过的意思吗