4006-998-758
3000+课程任你选择
大型分布式架构与微服务架构设计最佳实践
研发学院 分布式系统 服务注册 跨语言访问
范钢

从事软件研发工作近二十年,并且现在一直坚守在大型软件架构设计一线工作。从需求分析、软件开发到项目管理、架构设计都有丰富的从业经验,尤其熟悉互联网架构与分析的特点。先后主持或参与了数十个国内外大型软件项目,涉及领域包括互联网、金融、军工、财务、税务等领域。先后为京东、淘宝网、支付宝等电商网站设计电子发票开票平台,为全国各地各行各业的纳税人设计增值税发票在线开票系统,为各级税务机关提供税务大数据风险监控平台。此外,还是大型遗留系统改造专业户,多次参与大型遗留系统改造、软件系统重构等重大项目,长期关注大型业务系统的品质保证、防止腐化以及技术改造等困扰软件企业的问题,进而提出了许多实用而有效的解决方案,在遗留系统优化与改造方面有丰富的经验。


查看老师详情
课程内容


授课内容

第一部分 分布式系统发展历程

第一单元 分布式系统概述

什么是分布式系统

集中式系统及其弊病

分布式系统的概念及其优势

大型业务系统架构的发展历程

集中式系统架构的设计

多级集中式架构及其弊病

动静分离与读写分离的设计

生产型业务系统的分布式设计

数据库的横向纵向切分

分布式缓存的设计

异步化操作与分布式队列

生产型业务系统未来的发展趋势

微服务的架构设计

服务网格Service Mesh

NewSQL数据库

分析型业务系统的分布式设计

NoSQL数据库

基于Hadoop的大数据平台

基于Kylin的多维数据建模

运用ElasticSearch解决海量明细查询

第二单元 分布式系统技术专题

分布式缓存

本地缓存vs.分布式缓存

分布式缓存设计原理与高可用设计

Redis分布式缓存部署

Redis分布式缓存设计实践

Redis分布式缓存设计应注意的问题

内存数据库

内存数据库运行原理

内存数据库设计选型

Redis内存数据库设计实践

内存数据库+异步化技术方案

京东订单系统的优化过程

分布式事务

分布式事务的两阶段提交

TCC方案与

TCC方案设计原理

阿里的Seata与GTS

TCC方案的设计实现

基于消息的分布式事务

基于消息的最终一致性

设计实践及其存在的问题

基于半消息的设计实践

基于消息表的设计方案

分布式锁

分布式锁的应用场景及其原理

基于数据库的设计方案

基于Redis的设计方案

基于Redis的设计实践

方案存在的问题

基于etcd的设计方案

etcd的特点介绍

etcd在分布式锁中的设计实现

分布式消息队列

异步化操作与分布式消息队列

RabbitMQ, RocketMQ, ActiveMQ与kafka的比较

RabbitMQ的设计实践

Kafka的设计实践

分布式数据库

RMSDB→NewSQL→NoSQL

分布式存储CAP理论

NoSQL数据库及其原理

如何实现高并发大数据查询场景

案例:MongoDB实现大数据秒级查询

NewSQL数据库及其原理

高并发写入的分布式设计方案

案例:TiDB数据库的分布式方案

第二部分微服务的架构设计

第三单元 服务注册与发现

服务注册与发现的概念与作用

Spring Cloud Eureka方案

Spring Cloud Eureka的系统架构

Eureka Server的设计

Eureka Client的设计

服务发现的设计

使用ribbon的设计

使用feign的设计

熔断机制在微服务的设计实现

断路器设计模式

线程池隔离、优雅降级与熔断

Hystrix的断路器设计

服务降级的设计实践

高可靠设计与Eureka集群

第四单元 跨语言访问与服务网格

微服务跨语言访问的意义

Eureka跨语言访问设计实践

微服务跨语言访问的设计局限

服务网格(Service Mesh)

服务网格的概念及其发展历程

Linkerd服务网格的设计原理

Istio服务网格的设计原理

