顶级架构师的架构设计思维模型——阿里云 MVP孙玄

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介: 阿里云MVP,奈学教育CEO孙玄为大家带来基于线上真实案例驱动,谈顶级架构师的架构设计思维模型的介绍。内容包括顶级架构师具备的架构设计思维模型,分布式锁线上真实案例架构设计哲学本质剖析两部分。

快速成为顶级架构师的内功修炼

查看直播——基于线上真实案例,详谈架构设计的哲学本质

一、顶级架构师具备的架构设计思维模型

第一个比较重要的思维模型是业务需求至简抽象分析思维模型。作为一个架构师,不能完全活在技术的世界里,一定是要解决一些问题的。这些问题就是你的需求。比如说,产品同学来了一个需求,你能不能去抽象分析出来这个需求背后,他真正的本质需求是什么。需求背后的本质是非常重要的。

如果你能把这个需求背后的本质做出来,这个需求在你看来已经是一个简单的需求,这个叫需求抽象,即业务需求至简抽象分析的思维模型。

第二个思维模型是掌握哲学本质架构设计思维模型。

在市面上有很多架构。比如说,我们的SOA架构,微服务架构,等等。有这么多架构,他们存在的一个最本质的原因是什么呢。

我相信这么多架构存在,它只满足一个需求,那就是满足你的公司多业务场景的需求,最终达到公司层面要降本增效这样一个终极目的。也就是说,我们在做一个架构设计的时候,要选择合理的架构。比如说,微服务架构对你来说是合理的,只有掌握哲学本质,你做出的架构才是降本增效的,才是满足公司的业务场景的。

当然,掌握哲学本质架构设计思维模型有一些抽象,我们继续往下去剖析。对哲学本质的思维模型进一步往下去细化,就会发现做架构设计的时候,有哪些最基本的定律。再往下细化,一种思维模型是CAP架构设计思维模型

CAP本身是一个定律,你能不能根据一些需求一层一层的抽象,一层一层的分析,最后把你的架构设计映射到一批定律。如果你能一步一步通过需求做抽象分析,然后对架构进行拆解,最后映射到CAP定律,那么你就具备了CAP的架构设计思维模型。否则,你仅仅是掌握了CAP定律,但是你不知道怎么去应用。思维模型是一种智慧,也就是说,你要结合业务,把CAP模型用起来。如果你能掌握这个思维模型,那么你离本质又进了一步。

另一种思维模型是BASE架构设计思维模型。BASE是对CAP中一致性和可用性权衡的结果,其核心思想是即使无法做到强一致性,但每个应用都可以根据自身业务特点,采用适当的方式来使系统达到最终一致性。在很多情况下,我们是没办法用CAP定律来进行映射的,但是可以通过映射到BASE的思维模型来去做。这时候你能不能把它映射到BASE模型上去做,也是很重要的。

第三个架构思维模型是根据场景Balance架构设计思维模型

这个场景其实很多,比如说你的业务场景,你的老板给你的项目的一个时间场景,你的研发能力,你的运维能力都是场景。当然,最重要的一定是你的业务场景。根据场景去折中或者平衡的这样一种能力,其实是非常重要的一种思维模型。比如说,你具备一些大厂的架构设计的能力,当你去一个小厂,或者当你去一个创业公司,你再根据它的业务来设计架构的时候,不一定能够设计出适合当前业务的一个架构。因为你的场景折中的能力并没有形成,你只能依着葫芦去画瓢,但是瓢画出来不一定是最优雅的。继续往下细化,进一步拆解,得到“合适”架构设计思维模型。也就是说,在大厂你可以用这样的分布式架构,但是去了一个小厂以后,不一定要用分布式架构,可能用一个单体架构是一个比较好的方向。这是一个非常重要的思维模型。什么叫合适,还是比较抽象。进一步的拆解,得到适度超前架构设计思维模型。也就是说,你给出的架构能满足一定时间内业务的发展,比如说,满足半年到一年的发展需求,这样一个架构设计思维模型就是适度超前的。

具备了思维模型以后,我希望能够掌握架构设计的能力,具备以不变应万变的架构设计能力。这个不变就是架构设计的思维模型,这个万变就是各种场景。有了这种能力,你就一定可以给出优雅的架构设计方案

如果你能够把业务需求至简抽象,你能够得到问题的本质,你能给出合适的架构方案,那么你就会达到架构设计的终极之道,即架构设计哲学本质:降本增效。最终目的就是让你的公司能够降本增效,我们也必须按照这样的方式进行设计和实践。

二、分布式锁线上真实案例架构设计哲学本质剖析

