课程时长
2天(6小时/天)
课程对象
具有以下经验的 架构师,后端开发工程师,以及其他软件从业人员
● 具有基础的架构设计知识
● 可以熟练掌握的面向对象程序设计能力
● 具有三年或以上的业务系统开发经验
课程大纲
Day1 | |
一、 从类库到服务 1. 通过服务来实现独立自治的组件 2. 服务发现概念模型 3. AP的EurekavsCP的Consul 4. 注册中心实现 5. 实战:Spring Cloud Alibaba – Nacos进行服务发现 6. 实战:Spring Cloud Alibaba – Nacos进行配置管理 7. 网关路由 8. 网关的职责 9. 网络 I/O 模型 10. BFF 网关 11. 实战:Spring Cloud Alibaba – Gateway 进行网关路由 12. 客户端负载均衡 13. 客户端负载均衡器 14. 代理负载均衡器 15. 地域与区域 16. 实战:Spring Cloud Alibaba – Ribbon进行客户端负载均衡 | |
二、 访问远程服务 1. 远程服务调用 2. 进程间通信 3. 通信的成本 4. 三个基本问题 5. 统一的 RPC 6. 分裂的 RPC 7. 实战:Spring Cloud Alibaba – Dubbo进行远程过程调用 8. REST 设计风格 9. 理解 REST 10. RESTful 的系统 11. RMM 成熟度 12. 不足与争议 13. 实战:Spring Cloud Alibaba – Feign进行快速 REST调用 | |
三、 事务处理 1. 本地事务 2. 实现原子性和持久性 3. 实现隔离性 4. 全局事务 5. 共享事务 6. 分布式事务 7. CAP 与 ACID 8. 可靠事件队列 9. 实战:Spring Cloud Alibaba – Seata进行分布式 TCC事务 10. TCC 事务 11. SAGA 事务 12. 案例:银行跨行转账业务SAGA实例 | |
四、 流量治理 1. 服务容错 2. 容错策略 3. 容错设计模式 4. 实战:Spring Cloud Alibaba – Sentinel进行熔断 5. 流量控制 6. 流量统计指标 7. 限流设计模式 8. 分布式限流 9. 实战:Spring Cloud Alibaba – Sentinel进行限流 | |
Day2 | |
五、 微服务架构的6种设计模式 1. 聚合模式 2. 案例:电商网站购物功能的设计 3. 演练:基于消息实现微服务的分布式事务 4. 异步化操作与分布式消息队列 5. RabbitMQ, RocketMQ, ActiveMQ与kafka的比较 6. 异步化操作的设计实践 7. 案例:电商网站下单服务的设计 8. 单一职责原则与领域驱动设计 9. 互联网纵向切分在微服务的实现 10. 纵向切分应当注意的设计问题 11. 解决跨库关联查询的设计 | |
六、 云原生 - 虚拟化容器 1. 容器的崛起 2. 隔离文件:chroot 3. 隔离访问:namespaces 4. 隔离资源:cgroups 5. 封装系统:LXC 6. 封装应用:Docker 7. 封装集群:Kubernetes 8. 以容器构建系统 9. 隔离与协作 10. 韧性与弹性 11. 以应用为中心的封装 | |
七、 云原生 -基于Kubernetes的微服务自动化运维 1. • Node, Pod, Deployment, Service, rc等组件的概念 2. • 基于yaml文件的微服务发布过程 3. • Kubernetes的常用命令行操作 | |
八、 架构安全性 1. 认证 2. 认证的标准 3. 认证的实现 4. 授权 5. RBAC 6. OAuth2 7. 实战:Spring Cloud Alibaba – OAuth2 进行认证授权 8. 凭证 9. Cookie-Session 10. JWT 11. 保密 12. 保密的强度 13. 客户端加密 14. 密码存储和验证 15. 传输 16. 摘要、加密与签名 17. 数字证书 18. 传输安全层 | |
九、 可观测性 1. 事件日志 2. 收集与缓冲 3. 加工与聚合 4. 存储与查询 5. 链路追踪 6. 追踪与跨度 7. 数据收集 8. 追踪规范化 9. 聚合度量 10. 指标收集 11. 存储查询 12. 监控预警 13. 实战:Spring Cloud Alibaba – Skywalking进行链路监控 |