课程费用

6800.00 /人

课程时长

2

成为教练

课程简介

互联网架构师应该如何设计大规模互联网系统架构?本课程从介绍一个典型的大规模互联网系统架构出发,深入讨论了互联网架构中接入层、逻辑层、数据层(又分为数据库层与缓存层)的设计准则、关键技术与常见实践。

目标收益

通过学习本课程,学员能够真实掌握实现一个典型的大规模互联网架构所涉及的技术、常见的问题与解决方案、多种解决方案各自的优缺点、在不同业务场景下的技术选型,有效的启发思路、激发兴趣、掌握大规模互联网架构中解决问题的基本方法。

培训对象

各类互联网/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)通用统计协议设计
七、大作业实战 注:所有内容均来自互联网一线案例
一、大规模互联网系统架构与设计核心准则
(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)通用统计协议设计
七、大作业实战
注:所有内容均来自互联网一线案例
提交需求