首先我们讲一下CAP定律。2000年,Eric Brewer教授提出CAP猜想,2年后,被Seth Gilbert和Nancy Lynch从理论上证明。CAP是三个英文单词的首字母,分别是consistency、availability、partition tolerance。即强一致性、可用性、网络分区容忍性

CAP定律说的是,分布式系统三者同时满足二者,强一致性、可用性、网络分区容忍性三者同时满足的情况不存在。

举一个简单的例子。以数据库更新为例,C、A、P的具体含义如下图所示。假设我们有两个机房。机房一会通过数据访问层访问MySQL的主库,同时MySQL的主库会把数据同步到机房二的数据库的从库。机房二的数据访问层可以对数据进行读取。正常情况下,网络是通的,通过数据访问层写主库,然后同步到从库。

如果网络不通了,这时候数据同步不了,你这个写请求就返回不了,你的A就不可用。所以在这种情况下,C、A、P不能同时满足。我们只能选择CP模型或者AP模型。实际过程中AC模型意义不大。因为没有P,即没有了分布式。

image.png

刚才讲了,我们要具备CAP的架构设计思维模型。这个思维模型要通过例子去体现。

接下来我们看一个业务场景,交易商品库的锁定。比如说,一个用户加入我们的百万年薪课。限定一个人只能下单一次。要保证一个人下单一次,其实是有一个共享资源的问题。共享资源就是用户的UID。这时候需要对你的用户UID做一些串行化,让他串行化进行访问。如果用户UID被别人锁住了,你就不能再进行下单,你就不能消费,这是一个交易锁定。业务场景二和业务场景三如下图所示,分别是MQ消息去重和订单操作变更协同。

image.png

我们来分析一下这些业务场景的共性,它们背后其实都是有一些共享资源。

比如说,第一个防止用户重复下单,共享资源是用户UID。第二个消息驱动,假如是一个订单消息,共享资源就是订单的ID。第三个消息的协同,共享资源也是一个订单ID。

所以,本质上解决方式就是共享资源的一个互斥化,其实就是共享资源的一个串行化。而共享资源的串行化,其实就是一个锁的问题。但是,我们不能用本地锁,而要用分布式锁。分布式锁其实就是要解决资源在分布式环境下的一个串行的问题。

image.png

我们采用基于Redis的分布式锁实现方案,其原理是唯一线程串行处理。其实现方式如下图所示。浅层次来讲,存在锁时间不可控的问题。从更深的层次,我们要考虑业务场景的容忍度,一切脱离业务场景谈架构的行为都是不可取的。

image.png

回到整个架构设计哲学本质:分布式锁是CP模型,Redis集群是AP模型。

一般情况下,分布式锁是一个CP模型,我们要求你的锁不能重复。但是,在用Redis来实现这把锁的时候,会发现它其实是AP模型。很显然,你最后一定会遇到一些问题。

所以,你要具备CAP的架构设计思维模型的能力。有了思维模型,再去进一步分析它的深层次原因。大家可以想一个问题,难道分布式锁的实现永远是CP模型吗,有没有一些场景,AP模型也是可以的。当然,只要涉及到金融相关的,比如说,我的交易,我的支付,我的转账,要求一定是CP模型。

但是,当涉及到社交相关的,比如说,我发一个消息给朋友,本来消息发重复了以后应该过滤掉,但是它没有过滤掉,朋友收到我两条重复的消息,比如说今天晚上有空一起吃饭吗,本来他不想回我,当他发现这个消息发了两遍,他觉得我的邀请非常诚恳,他就答应我了。在这种场景下是可以用AP模型的。所以分布式锁也要根据场景折中,一定要把你的架构设计映射到CAP定律,到底采用一个什么样的模型来打造会比较合适,是非常重要的一个方向。

一旦有了这种思维模型,再去设计分布式锁就比较简单。在存储模型的选择上,如果是一个AP模型,可以用redis来做。如果是一个CP模型,推荐大家用etcd来做。有了最底层的架构设计之道,再去做其他场景也是很容易的。

image.png
关键词:顶级架构师,架构设计,思维模型,分布式锁,CAP定律

快速成为顶级架构师的内功修炼