蚂蚁金服Sofa Mosn的设计实践

微博服务网格的设计实践

第五单元 服务网关

微服务的安全措施与服务网关设计

多渠道用户接入

请求合法性与用户鉴权

灰度发布与金丝雀测试

全链路压测

流量控制与节流

令牌桶算法、漏桶算法

Nginx在接入层的流量控制

服务层的流量控制设计思路

节流的设计实现

路由网关(zuul)的设计

智能路由与服务迁移

过滤器的设计与配置

Zuul的高可靠设计

第六单元 微服务层的设计

微服务架构的6种设计模式

聚合模式

案例:电商网站购物功能的设计

案例:电商网站下单服务的设计

单一职责原则与领域驱动设计

互联网纵向切分在微服务的实现

纵向切分应当注意的设计问题

避免跨库关联查询的方案设计

代理模式

案例:电商网站支付功能的设计思路

链式模式

分支模式

异步消息模式

案例:12306的异步化操作

案例:电商网站异步化操作的微服务实现

数据共享模式

微服务的无状态设计

Session管理的设计难题

微服务的无状态设计

基于http/rest的无状态低耦合通讯

微服务设计的反模式

太多数据迁移

数据共享反模式

频繁交互反模式

第三部分分布式云端部署

第七单元 Docker与容器技术

Docker简介

Docker vs. 虚拟化

Docker的运行方式

Docker的基本操作

将微服务部署到Docker中

演练:微服务在Docker中的部署过程

练习:模拟构建一个微服务系统

第八单元 基于云端的分布式部署与DevOps

DevOps简介

为什么需要DevOps

微服务的测试过程

微服务的发布过程

分布式运维

Kubernetes的运行原理解析

Kubernetes命令与操作

Kubernetes的微服务发布与管理

用配置文件在Kubernetes中部署微服务

微服务平台自动化运维设计实践

演示:Git+Jenkins+docker+k8s的自动化分布式部署

第九单元 分布式微服务设计实践

演练微服务开发的整个过程

演练单体应用的微服务转型过程

微服务开发的父项目与基础平台

微服务开发的多环境配置

高可靠的分布式服务治理

前端、聚合层、原子服务层的设计

异步化的微服务调用

服务网关的设计与智能路由

演练微服务的测试

测试工具Spring boot test

微服务的单元测试与Mock框架

微服务的集成测试

微服务架构的管理与监控

配置中心Spring Cloud Config

断路监控Spring Cloud Turbine

链路监控Spring Cloud ZipKin

微服务的性能优化与实践

分布式容器部署演练

制作Jenkins定时任务

上传Docker私服

部署k8s集群

故障检测与监控

第十单元 传统架构的分布式技术转型

传统架构微服务转型的过程

技术转型

准备工作:Maven→Spring boot

整理分层:MVC层与BUS层的分离

建立微服务:注册中心、服务网关与微服务

业务拆分

构建领域模型与限界上下文

业务与数据库的纵向切分

练习:将一个传统架构的软件改造成微服务

初创型企业的微服务建设过程

案例:某智慧医疗系统的建设过程

系统的建设规划

系统的分析设计过程

微服务架构设计与对外接口

微服务运营平台的建设

成熟型企业开展微服务的思路

成熟企业开展微服务的难题

记录型系统 vs. 交互型系统

在混合云中构建交互型系统

案例:某金融企业向微服务转型的过程

大数据+微服务的转型过程

案例:某风控系统的大数据+微服务的转型过程

该风控系统的背景介绍

互联网转型带来的机遇与挑战

后端大数据的转型过程

前端微服务的转型过程

构建风险分析模型的AppStore平台

探讨:大数据如何与微服务相结合


课程对象

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


培训特色

本课程注重实战,并以工作坊的形式提供很多案例,让学员通过练习掌握分布式架构设计的过程,以及从传统架构向微服务改造的过程。同时,通过大量真实的案例,讲解许多公司在开展分布式系统转型过程中面临的难题、解决的思路,以及最终的设计。


返回上一级