
从零开始学架构
天下步武
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【从零开始学架构-李运华】05|复杂度来源:高可用
高可用的定义 系统无中断地执行其功能的能力,代表系统的可用性成都,是进行系统设计时的准则之一。 虽然方案五花八门但本质就是“冗余”!与高性能的区别 高性能增加机器在于扩展处理性能,高可用在于增加冗余单元防止中断。计算高可用 计算指的是业务逻辑处理能力。 a.增加任务分配器 b.任务分配器和业务服务器的链接和交互管理:建立连接、...转载 2018-07-17 09:16:37 · 2333 阅读 · 0 评论 -
【从零开始学架构-李运华】08|架构设计三原则
成为架构师是每个程序员的梦想,但并不意味着把编程做好就能够自然而然的成为一个架构师,优秀的程序员和架构师之间还有一个明显的鸿沟需要跨越,这个鸿沟就是“不确定性”架构设计并没有像编程语言那样的语法约束,更多的时候是面多多种可能时的“选择”例如:选先进的技术还是团队熟悉的技术?先进的出问题怎么办?熟悉的后续技术演化困难怎么办?用Angular还是React,一个很强大一个更灵活MyS...转载 2018-07-20 14:37:22 · 3377 阅读 · 0 评论 -
【从零开始学架构-李运华】10|架构设计流程:识别复杂度
架构设计第一步:识别复杂度架构设计的本质目的是为了解决系统复杂性,所以要先了解。【例】一个系统的复杂度来源于业务逻辑复杂,功能耦合度严重,架构师设计TPS达到50000/s的高性能架构没有意义。出现问题主要为了满足“高可用”“高性能”“可扩展”三个方面,就算同时出现也要分优先级。【例】亿级用户平台设计对标QQ,开始设计过于复杂,投入大量人力,上线后发现过度设计多此一举,而且带来很多...转载 2018-08-09 09:10:46 · 902 阅读 · 0 评论 -
【从零开始学架构-李运华】01|架构到底是指什么?
大部分人无法回答准确以下问题。例如:1.架构和框架是什么关系?有什么区别?2.LInux有架构,MySQL有架构,JVM也有架构,使用Java开发、MySQL存储、跑在Linux上的业务系统也有架构,应该关注哪一个?3.微信有架构,微信的登陆系统也有架构,支付也有架构,我们谈微信架构谈的是什么?想要清楚以上问题需要梳理几个有关系又相似的概念:系统与子系统、模块与组建、框架与架构...转载 2018-07-14 08:53:08 · 4766 阅读 · 0 评论 -
【从零开始学架构-李运华】开篇词|照着做,你也能成为架构师!
一、架构设计相关的特性1. 架构设计的思维和程序设计的思维差异很大 架构设计的关键思维是判断和取舍 程序设计的关键思维是逻辑和实现2.架构设计没有体系化的培训和训练机制3.程序员对架构设计的理解存在很多误区 并没有那么高大上,这些误区令人望而生畏,选择放弃二、整套架构设计方法论和架构实践,包括以下内容 架构基础 本质、历史、...转载 2018-07-14 08:32:45 · 3511 阅读 · 0 评论 -
【从零开始学架构-李运华】02|架构设计的历史背景
机器语言(1940年之前) 用0和1来表示机器可识别的指令和数据。 太难写、太难读、太难改汇编语言(20世纪40年代) 符号语言,本质上面对机器,需要程序员将现实世界问题按照机器逻辑进行翻译,编写复杂!!高级语言(20世纪50年代) 早期:Fortran、LISP、Cobol等 高级语言可以让程序员不需要关心机器底层的低级结构和逻辑,只需要...转载 2018-07-14 09:15:05 · 1469 阅读 · 0 评论 -
【从零开始学架构-李运华】03|架构设计的目的
架构设计的误区 系统不一定需要架构设计; 架构设计不一定能提升开发效率; 好的架构设计能促进业务发展; 不是所有系统都需要架构设计; 等等……架构设计的真正目的 为了解决软件复杂度带来的问题如何下手架构设计? 1.熟悉和理解需求 2.架构设计并不是面面俱到,而是识别问题有针对性的解决 3.理解每个架构...转载 2018-07-14 13:52:22 · 2446 阅读 · 0 评论 -
【从零开始学架构-李运华】04|复杂度来源:高性能
复杂度的六个来源之一:高性能运算性能迅猛发展、软件复杂度发展、硬件存储发展。用来代替旧技术的新技术才会给软件系统带来复杂度,而用来淘汰旧技术的新技术则不用担心。 1.单台计算机 手工操作->批处理->进程->分时多进程->进程通信->线程(共享进程数据)->互斥锁机制 进程:操作系统分配资源的最小单位 线程:操作系统...转载 2018-07-14 20:26:03 · 2576 阅读 · 0 评论 -
【从零开始学架构-李运华】06|复杂地来源:可扩展性
可扩展性指系统为了应对将来需求的变化而提供的一种扩展能力,新需求出现时系统不需要或者仅需要少量修改就可以支持,无需整个系统重构或者重建。 面向对象就是为了解决可扩展性,后来的设计模式更是将可扩展性做到了极致。具备良好扩展性的两个基本条件:正确预测变化、完美封装变化。预测变化架构师需要预测,但预测本身就存在不确定性复杂性在于:不能每个设计点都考虑可扩展性不能完全...转载 2018-07-17 15:12:05 · 652 阅读 · 0 评论 -
【从零开始学架构-李运华】07|低成本、安全、规模
低成本 高性能和高可用架构通常都是增加服务器来满足要求,但低成本正相反,当然也不是首要目标。 往往“创新”才能达到低成本的目标!!技术创新:NoSQL(Memcache、Redis)等是为了解决关系型数据库无法应对高并发带来的访问压力。全文搜索引擎(Sphinx、Elasticsearch、Slor)的出现是为了解决关系型数据库Like搜索的低效问题。Hadoop的出...转载 2018-07-17 16:48:21 · 1057 阅读 · 0 评论 -
【从零开始学架构-李运华】09|架构设计原则案例
【淘宝】 个人网站 > Oracle/支付宝/旺旺 > Java时代1.0 > Java时代2.0 > Java时代3.0 > 分布式时代买一个快速可用、快速开发的系统。MySQL升级Oracle,买性能 3. PHP切换Java,重构网站 4. 增加各种组件框架优化性能控制成本 5. 去IOE【手机QQ】 十万...转载 2018-07-20 16:44:40 · 2386 阅读 · 0 评论