查看直播——基于线上真实案例,详谈架构设计的哲学本质

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
9天前
|
设计模式 Java API
微服务架构演变与架构设计深度解析
【11月更文挑战第14天】在当今的IT行业中,微服务架构已经成为构建大型、复杂系统的重要范式。本文将从微服务架构的背景、业务场景、功能点、底层原理、实战、设计模式等多个方面进行深度解析,并结合京东电商的案例,探讨微服务架构在实际应用中的实施与效果。
47 6
|
9天前
|
设计模式 Java API
微服务架构演变与架构设计深度解析
【11月更文挑战第14天】在当今的IT行业中,微服务架构已经成为构建大型、复杂系统的重要范式。本文将从微服务架构的背景、业务场景、功能点、底层原理、实战、设计模式等多个方面进行深度解析,并结合京东电商的案例,探讨微服务架构在实际应用中的实施与效果。
25 1
|
1月前
|
存储 分布式计算 API
大数据-107 Flink 基本概述 适用场景 框架特点 核心组成 生态发展 处理模型 组件架构
大数据-107 Flink 基本概述 适用场景 框架特点 核心组成 生态发展 处理模型 组件架构
82 0
|
10天前
|
机器学习/深度学习 自然语言处理 C++
TSMamba:基于Mamba架构的高效时间序列预测基础模型
TSMamba通过其创新的架构设计和训练策略,成功解决了传统时间序列预测模型面临的多个关键问题。
34 4
TSMamba:基于Mamba架构的高效时间序列预测基础模型
|
11天前
|
人工智能 云计算 网络架构
阿里云引领智算集群网络架构的新一轮变革
11月8日~10日在江苏张家港召开的CCF ChinaNet(即中国网络大会)上,众多院士、教授和业界技术领袖齐聚一堂,畅谈网络未来的发展方向,聚焦智算集群网络的创新变革。
阿里云引领智算集群网络架构的新一轮变革
|
10天前
|
人工智能 运维 网络架构
阿里云引领智算集群网络架构的新一轮变革
11月8日至10日,CCF ChinaNet(中国网络大会)在江苏张家港召开,众多院士、教授和技术领袖共聚一堂,探讨网络未来发展方向。阿里云研发副总裁蔡德忠发表主题演讲,展望智算技术发展趋势,提出智算网络架构变革的新思路,发布高通量以太网协议和ENode+超节点系统规划,引起广泛关注。阿里云HPN7.0引领智算以太网生态蓬勃发展,成为业界标杆。未来,X10规模的智算集群将面临新的挑战,Ethernet将成为主流方案,推动Scale up与Scale out的融合架构,提升整体系统性能。
|
1月前
|
缓存 NoSQL Java
秒杀圣经:10Wqps秒杀,16大架构绝招,一文帮你秒变架构师 (2)
高并发下的秒杀系统设计是一个复杂的挑战,涉及多个关键技术点。40岁老架构师尼恩在其读者交流群中分享了16个关键架构要点,帮助解决高并发下的秒杀问题,如每秒上万次下单请求的处理、超卖问题的解决等。这些要点包括业务架构设计、流量控制、异步处理、缓存策略、限流熔断、分布式锁、消息队列、数据一致性、存储架构等多个方面。尼恩还提供了详细的实战案例和代码示例,帮助读者全面理解和掌握秒杀系统的架构设计。此外,他还分享了《尼恩Java面试宝典》等资源,帮助读者在面试中脱颖而出。如果你对高并发秒杀系统感兴趣,可以关注尼恩的技术自由圈,获取更多详细资料。
秒杀圣经:10Wqps秒杀,16大架构绝招,一文帮你秒变架构师 (2)
|
1月前
|
机器学习/深度学习 网络架构 计算机视觉
目标检测笔记(一):不同模型的网络架构介绍和代码
这篇文章介绍了ShuffleNetV2网络架构及其代码实现,包括模型结构、代码细节和不同版本的模型。ShuffleNetV2是一个高效的卷积神经网络,适用于深度学习中的目标检测任务。
70 1
目标检测笔记(一):不同模型的网络架构介绍和代码
|
1月前
|
缓存 NoSQL Java
秒杀圣经:10Wqps高并发秒杀,16大架构杀招,帮你秒变架构师 (1)
高并发下,如何设计秒杀系统?这是一个高频面试题。40岁老架构师尼恩的读者交流群中,近期有小伙伴在面试Shopee时遇到了这个问题,未能很好地回答,导致面试失败。为此,尼恩进行了系统化、体系化的梳理,帮助大家提升“技术肌肉”,让面试官刮目相看。秒杀系统设计涉及16个架构要点,涵盖业务架构、流量架构、异步架构、分层架构、缓存架构、库存扣减、MQ异步处理、限流、熔断、降级、存储架构等多个方面。掌握这些要点,可以有效应对高并发场景下的秒杀系统设计挑战。
秒杀圣经:10Wqps高并发秒杀,16大架构杀招,帮你秒变架构师 (1)
|
1月前
|
前端开发 测试技术 数据处理
Kotlin教程笔记 - MVP与MVVM架构设计的对比
Kotlin教程笔记 - MVP与MVVM架构设计的对比
34 2