课程简介
本课程通过梳理,帮助学员理清,在大型分布式系统中如何运用各种分布式技术,解决什么问题。并且,本课程站在实战的角度,演练以微服务为中心,合理运用各种分布式技术,是如何搭建高并发高可用的业务系统的。
目标收益
培训对象
课程大纲
第一单元 高可用分布式架构演化 |
什么是互联网分布式系统 1. 互联网架构的特点:高并发、大数据、高可用 2. 集中式系统在面对互联网时的弊病 3. 分布式系统的概念及其优势 案例:讲解某互联网系统的架构演进过程 初始状态:All-in-One集中式架构设计 1)多级集中式架构及其弊病 2)CDN内容分发网络及其应用 3)整洁架构的设计实现与架构规划 1000万以内:前后端分离的架构设计 1)前后端分离的应用实战 案例:基于vue+springboot+mybatis的架构实践 2)数据接入的高可用设计实践 案例:Nginx的高可用设计实践 案例:F5+LVS多层负载均衡的设计实践 案例:k8s接入层ingress的设计实践 1000万以上:读写分离的架构设计 案例:生产库和基于生产库微服务设计实践 1. 数据库的横向纵向切分 1)数据库的纵向切分与微服务的设计 2)数据库的横向切分与分布式数据库 2. 分布式缓存的设计 3. 异步化操作与分布式队列 4. NewSQL数据库的原理与应用 案例:查询库和基于查询库微服务设计实践 1. 读写分离后查询库的设计思路 1)查询库“宽表”的设计思路与实践 2)T+1模式与基于消息的实时数据同步 2. NoSQL数据库的原理及其应用 亿级流量的架构设计:通过分层实现逐级限流 1. SOA架构的设计局限 2. 高并发、高可用微服务的架构设计 1)微服务的拆分原则与分布式云部署 2)通过Kubernetes实现微服务的弹性扩容与高可用 3)微服务的高可用措施:故障转移、熔断、降级、限流措施 |
第二单元 分布式系统技术专题 |
分布式缓存的设计实践 1. 本地缓存vs.分布式缓存 2. 分布式缓存设计原理与高可用设计 3. Redis分布式缓存的部署演练 4. Redis分布式缓存设计实践 5. Redis分布式缓存设计应注意的问题 实战演练:微服务间解决跨库关联查询的设计 1)分布式缓存Redis的运行原理与设计实践 2)分布式缓存Redis在分布式云端的搭建 3)基于数据补填的跨库关联查询实践 内存数据库的设计实践 1. 内存数据库运行原理 2. 内存数据库设计选型 3. Redis内存数据库设计实践 1)内存数据库+异步化技术方案 2)京东订单系统的优化过程 分布式事务的设计实践 1. 分布式事务的两阶段提交 2. TCC方案 1)TCC方案设计原理 2)阿里的Seata与GTS 3)TCC方案的设计实现 实战演练:运用Seata实现微服务的分布式事务 1)搭建分布式事务组件Seata 2)分布式事务:下单→支付→库存扣减 3)演练事务失败后的事务补偿 3. 基于消息的分布式事务 1)基于消息的最终一致性 2)设计实践及其存在的问题 3)基于半消息的设计实践 4) 基于消息表的设计方案 实战演练:基于消息实现微服务的分布式事务 1)分布式消息队列:RabbitMQ, RocketMQ, Kafka 2)领域事件通知:Spring Cloud Stream 3)案例:电商网站下单服务的设计 分布式消息队列的设计实践 1. 异步化操作与分布式消息队列 2. RabbitMQ, RocketMQ, ActiveMQ与kafka的比较 3. RabbitMQ的部署演练与设计实践 4. RocketMQ的部署演练与设计实践 5. Kafka的部署演练与设计实践 分布式数据库的设计实践 1. RDBMS→NewSQL→NoSQL 2. 分布式存储CAP理论 3. NoSQL数据库及其原理 4. 如何实现高并发大数据查询场景 实战演练:运用NoSQL数据库实现海量订单数据的实时跟踪 1)ElasticSearch的运行原理与设计实践 2)ElasticSearch在分布式云端的搭建 5. NewSQL数据库及其原理 6. 高并发写入的分布式设计方案 实战演练:订单系统的分布式存储 1)微服务的去中心化数据管理的设计演练 2)NewSQL数据库Tidb的运行原理 3)Tidb数据库在订单系统的设计实践 |
第三单元 分布式云原生实战演练 |
云原生(Cloud Native)的概念 1. 面向互联网分布式系统运维的难点与痛点 2. 云原生=微服务+DevOps+持续交付+容器化 3. 云原生架构的核心思想与“12因素(12-Factors)” 4. 云原生的设计实现:Kubernetes、微服务、服务网格 构建分布式云原生架构的思路 1.微服务架构的弹性可扩容设计需求 2.分布式架构的有状态应用与无状态应用 3.构建基于DevOps的自动化发布平台 4.构建基于云原生的自动化运维平台 分布式云原生的自动化运维平台 1.基于Jenkins与pipeline构建持续发布平台 2.基于SonarQube与Jacoco构建质量监督平台 3.基于Docker+Kubernetes构建容器化部署平台 4.包含各种分布式缓存、分布式队列、分布式事务的PaaS云平台 5.基于NoSQL/NewSQL分布式数据库的DaaS数据平台 6.基于Skywalking的链路跟踪与系统调优平台 7.基于Prometheus+Grafana的自动化监控告警平台 8.基于EFK的分布式日志监控平台 实战演练:微服务系统的分布式云原生部署演练 1.基于Kubernetes的微服务容器部署 2.基于Ingress的高可用流量入口 3.运用Seata实现微服务的分布式事务 4.运用分布式缓存实现跨库的数据查询 5.基于Springcloud Stream实现消息队列的异步化设计 6.微服务的去中心化数据管理 7.运用NoSQL数据库实现海量订单数据的实时跟踪 |
第一单元 高可用分布式架构演化 什么是互联网分布式系统 1. 互联网架构的特点:高并发、大数据、高可用 2. 集中式系统在面对互联网时的弊病 3. 分布式系统的概念及其优势 案例:讲解某互联网系统的架构演进过程 初始状态:All-in-One集中式架构设计 1)多级集中式架构及其弊病 2)CDN内容分发网络及其应用 3)整洁架构的设计实现与架构规划 1000万以内:前后端分离的架构设计 1)前后端分离的应用实战 案例:基于vue+springboot+mybatis的架构实践 2)数据接入的高可用设计实践 案例:Nginx的高可用设计实践 案例:F5+LVS多层负载均衡的设计实践 案例:k8s接入层ingress的设计实践 1000万以上:读写分离的架构设计 案例:生产库和基于生产库微服务设计实践 1. 数据库的横向纵向切分 1)数据库的纵向切分与微服务的设计 2)数据库的横向切分与分布式数据库 2. 分布式缓存的设计 3. 异步化操作与分布式队列 4. NewSQL数据库的原理与应用 案例:查询库和基于查询库微服务设计实践 1. 读写分离后查询库的设计思路 1)查询库“宽表”的设计思路与实践 2)T+1模式与基于消息的实时数据同步 2. NoSQL数据库的原理及其应用 亿级流量的架构设计:通过分层实现逐级限流 1. SOA架构的设计局限 2. 高并发、高可用微服务的架构设计 1)微服务的拆分原则与分布式云部署 2)通过Kubernetes实现微服务的弹性扩容与高可用 3)微服务的高可用措施:故障转移、熔断、降级、限流措施 |
第二单元 分布式系统技术专题 分布式缓存的设计实践 1. 本地缓存vs.分布式缓存 2. 分布式缓存设计原理与高可用设计 3. Redis分布式缓存的部署演练 4. Redis分布式缓存设计实践 5. Redis分布式缓存设计应注意的问题 实战演练:微服务间解决跨库关联查询的设计 1)分布式缓存Redis的运行原理与设计实践 2)分布式缓存Redis在分布式云端的搭建 3)基于数据补填的跨库关联查询实践 内存数据库的设计实践 1. 内存数据库运行原理 2. 内存数据库设计选型 3. Redis内存数据库设计实践 1)内存数据库+异步化技术方案 2)京东订单系统的优化过程 分布式事务的设计实践 1. 分布式事务的两阶段提交 2. TCC方案 1)TCC方案设计原理 2)阿里的Seata与GTS 3)TCC方案的设计实现 实战演练:运用Seata实现微服务的分布式事务 1)搭建分布式事务组件Seata 2)分布式事务:下单→支付→库存扣减 3)演练事务失败后的事务补偿 3. 基于消息的分布式事务 1)基于消息的最终一致性 2)设计实践及其存在的问题 3)基于半消息的设计实践 4) 基于消息表的设计方案 实战演练:基于消息实现微服务的分布式事务 1)分布式消息队列:RabbitMQ, RocketMQ, Kafka 2)领域事件通知:Spring Cloud Stream 3)案例:电商网站下单服务的设计 分布式消息队列的设计实践 1. 异步化操作与分布式消息队列 2. RabbitMQ, RocketMQ, ActiveMQ与kafka的比较 3. RabbitMQ的部署演练与设计实践 4. RocketMQ的部署演练与设计实践 5. Kafka的部署演练与设计实践 分布式数据库的设计实践 1. RDBMS→NewSQL→NoSQL 2. 分布式存储CAP理论 3. NoSQL数据库及其原理 4. 如何实现高并发大数据查询场景 实战演练:运用NoSQL数据库实现海量订单数据的实时跟踪 1)ElasticSearch的运行原理与设计实践 2)ElasticSearch在分布式云端的搭建 5. NewSQL数据库及其原理 6. 高并发写入的分布式设计方案 实战演练:订单系统的分布式存储 1)微服务的去中心化数据管理的设计演练 2)NewSQL数据库Tidb的运行原理 3)Tidb数据库在订单系统的设计实践 |
第三单元 分布式云原生实战演练 云原生(Cloud Native)的概念 1. 面向互联网分布式系统运维的难点与痛点 2. 云原生=微服务+DevOps+持续交付+容器化 3. 云原生架构的核心思想与“12因素(12-Factors)” 4. 云原生的设计实现:Kubernetes、微服务、服务网格 构建分布式云原生架构的思路 1.微服务架构的弹性可扩容设计需求 2.分布式架构的有状态应用与无状态应用 3.构建基于DevOps的自动化发布平台 4.构建基于云原生的自动化运维平台 分布式云原生的自动化运维平台 1.基于Jenkins与pipeline构建持续发布平台 2.基于SonarQube与Jacoco构建质量监督平台 3.基于Docker+Kubernetes构建容器化部署平台 4.包含各种分布式缓存、分布式队列、分布式事务的PaaS云平台 5.基于NoSQL/NewSQL分布式数据库的DaaS数据平台 6.基于Skywalking的链路跟踪与系统调优平台 7.基于Prometheus+Grafana的自动化监控告警平台 8.基于EFK的分布式日志监控平台 实战演练:微服务系统的分布式云原生部署演练 1.基于Kubernetes的微服务容器部署 2.基于Ingress的高可用流量入口 3.运用Seata实现微服务的分布式事务 4.运用分布式缓存实现跨库的数据查询 5.基于Springcloud Stream实现消息队列的异步化设计 6.微服务的去中心化数据管理 7.运用NoSQL数据库实现海量订单数据的实时跟踪 |