上海艾纵企业管理咨询有限公司 - 课程体系 - 专题课程 - 软件开发技术专题


您好!欢迎来到上海艾纵企业管理咨询有限公司!

加入收藏

登录注册

400-676-1955

专题课程

大型互联网架构设计案例分析和实践

我要报名

编辑日期 2018-06-13  阅读次数:1358 次


【课程简介】

本课程培训周期为2

本课程从高并发、大数据、高可靠3个方面入手,讲解了大型互联网应用系统是如何从容应对数以亿计的用户并发访问、海量业务数据的性能压力,如何高效而稳定地进行架构设计的。课程由浅入深先介绍了与高并发、大数据、高可靠相关的概念、指标与解决思路。

接着,由浅入深、层层推进、从各个层面逐步介绍了,从数据接入层、数据库层、业务逻辑层,逐步分析在架构设计各个环节可能遇到的性能问题、可以采用的技术,这些技术的基本原理与解决思路,以及相关互联网应用的具体案例。通过这些案例的讲解,可以为学员日后的架构设计开阔思路、加深认识。

此外,在面对大数据量方面,介绍了NoSQL数据库、Hadoop大数据处理技术,以及它们在应对海量数据存储、深度数据挖掘与高效数据查询方面,所起到的作用。通过案例讲解,可以让学员理解如何运用NoSQL数据库与Hadoop大数据处理技术解决海量数据处理与高效查询的问题。

 

【培训特色】

本课程注重实战,采用案例贯穿方式完成实践,收集了大量的真实案例,针对项目过程中技术人员常犯的错误进行了汇总,研讨,并形成培训教程。通过大量的真实案例,详细地介绍了分布式计算与内存数据库培训需要注意的要点以及难点,这些知识都是讲师十几年经验的总结。

【培训对象】

初中高级工程师、企业架构师、软件设计师、数据库/存储技术人员、技术决策/解决方案人员等。

【培训时长】

2


【课程大纲】

 

 

授课内容

第一部分 概述

第一单元 互联网架构的特点及解决思路

高并发

1.    高并发的概念

2.    高并发问题的解决思路:目标→问题→方案

3.    横向扩展与纵向扩展

大数据

1.    大数据的概念

2.    大数据问题的解决思路
1
)针对三种不同操作类型的优化
2
)并行操作与异步处理
3
)集中式处理 vs. 分布式处理

高可靠性

1.    高可靠性在三个层面的概念

2.    高可靠性的设计思路
1
)单点故障可容忍
2
)灾备与恢复

第二部分 针对高并发的架构设计

第二单元 大并发相关的指标

高并发相关的指标

1.    吞吐量 / 每秒事务数 / 事务响应时间

2.    用户数 / 用户并发数 / 用户并发数峰值

高并发问题的解决思路

1.       目标→问题→方案

2.       业务梳理与优化

第三单元 并发量较大时的快速优化策略

传统架构的演变过程

1.    All-in-One的架构设计

2.    多级集中的架构设计

3.    传统架构面临的挑战

基于风险的架构设计思想

1.    先识别未来存在的风险,再进行有针对的架构设计

2.    用快的速度解决急迫的问题

并发量较大时的快速优化策略

1.    DNS的原理与防止DNS劫持

2.    智能DNS及其优缺点

3.    CDN内容分发网络及其优缺点

4.    负载均衡与反向代理
1
Nginx技术及其解决的问题
2
)动静分离的设计
3
Zookeeper及其非中心化设计

第四单元 数据库瓶颈及其优化策略

数据库瓶颈

1.    现有数据库设计及其性能瓶

2.    Shared Disk vs. Shared Nothing

数据库读写分离的设计

1.    三种不同类型的操作及其优化策略
业务操作 / 随机查询 / 统计分析

2.    MySQL主从机实现读写分离
1
MySQL主从机实现读写分离的思想与局限
2
)在原有系统上实现读写分离的改造过程

3.    真正实现读写分离的设计方案

数据库分库的设计思想

1.    纵向拆分的设计思想及其注意的问题
案例:阿里巴巴的分库架构设计

2.    横向拆分的设计思想及其注意的问题
1
)按地域拆分的设计及其评价
2
)按用户号进行哈希的设计及其评价
案例:淘宝网的架构设计解析

3.    在原有系统上如何实现数据库分库
1
)纵向拆分的系统改造过程
2
)横向拆分的系统改造过程
3
)分布式数据库的设计原理与Greenplum

