课程信息
互联网架构师应该如何设计大规模互联网系统架构?本课程从介绍一个典型的大规模互联网系统架构出发,深入讨论了互联网架构中接入层、逻辑层、数据层(又分为数据库层与缓存层)的设计准则、关键技术与常见实践。
培训特色
本课程来源于讲师在MT多年的架构实践经验,不只是方法论的讲解,更多是能落地的细节;不仅是的原理讲解,更多实际案例。
目标收益
通过学习本课程,学员能够真实掌握实现一个典型的大规模互联网架构所涉及的技术、常见的问题与解决方案、多种解决方案各自的优缺点、在不同业务场景下的技术选型,有效的启发思路、激发兴趣、掌握大规模互联网架构中解决问题的基本方法。
培训对象
各类互联网/IT/软件企业和研发机构的软件架构师、软件设计师、程序员。对于有明确互联网产品业务需求的个人和团队,效果更佳。
学员基础
学员要了解一名“程序员”所需要具备的基本技能。
课程大纲
 
| 主题 | 内容 | 
| 一、大规模互联网系统架构与设计核心准则 | (1)典型大规模互联网系统架构(2)可用性的概念以及设计准则
 (3)扩展性的概念以及设计准则
 (4)负载均衡的概念以及设计准则
 (5)一致性的概念以及设计准则
 | 
| 二、互联网架构【接入层】核心技术与架构实践 | (1)http接入层核心技术与架构实践1.1)http接入层可用性设计
 1.2)http接入层扩展性设计
 1.3)http接入层负载均衡设计
 1.4)http接入层session一致性设计
 1.5)DNS轮询的原理与实践
 1.6)反向代理技术的原理与实践
 1.7)lvs与keepalived的原理与实践
 1.8)APP接入的DNS优化
 1.9)动静分离与cdn
 1.10)典型的http接入层架构设计总结
 (2)cdn技术的原理与启示
 2.1)cdn简介
 2.2)cdn的原理与使用场景
 2.3)源站实践
 2.4)镜像站与数据推拉同步实践
 2.5)数据一致性实践
 2.6)智能DNS的核心技术
 2.7)回源的概念与预防
 (3)tcp接入层核心技术与架构实践
 3.1)tcp接入层可用性设计
 3.2)tcp接入层扩展性设计
 3.3)tcp接入层负载均衡设计
 3.4)tcp接入层session的设计、超时检测、session踢出设计
 3.5)单机接入20wTCP连接的核心技术
 3.6)典型的tcp接入层架构设计总结
 (4)接入层安全性设计
 (5)典型系统实战-tcp消息推送系统的架构与实践
 5.1)tcp消息推送系统解决什么问题
 5.2)tcp消息推送系统架构简介
 5.3)tcp消息推送系统核心业务流程c2s/s2c/c2c
 5.4)聊天消息的可靠投递
 5.5)系统消息投递优化
 5.6)离线消息的特殊性设计
 | 
| 三、互联网架构【逻辑层】核心技术与架构实践 | (1)接入层线程模型与逻辑层线程模型实现细节1.1)并发的基本概念
 1.2)接入层线程模型简介(IO线程与work线程异步)
 1.3)接入层线程模型存在的问题
 1.4)逻辑层线程模型简介(纯异步)
 1.5)单进程单线程如何做到1Wqps并发核心技术
 1.6)纯异步高并发服务模型总结
 (2)逻辑层可用性、扩展性、负载均衡性设计与实践
 2.1)连接池技术
 2.2)id串行化技术
 2.3)异构服务负载均衡技术与保险丝算法
 (3)互联网逻辑层核心组件与服务
 3.1)DAO与ORM的应用场景与解决的问题
 3.2)配置中心解决的问题与实践
 3.3)消息总线解决的问题与实践
 (4)典型系统实战-搜索系统设计与实践
 4.1)搜索系统典型业务介绍
 4.2)搜索系统典型架构设计
 4.3)搜索系统核心实现技术
 | 
| 四、互联网架构【数据层-固化存储】核心技术与架构实践(上) | (1)数据库设计基本概念(2)数据库架构-可用性设计与实践
 2.1)读高可用设计
 2.2)写高可用设计
 2.3)实战解决方案
 (3)数据库架构-读性能设计与实践
 3.1)索引提速设计
 3.2)从库扩容设计
 3.3)缓存扩容设计
 (4)数据库架构-一致性设计与实践
 4.1)主从不一致解决方案
 4.2)缓存不一致解决方案
 (5)数据库架构-扩展性设计与实践
 5.1)秒级扩容方案
 5.2)字段扩展方案
 5.3)数据迁移方案
 (6)数据库架构-水平切分设计与实践
 6.1)“单Key型”表结构水平切分
 6.2)“1对多型”表结构水平切分
 6.3)“多对多型”表结构水平切分
 6.4)“多Key型”表结构水平切分
 (7)数据库中间件与分库SQL实战
 7.1)IN语句的玩法
 7.2)非patition key上的SQL玩法
 7.3)夸库分页的玩法
 | 
| 五、互联网架构【数据层-缓存存储】核心技术与架构实践(下) | (1)缓存的概念与原理(2)常见缓存的介绍与使用选型
 2.1)memcache的介绍与使用场景
 2.2)redis的介绍与使用场景
 2.3)leveldb的介绍与使用场景
 (3)不同业务场景对缓存的典型使用
 3.1)只读非高可用业务缓存实践
 3.2)只读高可用业务缓存实践
 3.3)读写非高可用业务缓存实践
 3.4)读写高可用业务缓存实践
 (4)缓存架构设计核心
 4.1)缓存的可用性设计
 4.2)缓存的扩展性设计
 4.3)缓存的负载均衡性设计
 4.4)缓存的一致性设计
 (5)典型系统实战-计数系统的设计与实践
 5.1)计数系统典型业务介绍
 5.2)列扩展计数系统的实践与缺陷(DB计数)
 5.3)行扩展计数系统的实践与缺陷(DB计数)
 5.4)KV缓存计数系统的实践与缺陷(缓存计数)
 5.5)计数系统终极缓存优化方案
 | 
| 六、互联网架构典型协议设计 | (1)协议的基本概念(2)常用协议介绍
 2.1)文本协议
 2.2)二进制协议
 2.3)流式xml/json协议
 (3)系统设计协议选型
 3.1)文本协议的优缺点与选型
 3.2)二进制协议的优缺点与选型
 3.3)流式xml/json协议的优缺点与选型
 (4)协议设计细节
 4.1)协议设计如何进行包错位检测
 4.2)协议设计如何考虑兼容性
 4.3)协议设计如何考虑扩展性
 4.4)协议设计如何考虑可调试性
 4.5)协议设计如何支持异步
 4.6)协议设计如何支持变长
 4.7)协议设计如何支持各类业务
 5)典型协议设计实战
 5.1)DNS系统协议设计
 5.2)短域名服务协议设计
 5.3)实时监控系统协议设计
 5.4)通用统计协议设计
 | 
|  |  |