课程简介
近些年,随着互联网的不断发展,市场变化越来越快,需求变更越来越频繁。为了能够跟上市场变化的脚步,在市场竞争中占得先机,越来越多的研发团队选择敏捷开发、快速迭代。然而,越来越庞大的软件系统,越来越复杂的业务逻辑,使得系统维护变得越来越困难,变更成本越来越大,团队工作效率越来越低。许多用户需求需要拖延数月才能交付,使得软件企业痛失有利商机,在市场竞争中处于不利地位。微服务架构正是解决复杂系统的应对之策。
微服务架构将复杂系统化整为零,拆分成一个一个的微服务。然后,将庞大的开发团队拆分成一个一个的独立功能团队,去维护各自的微服务。采用微服务架构降低了团队沟通的成本,降低了系统维护的复杂度,更降低了系统发布的周期,使得我们可以快速交付、快速应对市场需求。
但是,微服务应当如何架构?它有哪些技术特点与技术难点?本课程将会用许多的真实案例讲解,什么是微服务,如何用微服务架构我们的系统,并用工作坊的形式,实际带领学员去架构微服务,在动手中获得知识。
课程收益
1. 了解微服务的技术架构选型
2. 掌握微服务架构的6种设计模式
3. 熟悉服务网关在微服务架构中的作用
受众人群
中高级工程师、企业架构师、软件设计师、技术决策/解决方案人员等。
课程周期
2天(12小时)
课程大纲
主题 | 授课内容 |
第一单元 微服务架构规划 | 小而专的微服务架构 1. 微服务转型初期采用数据共享模式 2. 剖析微服务数据共享模式的问题本质 3. 解决方案:小而专的微服务架构 基于领域驱动的微服务设计 1. 首先从挖掘业务领域知识开始分析设计 2. 基于业务进行业务架构规划: 3. 基于业务架构进行业务领域建模 4. 基于业务领域模型进行微服务的设计 案例分析:电商订单系统的微服务规划过程 1. 业务架构规划 2. 业务领域建模 3. 微服务设计实现 微服务的技术架构规划 1. 去中心化的技术治理 1) 基于父项目建立多套的技术架构 2) 每个微服务配置多套的配置管理 3) 生产环境中集中式的配置服务 2. 去中心化的数据管理 1) RDBMS, NoSQL, NewSQL数据库的分析与选型 2) 建立读写分离的微服务架构 3) 写库的微服务设计与NewSQL数据库 4) 读库的微服务设计与NoSQL数据库 高并发、高可用的微服务架构设计 1. 高并发、高可用的微服务设计的挑战 2. 熔断、降级与断路器模式 1) 案例:基于Sentinel的服务降级实践 2) 演练:电商网站熔断、降级的设计实现 3. 限流措施 1) 案例:基于Sentinel的限流措施 2) 演练:电商网站运用限流措施实现秒杀功能 |
第二单元 微服务设计模式 | 微服务架构的6种设计模式 1. 聚合模式 案例:电商网站购物功能的设计 Ø 微服务前后端分离的设计 Ø 分布式事务的两阶段提交 实战演练:运用Seata实现微服务的分布式事务 Ø 基于消息的最终一致性设计 实战演练:基于消息实现微服务的分布式事务 1) 案例:电商网站下单服务的设计 2) 单一职责原则与领域驱动设计 Ø 互联网纵向切分在微服务的实现 Ø 纵向切分应当注意的设计问题 实战演练:微服务间解决跨库关联查询的设计 2. 代理模式 1) 案例:电商网站支付功能的设计思路 2) 案例:电商网站多渠道支付的微服务实现 3. 链式模式 4. 分支模式 5. 数据共享模式 1) 案例:大数据与微服务结合的架构设计 2) 实战演练:运用NoSQL数据库实现海量订单数据的实时跟踪 6. 异步消息模式 1) 案例:12306的异步化操作 2) 实战演练:运用Springcloud Stream实现电商网站异步化操作的设计 微服务设计的重要原则:无状态设计 1. 有状态设计的问题与无状态设计的思路 2. 演练:微服务Session的无状态设计 1) 服务网关与用户鉴权的无状态设计 2) 各微服务获取用户Session的无状态设计 1. 能不拆尽量不拆:减少微服务间的调用 2. 该拆分就得拆分 1) 公共模块该拆分就得拆分 2) 越来越复杂的模块该拆分就得拆分 微服务设计的反模式 1. 太多数据迁移 2. 数据共享反模式 3. 频繁交互反模式 |
第三单元 微服务架构 网关篇 | 服务网关在微服务架构中的作用 1. 多渠道用户接入:微服务前后端分离的架构设计 2. 微服务的负载均衡 3. 负载均衡的难题:Session管理 4. 路由网关(Spring Cloud Gateway) 1) 蓝绿发布、滚动发布、灰度发布与金丝雀发布 2) 权限验证与安全保障 3) 智能路由与服务迁移 4) 过滤器的设计与配置 5. 流量控制与节流 练习:设计服务网关、路由网关与断路器 |
第四单元 微服务架构 总结篇 | 1. 微服务架构设计之微服务无状态化设计; 2. 微服务架构设计之负载均衡设计; 3. 微服务架构设计之分级管理; 4. 微服务架构设计之异步调用(状态机等方式); 5. 微服务架构设计之设置合理超时; 6. 微服务架构设计之服务降级; 7. 微服务架构设计之幂等设计; |
第五单元 微服务开发 实战演练篇 | 用实际项目演练微服务开发的整个过程 1. 演练:从单体应用到微服务的设计转型过程 2. 微服务开发的组织形式:父项目与基础平台 3. 微服务开发的组织形式:多环境配置 4. 前端、聚合层、原子服务层的微服务设计 5. 服务网关的设计:用户权鉴与智能路由 微服务开发高阶: 1. 在分布式环境中高可靠地部署Nacos集群 2. 微服务测试:契约测试与Springcloud Contract 3. 微服务性能:链路监控与Skywalking实践 微服务的技术中台建设: 1. 基于云原生的微服务技术中台规划 2. 建立DevOps自动化发布平台 3. Sonarqube+Jacoco的质量监控平台 4. 包含redis, kafka, rocketmq的PaaS平台 5. 基于RDBMS,NewSQL,NoSQL的DaaS平台 6. 链路监控Skywalking与性能调优 7. 基于prometheus+EFK的自动化运维平台 |
Mac Fan
百林哲咨询(北京)有限公司专家团队成员
Mac Fan
百林哲咨询(北京)有限公司专家团队成员
Mac Fan
百林哲咨询(北京)有限公司专家团队成员
Mac Fan
百林哲咨询(北京)有限公司专家团队成员
Mac Fan
百林哲咨询(北京)有限公司专家团队成员
Mac Fan
百林哲咨询(北京)有限公司专家团队成员
Mac Fan
百林哲咨询(北京)有限公司专家团队成员