第五单元 应用缓存的设计

应用缓存技术

1.    应用缓存技术解决的问题

2.    单机缓存 vs. 分布式缓存

3.    分布式缓存的特点及其设计

Memcached技术

1.    Memcached技术及其特点

2.    分布式哈希算法及其一致性哈希

3.    Memcached的部署结构及其应用方案
案例:负载均衡的session同步及其故障转移

如何在原有系统上进行应用缓存改造

1.    Spring + Memcached的设计改造过程

2.    Hibernate + Memcached的设计改造过程

3.    Memcached的命中率分析及其调优

应用缓存的设计过程及其应当注意的问题

1.    负载均衡的Session同步及其故障转移

2.    缓存服务器雪崩现象及其解决思路

3.    缓存服务器依赖现象及其解决思路

4.    缓存服务器穿透现象及其解决思路

第六单元 内存数据库的设计

内存数据库技术

1.    内存数据库的概念

2.    解析内存数据库的运行原理

3.    Oracle TimesTen的介绍

4.    Gemfire及其在12306的应用

Redis内存数据库技术

1.    Redis的运行原理及其特点

2.    Redis的部署形式

3.    Redis的应用设计
案例:spring-redis-data的设计应用
案例:京东订单系统的优化过程

4.    内存数据库的设计局限

第七单元 异步化操作的设计

1.    异步化操作的原理

案例:12306的异步化改造过程

2.    异步化操作的设计实践

3.    分布式队列的设计

案例:用消息队列解决分布式事务

案例:用消息队列解决内存数据库的同步

第八单元 限流措施与服务降级

限流措施的作用与思路

1.    以降低服务能力为代价保证系统活着

2.    随机性地让一些请求被拒绝

3.    有选择性地拒绝某些业务请求

数据接入层的限流措施

1.    按用户IP进行限流

2.    按桶容量进行限流

应用层的限流措施

服务降级措施

第九单元 高负载微服务系统

微服务的概念

1.    微服务的内在需求

2.    服务发现与Netflix

3.    微服务落地的经验与难点

微服务落地

案例:高负载微服务系统的架构演进之路

 

第十单元 不断演进的架构设计过程

互联网+时代的架构设计特点

1.    互联网+带来的巨大变革

2.    互联网公司不断面对的升级改造

3.    传统行业必须面对的互联网转型

好的架构源于不断的衍变

案例:58同城的架构衍变过程

1.    初始的架构设计

2.    网络接入层的改造过程

3.    数据库拆分的改造过程

4.    服务化为中心的改造过程

第三部分 针对大数据的架构设计

第十一单元 NoSQL数据库及其设计

NoSQL数据库的概念

1.    分布式架构与CAP理论

2.    ACID vs. BASE

3.    强一致性与弱一致性

4.    NoSQL数据库的特点

MongoDB数据库

1.    MongoDB数据库简介

2.    MongoDB数据库的概念模型

3.    插入、更新、删除、查询操作

案例:利用MongoDB实现海量存储与高并发快速查询

4.    MongoDB数据库的优劣势分析与适用范围

第十一单元 Hadoop大数据处理技术

Hadoop大数据处理技术

1.    Hadoop简介

2.    Hadoop生态圈

3.    Hadoop架构及其与传统架构的优势

Hadoop的核心组件

1.    解析HDFS分布式文件系统的运行原理

2.    解析MapReduce分布式运算框架的运行原理

3.    MapReduce的优劣势与适用范围

案例:WordCount词频计算程序的分析设计过程

Hadoop的生态圈

1.    Hive技术
1
Hive技术简介
2
Hive与传统关系型数据库的比较
3
Hive的建表、载入数据、查询数据的语句

2.    HBase数据库
1
HBase数据库的简介
2
HBase数据库的概念模型
3
HBase的面向列式存储
4
HBase的系统架构
案例:用HBase存储与展示搜索引擎结果

3.    Sqoop技术
1
Sqoop技术简介
2
Sqoop导入语句
3
Sqoop导出语句

Hadoop的安装部署

1.    Hadoop的物理部署架构

2.    Hadoop的技术选型

3.    Hadoop的组件部署结构

面向主题的数据仓库设计

1.    数据仓库设计的思路

2.    案例讲解设计仓库设计的过程

3.    浅析数据挖掘过程

4.    介绍Spark的设计开发

5.    海量数据存储与查询方案

案例:BI系统大数据转型实践