架构
2NaCl
主攻Java后端开发与云计算Paas平台、离线大数据平台相关
展开
-
架构设计原则案例
接下来将会发出总共五篇的专栏,讲述架构设计的案例和步骤,为了能理解复杂的理论知识,先说一下现在市面上广为人知的产品背后架构的发展历史。淘宝淘宝技术发展主要经历了“个人网站”→“Oracle/ 支付宝 / 旺旺”→“Java 时代 1.0”→“Java 时代 2.0”→“Java 时代 3.0”→“分布式时代”。我们看看每个阶段的主要驱 动力是什么。个人网站2003 年 4 月 7 日...原创 2019-09-29 08:40:11 · 284 阅读 · 0 评论 -
高性能缓存架构
虽然我们可以通过各种手段来提升存储系统的性能,但是单纯依靠存储系统的性能提升不够的典型场景有:需要经过复杂运算后得出的数据,存储系统无能为力例如,一个论坛需要在首页展示当前有多少用户同时在线,如果使用mysql来存储当前用户状态,则每次获取这个总数都要count(*)大量数据,这样的操作无论怎么优化mysql,性能都不会太高。如果要实时展示用户同时在线数,则mysql性能无法支撑。读多...原创 2019-09-29 09:31:25 · 190 阅读 · 0 评论 -
架构设计第一步:识别复杂度
系列文章将会分成四期说明架构设计相关的四个步骤,一起来看看在实践中如何实现架构设计,今天就先来看架构设计流程的第一步:识别复杂度。架构设计第一步:识别复杂度首先我们要知道,架构设计的本质目的是为了解决软件系统的复杂性,所以在设计架构的时候就要首先先分析复杂性。只有正确分析出了系统的复杂性,后续的架构设计方案才不会偏离方向;否则,如果对系统的复杂性判断错误,即使后续的架构设计方案再完美现金,都是...原创 2019-09-30 18:02:00 · 463 阅读 · 0 评论 -
复杂度来源:高可用
今天来说一下复杂度的第二个来源高可用先看一下维基百科对高可用的定义:系统无中断地执行其功能的能力,代表系统的可用性程度,是进行系统设计时的准则之一。这个定义的关键在于“无中断”,但恰好难点也在“无中断”上面,因为无论是单个硬件还是单个软件,都不可能做到无中断,硬件会出故障,软件会有 bug;硬件会逐渐老化,软件会越来 越复杂和庞大……除了硬件和软件本质上无法做到“无中断”,外部环境导致的不可...原创 2019-10-01 16:58:19 · 157 阅读 · 0 评论 -
架构设计第二步:设计备选方案
上一期我讲了架构设计流程第 1 步识别复杂度,确定了系统面临的主要复杂度问题后,方案设 计就有了明确的目标,我们就可以开始真正进行架构方案设计了。今天我来讲讲架构设计流程第 2 步:设计备选方案,同样还会结合上期“前浪微博”的场景,谈谈消息队列设计备选方案的实战。架构设计第二步:设计备选方案架构师的工作并不神秘,成熟的架构师需要对已经存在的技术非常熟悉,对已经经过验证的架构 模式烂熟于心,然后...原创 2019-10-02 13:38:12 · 1118 阅读 · 0 评论 -
架构设计第三步:评估和选择备选方案
上一期我讲了设计备选方案,在完成备选方案设计后,如何挑选出终的方案也是一个很大的挑 战,主要原因有:每个方案都是可行的,如果方案不可行就根本不应该作为备选方案。没有哪个方案是完美的。例如,A 方案有性能的缺点,B 方案有成本的缺点,C 方案有新技 术不成熟的风险。评价标准主观性比较强,比如设计师说 A 方案比 B 方案复杂,但另外一个设计师可能会认为 差不多,因为比较难将“复杂”...原创 2019-10-03 14:00:53 · 5165 阅读 · 0 评论 -
架构设计第四步:详细方案设计
完成备选方案的设计和选择后,我们终于可以长出一口气,因为整个架构设计最难的一步已经完 成了,但整体方案尚未完成,架构师还需继续努力。接下来我们需要再接再励,将最终确定的备 选方案进行细化,使得备选方案变成一个可以落地的设计方案。所以今天我来讲讲架构设计流程 第 4 步:详细方案设计。架构设计第 4 步:详细方案设计简单来说,详细方案设计就是将方案涉及的关键技术细节给确定下来。假如我们确定...原创 2019-10-03 14:06:33 · 1484 阅读 · 0 评论