Login
首页 > 培训课程 > 互联网

《分布式架构设计》传统单体应用到分布式系统设计最佳实践

主讲老师:陈国星 2024-06-17 09:18:39


 

【课程背景】

随着互联网时代的到来,数据量急剧增加,并发量也越来越大,传统的应用访问起来变得越来越缓慢?企业如何快速的找到应用缓慢的根源并进行快速的优化?企业如何重新规划和设计高可用高并发的分布式系统的架构?

本课程围绕实际的项目中遇到的各种瓶颈展开,一方面有针对性的分别从分布式系统中常用中间件、讲解各类中间件的原理、应用场景以及如何构造高性能的大型的分布式的应用系统;另一方面,从数据库层面如何应对分布式系统下的扩容;分别结合实际的技术与案例进行讲解,为技术团队提供优秀的系统架构设计思路和方案,有效提供学员在开发大型系统项目过程中应具备的相关技能。

 

【课程收益】

Ø 了解分布式系统架构演变过程

Ø 掌握分布式系统原理

Ø 掌握分布式系统技术实现

 

【课程对象】CTO、技术总监、研发负责人、架构师、研发工程师、售前技术工程师、运维工程师

【课程时间】2

 

【课程大纲】


一、分布式系统架构演变

1、分布式系统架构演变历程

Ø Web动静态资源分离

Ø 前端静态资源缓存

Ø 本地数据缓存

Ø 应用负载均衡

Ø CDN

Ø 分布式缓存

Ø 数据库读写分离

Ø 数据库垂直分库

Ø 数据库水平分库

Ø 分布式文件系统

案例:亿级流量分布式架构设计思路

 

二、分布式系统理论

1、CAP定理

Ø 分布式系统CAP定理的三个指标

Ø CAP定理三个指标如何权衡和选择

 

2、BASE理论

Ø BASE理论详解

Ø BASE理论的定位

 

3、分布式系统面临挑战

Ø 分布式系统的目标

Ø 分布式系统的基础

Ø 单体垂直架构如何改造为分布式架构

Ø 分布式架构会引入哪些难题?

Ø 分布式系统的挑战

 

三、分布式系统之缓存

1、缓存

Ø 缓存的定义

Ø 缓存能解决什么问题?

Ø 缓存架构之分布式缓存与集中式缓存

Ø 缓存的基本原则

Ø 分布式缓存的持久化

Ø 分布式缓存的高可用

Ø 分布式缓存的横向扩展

Ø 分布式缓存常见业务场景分析

Ø 多级缓存

 

2、分布式系统缓存之Redis

Ø 分布式缓存之Redis

Ø Redis常用数据结构及其应用场景

Ø Redis高级特性:发布/订阅、过期设置、事务支持

Ø Redis持久化策略之rdb与aof

Ø Redis主从复制

Ø Redis集群

Ø Redis集群扩容

实战:基于redis实现的缓存会话共享案例分析

实战:redis集群搭建与部署

实战:基于redis实现的热数据缓存

实战:基于redis实现的分布式锁

 

四、分布式系统之消息队列

1、消息队列

Ø 分布式系统之同步调用案例分析

Ø 分布式系统同步调用存在问题与优化方向

Ø 消息队列之分布式系统异步调用案例分析

Ø 消息队列之削峰填谷案例分析

Ø 消息中间件选型与对比

Ø 消息队列编程模型之点对点

Ø 消息队列编程模型之发布/订阅

 

案例:基于分布式消息队列设计的千万级账单推送系统

实战:微服务架构下基于消息队列实现微服务间数据最终一致性

 

五、分布式系统之协调服务

1、分布式协调服务基础

2、分布式协调中间件之ZooKeeper

Ø ZooKeeper诞生的背景和它的作用

Ø ZooKeeper单机版安装、常用命令

Ø ZooKeeper集群版的安装、节点角色

Ø ZooKeeper的接入和使用

Ø ZooKeeper运行机制剖析

Ø ZooKeeper的典型应用场景与实现思路

Ø ZooKeeperWatch机制的运行流程

案例:基于ZooKeeper实现的服务注册与发现

 

七、分布式系统之日志中心系统

1、日志分析面临问题

Ø 传统日志系统存在问题分析

Ø 如何实现日志统一搜集、统一存储、统一查询?

 

2、日志中心解决方案ELK

Ø ELK应用案例分析

Ø ELK核心组成

Ø ELK之ElasticSearch

Ø ELK之logstash

Ø ELK之kibana

Ø ELK之工作流程剖析

Ø ELK常见应用架构

Ø ELK典型应用架构

Ø 海量日志的ELK集群架构

案例:基于ELK实现的访问日志分析

 

八、分布式系统之分布式事务

1、分布式系统下数据库面临问题

Ø 本地事务VS分布式事务

Ø 二阶段提交协议过程与原理分析

Ø 二阶段提交协议的缺点

Ø 三阶段提交

Ø 分布式事务的目标

Ø 分布式事务之强一致性应用场景

Ø 分布式事务之最终一致性应用场景

 

2、分布式事务框架之Seata

Ø 分布式事务框架之Seata

Ø Seata支持的4种模式

实战:微服务架构下基于Seata的4种模式实现微服务间数据强一致性

 

 

九、分布式系统之数据库层架构设计

1、分布式系统下数据库面临问题

Ø 什么是分库分表?

Ø 什么情况下需要分库分表?

Ø 分库分表之垂直分表

Ø 分库分表之垂直分库

Ø 分库分表之水平分表

Ø 分库分表之水平分库分表

Ø 分库分表带来的问题-跨库关联查询

Ø 分库分表带来的问题-分布式事务

Ø 分库分表带来的问题-排序翻页函数计算

Ø 分库分表带来的问题-全局主键避重

Ø 如何选择合适的数据分片键?分片键常用算法有哪些?

Ø 如何自定义分片键的算法?

 

2、分库分表主流中间件之客户端分库分表ShardingJDBC

Ø 分库分表主流中间件之客户端分库分表ShardingJDBC

Ø ShardingJDBC对于现有应用的SQL或ORM有什么要求或局限性?

Ø 分库分表主流中间件之服务端分库分表MyCat

Ø 分布式数据库NoSQL

实战:基于ShardingJDBC实现的分库分表之广播表、绑定表方案

 

 


版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

联系我们

    制订详细企业内训方案或邀约老师:
    联系人:隋老师
    电话:13121392666
    扫描左侧二维码添加老师微信,详细咨询。

授课见证

热门文章