秒杀要提前几秒发货(天猫前5秒半价抢购技巧)

集中式架构与分布式架构,你选哪个?

在很长一段时间里,这都是个争议性的话题。其实如果和我们回溯15年最多20年,整个计算机市场还是集中式的时代,小型机是那时候最响亮的名词,也推动了计算能力的快速发展。

直到2001年英特尔发布了至强处理器,整个市场还是小型机的天下,正如白垩纪的恐龙时代那样。但是随着x86架构的不断发展,随着越来越多的软硬件供应商开始加入x86的阵营,分布式应用逐渐抬头,并逐渐取代了小型机的地位。只是白垩纪不同的是,今天恐龙已经灭绝,但是今天的小型机还在继续发展当中。

秒杀要提前几秒发货(天猫前5秒半价抢购技巧)
秒杀要提前几秒发货(天猫前5秒半价抢购技巧)

一切只是源于技术流派的差异。今年8月,我参观了爱普生位于日本的多家工厂和事务所,最直观的感觉就是爱普生在技术上的特立独行——打印领域的微压电技术和投影领域的3LCD显示技术。我问:“这种差异化是不是代表着你们在技术上的领先”?“不,不是的,只是技术流派的不同”,语气中透出日本人礼貌性的谦卑。

最能够体现这种流派差异的,还是在HPC领域。虽然在我们的印象中,分布式系统貌似无处不在,我们看到的软硬件产品、解决方案,似乎都为了分布式而设计。但是在更具专业性的计算应用中,集中式也占据了相当一部分比例。日前,世界超算大会SC19在美国丹佛举办,会上发布了最新一期的TOP500排名,世界排名前两位的超级计算机都采用了同样的集中式芯片平台——POWER。

正如这个名字一样,POWER处理器在业内的确是非常有分量,多被应用在金融、通信等领域,比如我们看到的各大银行、证券公司、电信运营商甚至许多保险公司也都是POWER的忠实用户。那么问题来了,为什么这些关乎到国计民生的行业都在采用POWER,为什么他们都选择了集中式平台?

要回答这个问题,实际上要回答的就是如何选择IT架构。1998年,加州大学的计算机科学家Eric Brewer提出了一个“CAP原则”,也叫做CAP定理。其中,C代表了一致性Consistency,即写操作之后的读操作,必须返回该值;A代表了可用性Availability,意思是只要收到用户的请求,服务器就必须给出回应;P代表的是分区容忍度Partition tolerance。分区容错的意思是,区间通信可能失败。比如,一台服务器放在中国,另一台服务器放在美国,这就是两个区,它们之间可能无法通信。

秒杀要提前几秒发货(天猫前5秒半价抢购技巧)
秒杀要提前几秒发货(天猫前5秒半价抢购技巧)

Eric Brewer认为,这三者是无法同时满足的(类似于坦克三要素一样),而用户需要做的,就是在三者当中选择自己的平衡点。CAP三个特性只能满足其中两个,那么取舍的策略就共有三种:

CA without P:如果不要求P(不允许分区),则C(强一致性)和A(可用性)是可以保证的。但放弃P的同时也就意味着放弃了系统的扩展性,也就是分布式节点受限,没办法部署子节点,这是违背分布式系统设计的初衷的。

CP without A:如果不要求A(可用),相当于每个请求都需要在服务器之间保持强一致,而P(分区)会导致同步时间无限延长(也就是等待数据同步完才能正常访问服务),一旦发生网络故障或者消息丢失等情况,就要牺牲用户的体验,等待所有数据全部一致了之后再让用户访问系统。设计成CP的系统其实不少,最典型的就是分布式数据库,如Redis、HBase等。

AP without C:要高可用并允许分区,则需放弃一致性。一旦分区发生,节点之间可能会失去联系,为了高可用,每个节点只能用本地数据提供服务,而这样会导致全局数据的不一致性。

