高并发大访问量架构设计演进之路 归纳总结

第01:大型架构的演进之路
第02(上):分布式缓存
第02(下):分布式缓存
第03:分布式消息队列
第04:分布式数据存储
第05:分布式服务框架
第06:高性能系统架构
第07:高可用系统架构
第08:系统的安全架构
第09:架构实战案例分析
第10:如何成为技术专家

系统的垂直伸缩,水平伸缩
系统的性能瓶颈:分部式缓存;分布式数据存储,分布式服务架构;

强烈的好奇心,工程技术,产生价值赚钱(科学研究不同)
扎实的软件技术基础:操作系统,数据结构,设计模式,编程语言,
出色的编程能力:优秀的代码
深刻领悟主流技术产品模式;

互联网架构的关键技术:缓存,异步,分布
互联网架构的核心要素:性能,可用,安全
架构设计方案:系统,框架,数据库
架构师的成长:搞定问题的攻略

大型分布式架构

优秀架构师必备的技能:
强烈的好奇心,
敏锐的业务嗅觉,工程技术,产生价值赚钱(科学研究不同)
扎实的软件技术基础:操作系统,数据结构,数据库原理,设计模式,编程语言,
出色的编程能力:优秀的代码
深刻领悟主流技术产品模式:站在巨人的肩膀上思考;

架构知识体系和学习路径:
基础扎实:操作系统原理,数据结构,数据库原理,算法能力,设计模式;
技术产品:缓存,异步,分布式存储,微服务
架构设计考虑的点:高可用,高性能,高安全

大型互联网架构:高并发,大流量,高可用,海量数据,用户分布广,安全,发布平缓
垂直伸缩:提高CPU,CIPAN,小型机到大型机
水平伸缩:
少量用户,单机系统:应用服务器:应用程序,文件,数据库
万级用户,数据库与应用分离,2,3台服务器
十万级用户,缓存+应用服务器集群
百万级用户,反向代理,CDN+数据库读写分离
千万级用户,分布式文件系统+分布式数据库系统
亿级用户,搜素引擎,nosql,消息队列+分布式服务

缓存知识架构图:
特点:技术简单,性能提升显著,应用场景多
缓存快:内存,最终结果不需计算,降低IO设备响应
缓存存储:hash表,key,value比数据库读取快
设计缓存:缓存键集合总数要小,缓存时长,缓存空间大
缓存类型:
通读缓存:
代理缓存存在客户端
反向代理:代理数据中心,没有时在访问反向代理缓存服务器,没有在访问web应用服务器
内容分发CDN缓存:数据机房部署的缓存服务器
旁缓存:对象缓存需连接,没有°数据库,加装到缓存服务器中

合理使用缓存:
一次修改,多次读取热点数据 数据不一致与脏读
缓存雪崩:对象缓存是通过加装数据到内容

分布式缓存
代理和反向代理
内容分发网络CDN
分布式对象缓存架构设计:memached服务器集群(memached服务器,memached客户端程序)

3分布式消息队列
分布式消息队列原理:通过消息队列来让消息生产者和消息消费者到达异步,互不相关,同步调用,异步调用,异步处理,易于伸缩,
构建事件驱动架构:点对点模型:逻辑相对独立,耗时长
发布订阅模式:逻辑复杂
消息队列的优点:异步处理,减少时间,易伸缩,平衡高峰处理压力,填补低峰
消息队列的缺点:消息无序,重复队列,复杂度风险
消息队列的反模式:阻塞式调用,
消息队列的产品:kafka,rabbitMQ,ACTIVEMQ

4分布式数据存储
mysql主从复制架构:实现数据库读写分离,更新主数据库,记录日志,从数据库根据日志更新从数据库
一主多从复制的优点:分摊负载,高可用,便于冷备,专机专用
mysql主主复制方案:可用提高数据库主数据库高可用性
更新表结构会导致巨大的延时

数据分片原理:数据分片方案:数据分片扩容:数据库部署:分库,分片
数据库部署:单一数据库,主从数据库,一主多从,多主多从,分片存储
大规模数据冲突性:nosql,时间戳大的数据覆盖时间戳小的数据
mysql亿级数据分区存储
分布式数据库架构
nosql数据库CAP原理,最终一致性
分布式数据库中间件:mycat 支持join

5分布式服务架构,微服务
单体系统的挑战:编译部署困难,代码分支管理困难,数据库连接耗尽,新增业务困难,发布困难,

分布式服务架构原理:根据模块将单体系统分解成不同的应用,单独发布到不同服务器
微服务架构;dubbo,spring cloud
消息队列kafka,RocketMQ,activeMA,RabbitMQ
服务治理与最佳实践:需求,价值,设计原则,实践,找工具,事件索源

