从零开始学架构(李运华) pdf下载地址
https://pan.baidu.com/s/1cZJOR3cfpmS1BDfp6gJaBQ
提取码:u2ou

说明:对从零开始学架构这本书看时所做的记录,对具体的功能点可以自行百度

  • 模块,逻辑角度拆分,如注册模块、登录模块
  • 组件,物理角度来分,如web服务器,nginx

框架是标准的,有规范的产品,关注规范

架构关注结构

软件架构指软件系统的顶层结构,为了高性能、高可用、可扩展、所以要做架构设计,但盲目的这样做会消耗很多额外的时间。

架构设计的目的是为了解决复杂度带来的问题

  • 单机复杂度
  • 集群复杂度
简单的系统更容易做到高性能,因为简单功能点越少,越好优化。
高可用指系统无中断地执行其功能,本质通过冗余来实现。加服务器,加机房,加厂家,如联通。
存储高可用的难点不在于如何备份数据,而在于如何减少或规避数据不一致,对业务造成的影响。

各种数据库出现解决的问题

  • nosql:为了解决关系型数据库,无法对应高并发访问带来的访问压力

    • mencache、redis只是把数据库的索引独立出来,做成了一个缓存系统
  • 全文检索引擎:为了解决关系型数据库,耐like搜索的低效的问题
    • solr+lucene
    • elasticsearch
  • hadoop:为了解决传统文件系统,无法对应海量数据存储和计算的问题
    • hadoop基础其实是集群方案+数据复制方案
架构设计原则
  • 合适原则,合适由于业界领先
  • 简单原则,简单优于复杂(结构复杂性,逻辑复杂性)
  • 演化原则,演化优于一步到位,类似于生物演化
为何备选方案
  1. 设计备选方案,备选阶段,关注的是技术选型,而不是技术细节,一般3-5个备选方案
  2. 评估和选择备选方案,备选方案,每个都是可行的,否则也不能叫备选方案
  3. 指导思想,最简单派,最牛派,最熟派,领导派
  • 横向扩展是web集群
  • 纵向扩展拆分为子系统
  • 从性能,复杂度,成本,可扩展,可用性进行对比,按优先级选择对比的属性
总结

首先分析出系统的复杂性,在挑选合适的架构模式进行组合

从零开始学架构 01-架构基础【笔记】相关推荐

  1. 从零开始学前端 - 1. HTML基础知识

    作者: 她不美却常驻我心 博客地址: https://blog.csdn.net/qq_39506551 微信公众号:老王的前端分享 每篇文章纯属个人经验观点,如有错误疏漏欢迎指正.转载请附带作者信息 ...

  2. 从零开始学python网络爬虫读书笔记_从零开始学Python网络爬虫 中文pdf

    资源名称:从零开始学Python网络爬虫 中文pdf 第1章 Python零基础语法入门 1 第2章 爬虫原理和网页构造 17 第3章 我的第一个爬虫程序 26 第4章 正则表达式 45 第5章 Lx ...

  3. PDF分享-SpringCloud+高并发+中间件+微服务架构从零开始学微服务架构

    什么是微服务? 如何快速上手SpringCloud微服务系统架构+常用中间件服务 1.SOA.Webservice.Dubbo.SpringCloud究竟什么是微服务? 2.单体应用向微服务异构平台架 ...

  4. (十六)从零开始学人工智能-深度学习基础3

    文章目录 一.生成对抗网络基础 1.1 GANGANGAN概述 1.2 什么是生成对抗网络? 1.2.1 对抗生成网络背后的数学原理 1.2.2 重说GAN原理 1.2.3 小结 1.3 GANs应用 ...

  5. (十四)从零开始学人工智能-深度学习基础及CNN

    文章目录 一.深度学习基础 1.1 深度学习及其发展历史 1.1.1 什么是学习? 1.1.2 什么是机器学习? 1.1.3 什么是深度学习? 1.1.4 深度学习发展历史 1.1.5 小结 1.2 ...

  6. 从零开始学ASP.NET(基础篇)

    原作者:蓝鲸 出处:5D多媒体 学ASPNET与ASP有区别,这种区别不是语言上的,而是思路上的区别.ASP是纯面向过程的,而ASPNET是完全面向对向的.这种区别使我们在编程的结构设计上要与ASP有 ...

  7. 《Spring+Spring MVC+MyBatis从零开始学》傻瓜式学习笔记

    前言:买这本书主要是为了学MyBatis.所以着重记一下第六章以及后面的. 目的:学习大量开发知识,早日跳槽去更好的单位.[2019年09月02日] 错误更改:第六章 6.2.3 第73页 示例6-4 ...

  8. 从零开始学AI(Python基础)

    本来不想写这个关于Python的东西的,因为网上太多人写了,而且一般来说Python的基础语法比C++的要简单很多,没有那么多难以理解的指针,模板,操作运算符等相关的东西,但为了记录自己学习的脚步,还 ...

  9. 从零开始学PowerShell(1)初见基础命令

    PowerShell在设计之初就考虑到易用性,因为我们的运维系统管理人员实在是太忙碌了,所以你可以从它的每个标准的命令名上就大致能猜出这个命令是做什么的,从他的命名结构也可以发现均按照"动词 ...

  10. 从零开始学WEB前端——CSS基础

最新文章

  1. MySQL三大日志及主从复制的原理
  2. php定时红包,PHP随机红包和等额红包的简单实现
  3. CentOS 6.3 下用ntfs-3g挂载Windows NTFS分区
  4. 使用开发者工具调试jsp页面中的脚本
  5. 软件工程结对作业01
  6. MYSQL 用户的操作
  7. 通达OA智能开发平台CRM系统二级下拉菜单联动的实现方法
  8. 织梦php 文章采集规则,dede自带采集器的高阶技巧
  9. 毕业设计-两轮自平衡小车主控板
  10. Microsoft Office XP 智能标记的安装和安全性
  11. 计算机电脑用户名,如何改计算机用户名(administrator)
  12. c语言万花筒,C/C++——元胞自动机万花筒
  13. gentoo php,Gentoo安装php7
  14. 安装Ubuntu系统卡在载入界面,显示正在安装open vm tools
  15. sql cast 和convert用法详解
  16. 【python】使用pyautogui进行屏幕捕捉实现自动化操作
  17. python生成文章标题_标题党文章生成器
  18. 模拟NAND FLASH 读写BCH ECC校验
  19. oracle library is not loaded解决方法
  20. 凹入表示法(C语言版)

热门文章

  1. VerilogA学习 - VCO demo 合集
  2. 学习Oracle Applications 相关文档
  3. 使用OpenCV进行人脸识别的三种算法(官方网翻译)
  4. 坚叔:让科幻片的概念变成产品丨编程挑战赛 x 嘉宾分享
  5. MS7024 TV Encode digital数字信号转AV/SV配置说明
  6. jquery-2.1.1.min.js:4 GET http://localhost:9090/api/get/list?page=1page_size=10type=1 404 (Not Fou
  7. 深聊性能测试,从入门到放弃之: Windows系统性能监控(三)任务管理器介绍及使用。
  8. UITableView顶部多出一截空白问题
  9. Ubuntu20.04更换软件源之后apt-get update报错
  10. 如何在Excel中调用Python脚本,实现数据自动化处理!