说起这么枯燥的技术,很多人可能不太感兴趣,我们举个例子。比如在刚刚过去的双十一,许多人都参加了秒杀活动。但是你可能发现,明明秒杀前几秒你浏览商品的时候页面提示是有库存的,当你选择完商品准备下单的时候,系统提示你下单失败,商品已售完。这是为什么呢?

原来,这个问题就可以用CAP原则来解释。所谓的秒杀,可以看做是系统可用性与一致性之间的博弈,你之所以“看得到买不到”,这其实就是先在 A(可用性)方面保证系统可以正常的服务,然后在数据的一致性方面做了些牺牲。由此说来,这些秒杀的物品就相当于“薛定谔的猫”,在秒杀之前的任何一刻,你都不可能确定他它的存在。

这个例子也说明了分布式系统的一些局限性,对于那些秒杀的网友来说,这种体验是非常差的,“卧槽,无情”是大家的共同心声。但是系统架构师却是从整体的健壮性与可用性角度来考虑的,也是保证了大多数人的可用性。这就是数据应用中的“鱼和熊掌”,不可兼得呀。

另外一个关键性的问题就是,分布式系统的成本相对低廉,这个成本并非单单指的是采购成本,还有后续的系统运维、上层软件与应用及整个生态系统的部署。如今,绝大多数的系统都基于分布式系统而来,这样庞大的市场无疑对于任何一个参与者来说都是有利的,所以即便分布式系统会有些小的稳定性问题,但是考虑到成本及应用场景等因素,这一缺点对于绝大部分客户尤其是互联网业务来说还是能够接受的。

但是也有一些客户特别看重稳定性的问题,所以我们看到,无论是应用于商业(金融、通信)还是应用于科研(超级计算机),越是关键性的业务,越能够看到集中式系统的身影。这是因为,相对于分布式业务来说,集中式系统侧重于强一致性和可用性,这就决定了这一类系统往往部署简单,也不需要考虑多节点之间的系统分配问题。也正因为如此,往往集中式系统的性能都很强大,在数据的应用与处理上都更为高效。

以浪潮商用机器K1 POWER服务器为例。作为自主可控产品,K1 POWER提供了从系统安全设计到安全可信操作系统再到系统安全加固模块等三层设计,从底层架构和硬件设计上实现了安全可靠;相对于分布式架构来说,K1 POWER还可以实现全局一致读写,从节点到架构都实现了高可靠特性。应该说,作为集中式架构的代表,K1 POWER已经构建了关键业务云、创新业务云和AI/HPC混合应用云平台,核心业务系统已部署超过400个。

秒杀要提前几秒发货(天猫前5秒半价抢购技巧)
秒杀要提前几秒发货(天猫前5秒半价抢购技巧)

应该说,无论是集中式还是分布式,都只是IT技术发展的不同表现流派,正如我们文章开篇提到的,两者互有优劣,却并没有对错之分。对于大部分业务场景来说,分布式的好处是入门简单、成本低,生态丰富;但是对于要求较高的关键业务来说,集中式才能够提供足够的可靠性、一致性与可用性,我们经常说的5个9或者6个9的标准,也只有集中式架构能够实现。

就好像我们看金庸武侠小说,终极武功诸如独孤九剑、玄铁剑法以及九阳神功、降龙十八掌等等,最终无外乎殊途同归,能够克敌制胜才是最重要的。无论是集中式还是分布式架构,它们之间并不是你死我活的竞争,而是相互补充和相互平衡相互兼顾,最终还要解决客户的实际问题。

版权声明:本文内容由网友提供,该文观点仅代表作者本人。本站(http://www.zengtui.com/)仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 3933150@qq.com 举报,一经查实,本站将立刻删除。

版权声明:本文内容由作者小航提供,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至907991599@qq.com 举报,一经查实,本站将立刻删除。如若转载,请注明出处:http://www.hangzai.com/448262.html

(0)
小航的头像小航

相关推荐