6高性能系统架构:性能测试,性能优化
系统性能度量方法:性能测试,性能优化,主观体验,客观测试
系统性能主要指标:性能计算器(cpu,i/o,内存),响应时间,吞吐量,并发数(同事请求数据),TPS,QPS
系统性能测试:性能测试,负载测试,压力测试,稳定性测试
系统性能优化的7层境界:机房骨干网络优化(多点部署),服务器硬件优化,操作系统优化,虚拟机优化,基础组件优化tomcat,软件架构优化(缓存,异步,集群),
软件代码优化(面试对象,并发,多线程,异步,数据机构,数组,链表,has表特性,数据库优化)

7高可用系统架构
系统可用性度量与管理:n个9,qq是9个9,99.99%可用性指标,故障分
DNS被劫持: CDN服务器不可用,宕机,代码bug,黑客攻击,第三方服务部可用

系统高可用架构:负载均衡,备份与失效,消息队列,限流与降级,异地多活
系统高可用策略:应用服务器负载均衡服务器,HTTP重定向负载均衡,DNS负载均衡,反向代理服务器(应用在20台服务器左右的环境),
ip层负载均衡,数据链路层负载均衡(大型互联网应用配置的标准),限流(对高并发限流),降级(关闭部分功能,评价,物流确认)
异地多活多机房架构,就近原则,数据同步,主机房,主从模式
备份,失效转移,限流与降级
高可用运维:自动化部署,自动化监控(cpu,i/o),自动化测试,预发布测试

8高安全的系统架构
web攻击:xss攻击(恶意url攻击,< 将<转译(),sql注入攻击(编定参数,用户提交的只有参数不是sql语句),CSRF攻击(表单token,验证码)
web防护:过滤消毒将<转译(,SQL参数绑定,验证码,web防火墙,开源防火墙modsecurity
数据加密技术:单项散列加密(明文到密文),对称加密(加密解密),非对称加密
信息过滤与反垃圾:分类算法,布隆过滤器

9架构实战案例分析
初创互联网公司架构演化与发展
下一代编程框架:响应式编程架构设计与开发
分布式数据库设计与开发

如何成为架构师:
从普通程序员到顶尖专家之路
扭曲现实力场,架构师重新定义问题
架构师阅读清单

目录

分布式消息队列
分布式消息队列原理
构建事件驱动架构
消息队列的优缺点
消息队列的反模式

分布式数据存储
mysql主从复制架构
mysql亿级数据分区存储
分布式数据库架构
nosql数据库

分布式服务架构
单体系统的挑战
分布式服务架构原理
服务治理与最佳实践

高性能系统架构
系统性能度量方法
系统性能主要指标
系统性能测试:负载与压力测试
系统性能优化的7层境界

高可用系统架构
系统可用性度量与管理
系统高可用策略:备份,失效转移,限流与降级
高可用运维

高安全的系统架构
web攻击与防护
数据加密技术与秘钥安全
信息过滤与反垃圾

架构实战案例分析
初创互联网公司架构演化与发展
下一代编程框架:响应式编程架构设计与开发
分布式数据库设计与开发

如何成为架构师:
从普通程序员到顶尖专家之路
扭曲现实力场,架构师重新定义问题
架构师阅读清单

原文地址:https://www.cnblogs.com/csj007523/p/11339233.html

时间: 2024-12-25 03:46:46

高并发大访问量架构设计演进之路 归纳总结的相关文章

高并发大型网站架构设计

一个大型的网站网站应该由如下6个子系统组成 负载均衡系统 反向代理系统 Web服务器系统 分布式存储系统 底层服务系统 数据库集群系统 为什么要做高并发系统设计? 事实上,针对于任何单一的网络服务器程序,其可承受的同时连接数目是有理论峰值的,通过C++中对TSocket的定义类型:word,我们可以判 定这个连接理论峰值是65535,也就是说,你的单个服务器程序,最多可以承受6万多的用户同时连接.但是,在实际应用中,能达到一万人的同时连接并能保 证正常的数据交换已经是很不容易了,通常这个值都在2

亿级数据的高并发通用搜索引擎架构设计(转-张宴)

[文章作者:张宴 本文版本:v1.0 最后修改:2008.12.09 转载请注明原文链接:http://blog.zyan.cc/post/385/] 曾经在七月,写过一篇文章──<基于Sphinx+MySQL的千万级数据全文检索(搜索引擎)架构设计>, 前公司的分类信息搜索基于此架构,效果明显,甚至将很大一部分带Where条件的MySQL SQL查询,都改用了Sphinx+MySQL搜索.但是,这套架构仍存在局限:一是MySQL本身的并发能力有限,在200-300个并发连接下,查询 和更新就

[实用] 为app提供api,架构该怎么设计,需要考虑高并发,访问量比较大

为app提供api,架构该怎么设计,需要考虑高并发,访问量比较大 引用:http://zhidao.baidu.com/link?url=D_TRx6MlKqEz9Lxw7Yd58Nb53MGiKtfsKdvwRHseod4lFKd6iy0WXVrDX6VLe2rubklVpS9EjjE5BZ3U5UjkcBJvhfUWS5p0bQvLPWeBxHW 2015-04-13 21:58 提问者采纳 1.关于rest,仅仅是一种风格,至于框架,spring mvc 是比较成熟的,其实这块mvc 框架

高并发高流量的网站架构设计 (转)

Web2.0的兴起,掀起了互联网新一轮的网络创业大潮.以用户为导向的新网站建设概念,细分了网站功能和用户群,不仅成功的造就了一大批新生的网站,也极大的方便了上网的人们.但Web2.0以用户为导向的理念,使得新生的网站有了新的特点——高并发,高流量,数据量大,逻辑复杂等,对网站建设也提出了新的要求. 本文围绕高并发高流量的网站架构设计问题,主要研究讨论了以下内容: 首先在整个网络的高度讨论了使用镜像网站,CDN内容分发网络等技术对负载均衡带来的便利及各自的优缺点比较.然后在局域网层次对第四层交换技

高并发大流量网站 10 个解决方法

高并发大流量网站 10 个解决方法1.硬件升级 普通的P4服务器一般最多能支持每天10万独立IP,如果访问量比这个还要大, 那么必须首先配置一台更高性能的专用服务器才能解决问题 ,否则怎么优化都不可能彻底解决性能问题. 2.负载均衡 它是根据某种负载策略把请求分发到集群中的每一台服务器上,让整个服务器群来处理网站的请求.公司比较有钱的,可以购买专门负责负载均衡的硬件(如:F5),效果肯定会很好.对于大部分公司,会选择廉价有效的方法扩展整个系统的架构,来增加服务器的吞吐量和处理能力,以及承载能力.

百万级高并发WebRTC流媒体服务器设计与开发

第1章 课程导学与准备工作本章主要介绍为何要学习WebRTC流媒体服务器开发,以及本门课能为我们带来哪些收获.之后会为大家介绍本课程内容具体安排,最后给出如何学好这门课程的一些学习建议.希望大家都能通过这门课程,学有所成,学有所归. 第2章 C++语言基础回顾[已掌握,可略过]为了便于大家更好的学习流媒体服务器的开发,本章将带大家对WebRTC服务器开发中用到的C++基础知识进行回顾梳理,如类的定义与使用,继承,多态,名存空间等相关知识. 第3章 服务器基础编程本章将带你学习最基础的服务器开发,

百万级高并发WebRTC流媒体服务器设计与开发教程云

百万级高并发WebRTC流媒体服务器设计与开发 资源获取链接:点击获取完整教程 百万级高并发WebRTC流媒体服务器设计与开发 5G时代音视频为王,随着实时音视频应用的爆发,来自Google 的WebRTC成为了人们关注的焦点,但很多人却不知道如何使用WebRTC实现多人实时互动,本课就将围绕与浏览器互通.级联.可扩展等6大痛点手把手带你学习大负载.高并发.高性能 WebRTC 流媒体服务器的设计与开发,揭秘万人互动直播背后的深层奥秘,打造可负载百万用户量的企业级的流媒体服务器 播答题的核心需求

面向海量数据的高并发高可用分层系统架构设计

近期参与一个互联网项目,按照该项目的需求设计了分层的系统架构,主要目的是高并发高可用,能够根据用户访问量和并发情况进行伸缩. 第一个部分是由Web服务器和应用服务器构成的负载均衡区.该区域的主要目标是分散用户的访问量,平衡各服务器的压力,提高各服务器的资源利用率,因为大多数网站都是属于IO密集型,因此可以利用线程池增加并发处理能力,采用多核多内存的资源配置模式.可以采用Apache+Tomcat或Nginx+Jboss来实现,其中消息服务器通过异步处理机制可以提高系统响应速度,增加用户体验. 第

【java高并发 大数据企业架构框架整合】Springmvc+mybatis+shiro+lucene+rest+webservice+maven

1. 使用阿里巴巴Druid连接池(高效.功能强大.可扩展性好的数据库连接池.监控数据库访问性能.支持Common-Logging.Log4j和JdkLog,监控数据库访问) 2. 提供高并发JMS消息处理机制 3. 所有功能模块化.所有模块服务化.所有服务原子化的方式,提供可拓展的服务模型,使程序稳定运行,永不宕机 4. 提供Wink Rest.Webservice服务,故可作为独立服务平台部署 框架整合: Springmvc + Mybatis + Shiro(权限) + REST(服务)