课程大纲
平台类服务:通知平台
项目整体介绍

项目目标

通过构建一个平台类服务的模板项目,解决实际工作中遇到的多业务方接入、需求多样化、高可用性保障以及高并发性能优化等核心问题。该项目将涵盖多业务方对接、高性能架构设计、多渠道支持、事务机制等关键功能模块,并结合缓存策略、事务回查、服务治理等技术手段,全面提升系统的灵活性、可用性和性能。通过本项目的学习,学员将掌握平台类服务的核心设计思路与最佳实践,并提升其在复杂业务场景下的方案落地能力,使其能够从容应对以下典型业务场景:

  • 需求多样化与多业务方对接场景:
    • 场景描述:在业务方数量众多且需求差异显著的情况下,如何设计一个灵活且通用的平台服务,满足各类业务方的不同需求。
    • 应对策略:
      • 设计通用标准接口:设计满足不同业务方共性需求的标准化接口,确保接口的一致性、易用性与可扩展性。
      • 设计高扩展性接口:采用模块化和可配置化的设计方法,支持业务方需求的快速迭代与功能扩展,确保平台能够适应不断变化的业务需求。
      • 设计业务方接入控制方案:建立完善的接入管理机制,包括身份验证、权限控制和流量管理,确保平台能够安全、高效地管理多业务方的接入流程。
  • 高可用性要求场景:
    • 场景描述:在平台对稳定性和可用性有较高要求的情况下,如何设计和实施高可用架构方案,保障服务的持续运行。
    • 应对策略:
      • 设计复杂服务治理方案:掌握复杂服务治理方案设计思路及技巧,如负载均衡、自动故障转移、冗余部署和分布式架构设计,确保系统具备高可用性。
      • 设计复杂容错策略:掌握复杂容错策略的设计思路及技巧,包括服务降级、熔断机制、重试策略和数据备份,确保系统在遭遇内部或外部依赖故障时依然能够正常运行。
  • 读写高并发场景:
    • 场景描述:在平台面临读写请求均为高并发的情况下,如何设计系统架构以保证性能与可用性,满足大规模用户访问需求。
    • 应对策略:
      • 设计高性能的数据处理方案:掌握高并发读写优化技术,如数据库分片、缓存策略、异步处理和消息队列的应用,提升系统的吞吐量和响应速度。
      • 识别并解决性能瓶颈:运用性能分析工具,识别系统中的性能瓶颈,针对性地优化代码、数据库查询和资源配置,确保系统在高并发场景下依然保持稳定运行。
      • 实施有效的负载管理:应用限流、熔断和降级等策略,合理分配和管理系统资源,防止过载导致的服务崩溃,确保系统在高负载下的稳定性和可用性。

第一周

通知平台需求分析与架构设计

教学目标

    • 掌握平台类系统需求分析的技巧,能够识别核心业务需求和非功能性需求
      • 设计多业务方对接的高扩展性通知平台架构
      • 理解多业务方对接的平台类系统的设计和实现要素,例如接口设计、权限控制、数据隔离等
      • 掌握使用 DeepSeek 协助进行场景分析、竞品分析和类似产品分析的技巧
    • 掌握系统分析和架构设计的技巧,能够设计出高扩展、高可用、高性能的系统架构
      • 掌握使用 DeepSeek 协助进行架构设计、评估设计方案的技巧
        • 通过对话式交互验证架构可行性
        • 自动生成架构图PlantUML代码
        • 提供事务状态机设计建议
    • 理解多渠道、多调度场景下的复杂业务需求,并转化为技术方案。
    • 完成通知平台的需求分析和总体设计,产出清晰的需求文档和架构设计文档
      • 在 DeepSeek 的协助下快速撰写文档的技巧
    • 掌握通知平台的核心功能设计和实现

详细内容

  • 通知平台的业务场景分析
    • 使用 DeepSeek 协助进行业务场景、竞品分析和类似产品分析
    • 通知的唯一性保证
    • 多渠道支持:综合考虑短信、邮件、站内信、电话拨号等
      • 渠道类型:短信、邮件、站内信、电话拨号、App 推送、微信公众号等
      • 渠道特性分析:成本、到达率、时效性、可靠性
      • 渠道选择策略:智能路由、降级策略、成本优化、用户自定义选择策略支持方案
      • 渠道扩展机制:插件化设计、标准化接口
    • 业务方发送策略:立刻发送、固定时间点发送、截止时间发送
    • 事务机制:保证通知的可靠性,实现事务通知和回查机制
      • 事务通知与回查机制的设计
      • 超时未确认的自动取消。
      • 事务状态机:状态定义与转换、异常处理机制
  • 多渠道接口设计与实现
    • 接口适配层:屏蔽底层渠道差异,实现通用接口到专属接口的转换
    • 渠道专属接口与通用接口的抽象设计与实现。
    • 抽象层设计:通用接口定义、扩展点设计、SPI 机制实现
    • 适配层实现:渠道适配器、错误码标准化、重试策略
  • 业务方发送策略设计与实现
    • 固定时间发送
    • 截止时间发送
  • 提供给业务方的多形态接口 :
    • 同步接口:gRPC 接口设计、超时控制、重试机制
    • 异步接口:gRPC 异步接口、MQ 解耦设计、消息幂等性、顺序保证
    • 批量接口
  • 事务机制
    • 事务设计:预发送、确认发送、取消发送、超时未确认取消
    • 回查统一接口与业务方接入方式:回查 HTTP 接口、回查 gRPC 接口、重试策略
    • 异步通知机制:通过 MQ 通知事务消息发送结果、业务方提供 HTTP 或者 gRPC 等回调接口
    • 事务模型:预发送、确认发送、取消发送、超时处理

第二周

通知平台业务方接入方案、安全保障和资源控制

教学目标

    • 设计和实现灵活的业务方接入方案,满足不同业务方的需求
    • 掌握资源控制策略,例如容量规划、限流等
    • 掌握业务配置与动态生效的设计与实现能力
    • 掌握识别观测重点的技巧、设计监控方案、识别告警点并且定义合适的告警规则
    • 掌握借助 DeepSeek 进行容量估计、规划的方法
    • 掌握借助 AI 工具完成前端界面生成的方法,保持对类似工具的关注

详细内容

  • 通知平台附属管理后台分析
    • 业务申请资源与审批流程
    • 附属管理功能:查看结果、重试等功能
    • 使用 AI 工具生成前端界面:前后端适配的关键点、界面微调
  • 多渠道接口设计与实现
    • 接口适配层:屏蔽底层渠道差异,实现通用接口到专属接口的转换
    • 渠道专属接口与通用接口的抽象设计与实现。
    • 抽象层设计:通用接口定义、扩展点设计、SPI 机制实现
    • 适配层实现:渠道适配器、错误码标准化、重试策略
  • 业务配置与动态修改
    • 实时生效解决方案
  • 资源控制
    • 容量规划与限制设计:系统容量评估方法、各类资源使用上限设计
    • 利用 DeepSeek 估算容量:根据历史数据预测 QPS/TPS、生成资源估算公式
    • 接入计费功能
  • 安全策略
    • API 调用的鉴权
    • 永久有效的 Token
    • 实时申请的 Token
    • 长短 Token 结合的设计
  • 接口版本控制:设计向后兼容的接口,确保新版本发布不影响现有业务。
    • 向后兼容性设计
    • 新旧版本接口共存的演进策略
    • 版本兼容策略:向后兼容设计、版本号管理、平滑升级方案
    • 接口演进:字段扩展机制、接口废弃流程、版本切换机制
  • 可观测性:接入 metrics 日志和 trace,重点监控和告警设置
    • 在系统中识别业务关键点的技巧
    • 在业务关键点中接入合适的可观测性数据

第三周

通知平台高可用性设计与实现

教学目标

    • 掌握复杂的通知平台的服务治理方案,例如服务发现、负载均衡、熔断限流等
    • 掌握高可用性保障措施,例如容错、容灾、自动扩缩容等
      • 掌握防止高并发环境下资源耗尽的方法
      • 掌握针对系统本身组件崩溃的容错方法
      • 掌握针对各种外部依赖的崩溃的容错方法
      • 掌握使用 DeepSeek 识别可用性瓶颈的方法
      • 掌握使用 DeepSeek 设计可用性保障措施的方法
    • 从通知平台可用性保障中抽象出一般的、通用的服务治理方案设计的方法论

详细内容

  • 可用性保障的关键
    • 使用 DeepSeek 识别关键点,并提供改进建议
    • 服务治理方案
    • 针对内外组件的容错方案
    • 多活机制
    • 故障机制
  • 复杂的服务治理方案
    • 掌握利用 DeepSeek 设计服务治理方案的方法,并且要求 DeepSeek 提供关键设计和实现
    • 服务注册与发现的容错:多注册中心
    • 负载均衡
    • 隔离
      • 进程内隔离机制:如线程池、连接池
      • 进程间隔离机制设计
    • 分组 / 路由
      • 基于业务特征的分组策略
      • 基于系统特征 / 负载的分组策略
    • 熔断 / 限流 / 降级
      • 智能限流策略
      • 基于业务重要性的降级策略
      • 跨服务的降级机制
    • 重试:重试策略设计 重试次数与成功率
    • 超时控制:超时时间评估、超时与业务中断问题
    • 自动扩缩容的一般设计机制
    • 服务治理的统一理论
  • 容错方案
    • 第三方崩溃 / 基础组件崩溃的容错方案
    • 异常隔离与降级服务设计
  • 可用性测试与容灾演练

第四周

通知平台高并发设计与实现

教学目标

    • 深入理解高并发场景下的性能瓶颈及优化方法
    • 掌握接口调用的性能优化技巧,如批量接口、pipeline 和 stream 接口等
    • 掌握设计复杂缓存方案的技巧,熟练运用多级缓存并解决一致性问题
    • 掌握内存使用优化方案和常见手段
    • 掌握设计分库分表方案的技巧
      • 掌握使用 DeepSeek 设计分库分表方案的技巧
      • 利用 DeepSeek 来生成完整的分库分表实施方案,并且进行修改调整
    • 掌握协程池的使用与优化方案

详细内容

  • 性能优化
    • pipeline/stream 接口
    • 消息优先级队列:重要消息优先发送
    • MQ 单个转批量 / 合并发送
      • 智能批量策略:自适应批量大小
    • 缓存方案
      • 多级缓存方案:数据一致性问题、可用性保障
      • 预热
    • 内存使用优化:引入对象池
    • 引入协程池与协程池优化
  • 高性能通知发送策略
    • 基于时间的发送策略:分时段发送、业务低峰期发送
    • 基于优先级的发送策略:多级优先级设计、动态优先级调整、饥饿避免机制
    • 自适应发送策略
      • 基于系统负载的自适应发送策略
      • 基于渠道成本的智能发送策略
      • 基于到达率的自适应发送策略
  • 通知存储的分库分表方案
    • 在 DeepSeek 的帮助下制定分库分表方案和实施方案
    • 分库分表后的复杂查询支持
    • 分库分表设计
      • 分片策略
      • 路由规则
      • 扩容方案
    • 查询优化
      • 索引设计
      • 查询重写
      • 缓存策略
  • 性能测试与性能瓶颈分析

通用权限类服务:权限系统

项目整体介绍:

项目目标

通过构建一个通用权限类服务的模板项目,解决实践中遇到的权限控制和鉴权问题,尤其是在高并发、数据一致性要求高的场景下,确保权限数据的一致性与及时生效,平衡缓存与实时性的需求。该模板项目将涵盖RBAC、ABAC 等核心模型,并结合缓存、CQRS 等技术手段,实现高性能和高可用。使学员能解决绝大多数实践中遇到的权限控制、鉴权等问题,从容应对以下典型业务场景:

  • 高并发高性能与数据一致性场景
    • 场景描述:在需要同时满足高并发、高性能和数据一致性的场景下,如何设计一个高效且可靠的权限系统。
    • 应对策略:
      • 设计高性能权限校验机制:采用分布式缓存存储权限数据,减少数据库的直接访问,提升权限校验的响应速度。
      • 保障数据一致性:通过分布式锁或事务机制,确保权限数据在并发更新时的一致性。
      • 实施读写分离与分库分表:针对高并发场景,设计读写分离架构,并结合分库分表策略,分散数据库压力,提升系统整体性能。
  • 读高并发场景
    • 场景描述:在权限系统的读请求远高于写请求的场景下,如何优化系统架构以应对高并发读取需求。
    • 应对策略:
      • 设计多级缓存方案:采用本地缓存与分布式缓存相结合的多级缓存方案,减少高并发读取对数据库的压力。
      • 预加载权限数据:在系统启动或权限变更时,提前将权限数据加载到缓存中,避免高并发场景下的缓存穿透问题。
      • 实施限流与降级策略:针对高并发读取场景,设计限流策略和降级机制,确保系统在极端情况下仍能稳定运行。
  • 高可用性与容错场景
    • 场景描述:在权限系统对可用性要求极高的场景下,如何设计高可用架构并实施容错措施。
    • 应对策略:
      • 设计容错与自动恢复机制:实现熔断机制和重试策略,在依赖服务故障时自动降级或恢复,保障系统的稳定性。
      • 搭建监控与告警体系:建立全面的监控体系,实时跟踪权限系统的健康状态,并配置自动告警机制,及时发现并处理潜在问题。

第五周

权限系统需求分析与架构设计1:基于角色的权限控制(RBAC)

教学目标

    • 掌握理解 RBAC 模型的核心概念和应用场景,掌握高扩展的 RBAC 模型的设计与实现方法
    • 在 RBAC 的基础上,掌握复杂权限控制方案,包括权限时效性、多级继承等
    • 在 DeepSeek 的帮助下,设计完备、高可扩展性的权限控制方案
    • 学会将 RBAC 与个人权限混合控制机制结合使用

详细内容

  • RBAC 设计与实现
    • 用户、角色、权限、资源之间的关系建模
      • 利用 DeepSeek 识别业务中的角色、权限和资源,生成 RBAC 的 UML 类图
    • RBAC 数据表结构设计与实现
    • 角色定义与管理
    • 权限分配与撤销机制
    • 权限验证与鉴权流程
  • 权限模型扩展性设计
    • 如何动态添加新的权限类型或规则
    • 预留扩展字段,方便未来添加新的权限属性
    • 支持自定义权限类型,满足不同业务场景的需求
    • 借助 DeepSeek 评估权限模型的扩展性,以及权限建模的局限性
  • RBAC 进阶模型设计与实现
    • 临时授权体系:支持短期授权、自动失效机制
    • 权限继承关系:多级继承支持
    • 权限与资源版本控制:版本化权限管理,支持权限变更的回滚与追踪
  • RBAC 与个人权限混合的控制机制
    • 用户专属权限与角色权限的优先级控制
    • 混合机制的实现与冲突处理
    • 结合 RBAC 与用户个性化权限,实现灵活的权限控制

第六周

权限系统需求分析与架构设计2:基于属性的权限控制(ABAC)

教学目标

    • 掌握理解 ABAC 模型的核心概念和应用场景,掌握高扩展的 ABAC 模型的设计与实现方案
    • 掌握理解 ABAC 模型的核心概念和应用场景,掌握高扩展的 ABAC 模型的设计与实现方案
    • 掌握 ABAC 中实现条件组合权限控制的设计与实现方案
    • 学习 RBAC 与 ABAC 的混合使用场景及实现方式,用统一模型描述 RBAC 和 ABAC
    • 设计统一的权限控制接口,支持灵活的权限查询与集成,掌握与中间件的集成方式
      • 在 DeepSeek 的帮助下完成接口设计
      • 在 DeepSeek 的帮助下集成各个中间件

详细内容

  • ABAC 模型简介
    • 核心概念:主体(Subject)、客体(Object)、环境(Environment)、动作(Action)
    • 策略定义和规则引擎
      • 动态规则匹配:基于属性值与规则的动态权限校验
      • 条件组合权限:多条件复杂判断,支持 AND、OR、NOT 等逻辑组合
    • 属性列表定制:如何根据业务需要灵活定义属性
      • 复杂权限场景的解决方案
    • 地域限制、设备限制等特殊场景的权限校验
  • ABAC 设计与实现
    • 在 DeepSeek 的协助下识别属性和权限控制策略
    • 属性定义和存储
      • 属性存储结构:可在关系型数据库、文档型数据库或分布式 KV 系统中灵活实现
    • 动态策略解析:基于属性与策略规则实时执行鉴权逻辑
  • RBAC 进阶模型设计与实现
    • 临时授权体系:支持短期授权、自动失效机制
    • 权限继承关系:多级继承支持
    • 权限与资源版本控制:版本化权限管理,支持权限变更的回滚与追踪
  • ABAC 和 RBAC 的混合解决方案
    • 混合模型的优先级与冲突处理。
    • 使用 RBAC 处理大范围适用的通用权限,用 ABAC 细化个别特殊场景
  • 统一权限模型:用一个基本模型统一描述 ABAC 和 RBAC
    • 抽象出通用的权限模型,兼容 RBAC 和 ABAC
    • 构建兼容 RBAC 和 ABAC 的统一元数据结构,减少重复开发、提升系统一致性
  • 统一的权限控制接口
    • 利用 DeepSeek 完成接口设计
    • 在 DeepSeek 的帮助下完成与中间件的集成:如和 ORM、Web 等框架的集成
  • 权限控制在具体业务中的应用
    • 控制 HTTP/RPC 接口权限
    • 控制数据访问权限
  • 可观测性:接入 metrics 日志和 trace,重点监控和告警设置

第七周

权限系统安全性、高可用性设计与实现

教学目标

    • 学习高可用权限服务的设计与实现,包括容错、容灾与灰度发布
    • 在 DeepSeek 的协助下,制定可用的容错、容灾方案
    • 实现关键组件的容错机制,确保权限服务在关键组件故障时依旧稳定运行
    • 掌握权限服务的综合服务治理策略,提升系统的整体可用性
    • 设计完善的权限审计与追踪系统,提升系统的安全性与可维护性,构建全面的安全防护体系,防止越权和各种攻击

详细内容

  • 综合全面的服务治理
  • 关键组件崩溃的容错
    • 数据库崩溃的容错策略:例如使用数据库集群或主从复制
    • 缓存崩溃的容错策略:例如使用缓存集群或多级缓存
  • 权限服务本身崩溃之后的鉴权问题
  • 权限审计与追踪
    • 操作审计日志:记录用户的操作行为
    • 权限变更追踪:记录权限的变更历史
    • 审计数据分析:分析审计数据,发现潜在的安全风险
  • 灾备方案
    • 让 DeepSeek 提供可用的灾备方案,并且进行详细分析
    • 多活部署方案:提高可用性和容灾能力。在多个数据中心部署权限服务,确保单点故障不影响整体服务
    • 故障转移机制:自动切换到备用节点。实现自动故障转移,确保在主节点故障时,备节点能够快速接管服务
    • 多数据中心同步:跨 Region、跨可用区的数据一致性保障
  • 设计多活方案的一般性理论:
    • 多处部署
    • 数据同步与一致性问题
    • 流量切换
    • 利用 DeepSeek 设计多活方案的方法
      • 生成多活架构部署拓扑
      • 设计跨机房数据同步方案
      • 输出故障切换演练 checklist
  • 数据备份与恢复:
    • 设计完善的数据备份策略,确保权限数据的安全存储
    • 实现高效的数据恢复机制,确保在数据丢失或损坏时能够快速恢复服务
    • 热备、冷备方案结合,缩短恢复时间(RTO)和数据丢失(RPO)范围
  • 可用性测试和故障演练

第八周

权限系统高性能、高并发鉴权方案设计与实现

教学目标

    • 学习权限服务在高并发场景下的性能优化策略
    • 实现权限缓存、批量校验、CQRS 模式等高性能方案
    • 设计并实现高效的数据同步和访问方案,确保系统的高可用性和一致性
    • 在 DeepSeek 的协助下设计并实现 SDK 形态的权限操作接口,并在 SDK 中实施反范式的性能优化策略,知晓 SDK 设计与版本管理的核心方法
    • 学习权限存储的分库分表设计与实现

详细内容

  • 权限的缓存方案
    • 常用权限缓存方案
    • 缓存与权限变更生效问题:轮询权限变更、实时监听权限变更、反向通知业务方 / 前端
    • 多渠道通知方式
      • 消息队列:基于 MQ 的权限变更通知
      • 回调接口:主动推送权限变更
  • CQRS 与部署方案
    • 读写分离的权限服务架构
    • CQRS 模式的实现与部署
  • 批量权限检查:支持批量权限校验,提升高并发场景下的性能
    • 权限信息前置
      • 写入到 JWT token
      • 写入到 Session
  • 反范式设计:提供 SDK
    • 在 DeepSeek 的协助下设计并实现 SDK
    • 版本管理机制
      • 打包编译的时候通过 CI/CD 来进行版本管理
      • plugin 机制统一管理版本
    • 集成分布式的本地缓存
    • 直接访问 Redis
  • ABAC 的性能优化
    • 属性与规则的存储与查询优化
    • 动态规则匹配的优化方法(如预编译规则)

网关类服务:WebSocket 网关

项目整体介绍

项目目标

通过构建一个网关类服务的模板项目,帮助学员掌握WebSocket网关的核心设计思路与应对策略,并提升其在复杂业务场景下的方案落地能力。本项目旨在解决与网关相关的重点难点问题,包括长连接管理、高并发支持以及网关的高效设计与实现,使学员能够应对以下典型业务场景:

  • 海量长连接场景
    • 场景描述:在需要维持大量客户端长连接的场景下,如何设计高效、稳定的长连接管理机制。
    • 应对策略:
      • 设计连接心跳机制:实现心跳检测机制,定期检查客户端连接状态,及时清理无效连接,避免资源浪费。
      • 优化连接管理:采用连接池技术,高效管理客户端连接,支持快速查找和操作连接状态。
      • 实现断线重连机制:设计自动重连逻辑,确保客户端在网络波动或异常断开后能够快速恢复连接。
  • 自研网关场景
    • 场景描述:在需要支持高并发、低延迟的场景下,如何设计一个高性能的网关。
    • 应对策略:
      • 设计高并发架构:采用异步非阻塞模型实现网关核心通信层,支持高并发连接和消息处理。
      • 实现消息路由与负载均衡:设计消息路由机制,支持将客户端请求分发到后端服务,并结合负载均衡策略,确保后端服务的稳定性。
      • 优化数据传输性能:采用二进制协议(如 Protobuf)或高效压缩算法,减少数据传输量,提升网关的吞吐量和响应速度。
  • 读写高并发场景
    • 场景描述:网关需要同时处理大量的客户端连接(读高并发)和实时消息转发(写高并发),如何设计系统架构以保证性能与可用性,满足大规模用户访问需求。
    • 应对策略:
      • 设计高性能读写分离机制:将连接管理与消息处理分离,采用多线程或协程模型,分别优化读写性能。
      • 实现消息队列缓冲:在高并发写入场景下,引入消息队列作为缓冲层,避免消息处理过载。
      • 优化资源分配:根据读写负载动态分配系统资源,确保读写操作的高效执行。
  • 高可用性与容错场景
    • 场景描述:在网关对可用性要求极高的场景下,如何设计高可用架构并实施容错措施。
    • 应对策略:
      • 构建分布式网关集群:设计分布式网关架构,支持水平扩展,避免单点故障,提升系统的整体可用性。
      • 实现故障自动转移:设计故障检测与自动转移机制,确保在某个网关节点故障时,流量能够快速切换到其他可用节点。
      • 搭建监控与告警体系:建立全面的监控体系,实时跟踪网关的健康状态,并配置自动告警机制,及时发现并处理潜在问题。

第九周

WebSocket 网关需求分析和架构设计

教学目标

    • 掌握 WebSocket 网关的核心需求分析与架构设计方法
    • 掌握利用 DeepSeek 完成网关类系统的需求分析和架构设计方案
    • 学会设计通用的消息协议与插件化架构,适配多业务线场景
    • 学会进行网关的总体架构设计,包括分层架构和插件化设计
    • 理解多业务场景下的协议设计要点
    • 学习插件化架构的设计与实现

详细内容

  • “多业务线场景分析”,
    • 利用 DeepSeek 来分析场景
    • 系统管理消息
      • WebSocket 管理消息:支持客户端连接迁移
      • 多端踢人消息:实现多设备登录冲突处理
    • 推送消息
    • IM
      • 站内私聊
      • AI 机器人 / 客服支持
  • 撰写技术文档的技巧
    • 利用 DeepSeek 撰写技术文档:生成骨架、填充细节、修改润色
  • 网关架构设计
  • 分层架构设计:层次划分的基本原则
    • 接入层:负责客户端连接的建立与管理
    • 协议层:处理消息的编解码与协议转换
    • 业务层:执行业务逻辑,如消息路由、处理与转发
    • 存储层:管理持久化数据,如会话信息和消息历史
  • 插件化架构设计
    • 插件的接入策略
    • 插件接口设计
    • 业务方接入接口设计
    • 具体插件实现
      • 认证插件:实现多种认证机制(如 Token、OAuth),确保连接安全
      • 可观测性插件:接入日志、metrics 和 trace
      • 业务插件:根据不同业务需求定制化处理逻辑
  • 安全架构设计
    • 接入认证:确保连接合法性
    • 传输加密:使用 TLS/SSL 等技术保障数据安全
    • 攻击防护:防止恶意攻击
  • WebSocket 消息协议设计
    • 在 DeepSeek 的协助下参考不同协议设计方案,制定自己的协议格式
    • 协议格式设计:定义消息的结构、字段及其含义,确保统一性与可解析性
    • 业务方对接方式:定义业务方与网关的交互方式,包括连接建立、消息发送与接收
    • 协议版本管理:实现向下兼容机制,保障协议更新过程中旧版本的持续可用性
    • 协议扩展字段:协议插件机制,支持根据不同业务需求动态扩展协议功能
    • 消息优先级:支持多级别消息优先级,确保关键消息的及时传输
    • 消息可靠性:完善的消息确认机制,保障消息传输的可靠性

第十周

WebSocket 网关核心难点

教学目标

    • 掌握利用 DeepSeek 分析系统难点的方法,在 DeepSeek 的帮助下制定完整的消息可靠传输、会话管理、连接管理方案
    • 掌握 WebSocket 网关消息可靠传输机制,包括消息确认、重传、顺序和幂等性处理
    • 实现会话管理功能,包括会话创建、销毁、保持、恢复和迁移
    • 设计连接管理模块,实现连接监控、智能重连、连接复用和连接池管理
    • 学习如何设计通用网关,支持多协议转换和适配,提升网关的灵活性与可扩展性

详细内容

  • 消息可靠传输
    • 消息可靠性保证与借助 DeepSeek 制定消息可靠传输方案
    • 消息确认机制:客户端确认消息接收,服务端记录状态
    • 消息重传策略:支持超时重传与失败重试
    • 消息幂等性:确保重复消息不会导致业务逻辑异常
      • 消息去重
    • 离线消息推送:支持客户端离线时的消息存储与推送
      • 存储策略
      • 推送机制
    • 消息顺序问题:消息失序与处理策略
    • 消息加密与签名:对传输的消息进行加密与签名,防止数据被篡改或窃取
  • 会话管理
    • 利用 DeepSeek 制定会话管理方案,识别难点和提供实施建议
    • 会话创建与销毁:高效管理会话生命周期
    • 分布式会话管理
      • 使用分布式存储来管理会话信息,实现多节点共享
      • 会话数据同步:保证多节点间会话数据的一致性,支持高可用性与容错性
    • 安全性增强
      • 访问控制:基于用户身份与权限控制消息的发送与接收,保障系统安全
    • 会话保持:通过心跳机制维持会话活跃状态
    • 会话恢复:支持断线重连后的会话数据恢复
      • 数据恢复
      • 状态恢复
    • 会话迁移:支持客户端在不同节点之间的会话迁移
      • 跨节点迁移
      • 数据同步
    • 心跳机制
  • 连接管理
    • 利用 DeepSeek 设计连接管理方案
    • 连接监控:实时监控连接状态,统计在线用户数
    • 智能重连:使用退避算法优化重连策略
    • 连接复用:支持多路复用,减少连接资源占用
    • 连接池管理:高效管理连接资源,避免资源浪费
    • 连接状态机设计:清晰定义连接的各个状态及其转换规则
    • 异常连接检测:及时发现并清理无效或恶意连接
  • 通用网关设计
    • 协议转换网关
      • HTTP/WebSocket 双向转换
      • TCP/WebSocket 双向转换
      • 协议适配器设计:支持多种协议的灵活适配
  • 可观测性:接入 metrics 日志和 trace,重点监控和告警设置

第十一周

WebSocket 网关高可用设计与实现

教学目标

    • 掌握 WebSocket 网关高可用架构设计的核心原则和技术方案,构建具备高可用性和容灾能力的 Websocket 网关,保证服务的持续可用与稳定运行
    • 理解如何通过水平扩展、负载均衡、优雅上下线和消息队列隔离等技术提升网关的可用性
    • 掌握利用 DeepSeek 设计网关高可用保障方案的技巧,并且在 DeepSeek 的帮助下实施
    • 学习综合的服务治理方案,实现网关的水平扩展与智能调度,提升系统的整体可靠性
    • 掌握 WebSocket 网关在实际生产环境中的高可用与容灾方案

详细内容

  • 综合的服务治理方案
    • 熔断、限流、降级:参考第一个项目的内容,根据 WebSocket 网关的特点进行适配
    • 参考第一个项目的内容,结合 Websocket 网关的特点,设计适用于网关服务的服务治理方案
    • 包括熔断、限流、负载均衡、降级等治理手段,提升系统的整体可靠性与稳定性
  • Websocket 网关水平扩展
    • 弹性伸缩(动态扩缩容)
      • 实现基于实时流量与负载监控的自动扩缩容机制,动态调整网关实例数量
      • 智能负载均衡:基于连接数、CPU 使用率等指标分配流量
      • 再均衡策略:在节点扩容或缩容时重新分配连接
    • 负载均衡与再均衡
      • 智能负载均衡:基于负载的动态调度、基于地理位置的调度、基于网络质量的调度
      • 再均衡策略:将连接从过载节点迁移到空闲节点
    • 容量规划
      • 连接数估算:根据业务需求预估最大连接数
      • 资源占用评估:评估 CPU、内存等资源需求
  • WebSocket 网关节点优雅上线下线(和会话管理高度相关)
    • 在不中断现有连接的情况下完成节点的上线或下线
    • 新节点上线:预热连接,逐步接管流量
    • 节点下线:通知客户端重连到其他节点,避免连接中断
  • WebSocket 连接优雅迁移(和会话管理高度相关)
    • WebSocket 连接优雅迁移(和会话管理高度相关)
      • 节点维护或升级:无损迁移 / 状态保持
      • 流量切换:渐进式切换 / 回滚机制
  • 消息队列隔离与分组
    • 根据业务类型对消息队列进行隔离,避免互相干扰
    • 将不同业务的消息路由到不同的消息队列,避免业务之间相互干扰
  • 消息队列隔离与分组
    • 根据业务类型对消息队列进行隔离,避免互相干扰
    • 将不同业务的消息路由到不同的消息队列,避免业务之间相互干扰
  • 客户端容错:提供断线重连与备用节点切换机制,提升客户端体验
    • 实现客户端的容错机制,如自动重连、连接备份等,提升客户端在网络不稳定环境下的使用体验
    • 业务资源控制
      • 消息频率限制:防止恶意用户频繁发送消息
      • 连接数限制:限制单用户的最大连接数
  • 消息队列隔离与分组
    • 根据业务类型对消息队列进行隔离,避免互相干扰
    • 将不同业务的消息路由到不同的消息队列,避免业务之间相互干扰
  • 客户端容错:提供断线重连与备用节点切换机制,提升客户端体验
    • 实现客户端的容错机制,如自动重连、连接备份等,提升客户端在网络不稳定环境下的使用体验
    • 业务资源控制
      • 消息频率限制:防止恶意用户频繁发送消息
      • 连接数限制:限制单用户的最大连接数
  • 网关监控体系
    • 性能指标定义:明确网关服务的关键性能指标(KPI),如连接数、消息吞吐量、延迟、错误率等,作为性能优化与监控的依据
    • 连接监控:实时统计在线连接数与连接状态
    • 消息监控:监控消息发送与接收的延迟与错误率
    • 性能监控:监控 CPU、内存、网络等资源使用情况
    • 流量控制:限制单用户或单业务的最大流量。限制特定客户端或 IP 的连接数和消息频率
    • 黑名单机制:屏蔽恶意用户或 IP
    • 利用 DeepSeek 解读监控数据

第十二周

WebSocket 网关高性能、高并发设计与实现

教学目标

    • 掌握 WebSocket 网关性能优化的关键技术,包括传输优化、内存优化和 TCP 优化
    • 理解如何通过批量传输、连接复用和连接预热等技术提升网关并发处理能力
    • 熟悉资源控制、连接池优化等实现高性能与高弹性伸缩
    • 利用 DeepSeek 设计压测方案,并且要求 DeepSeek 解读压测数据,识别性能瓶颈,给出优化建议

详细内容

  • 性能监控与分析
    • 使用 Prometheus、Grafana 等工具监控网关性能指标,例如连接数、消息吞吐量、延迟等
    • 分析性能瓶颈,并针对性地进行优化
    • 性能测试
      • 在 DeepSeek 帮助下设计测试方案,并且分析测试结果,给出优化建议
  • 传输优化
    • WebSocket 消息压缩:使用 gzip 或 deflate 算法压缩消息体积
    • 编解码优化:使用高效的序列化工具(如 protobuf)等
    • 连接池优化:限制最大连接数,避免资源耗尽
      • 连接复用:使用多路复用技术,对后端服务或组件保持少量长连接
      • 连接预热:在流量高峰前自动建立连接
    • 批量传输技术:合并小消息,减少网络交互次数
      • 消息合并
      • 智能分批
    • 心跳优化
      • 频率自适应:如减少心跳
      • 数据精简
    • 传输延迟优化
  • 内存优化
    • 池化技术:通过对象池减少 GC 压力
    • 零拷贝技术:避免数据在内存中的多次拷贝
    • Buffer Pool:使用基于 Arena 的内存分配优化
  • 操作系统优化
    • TCP 优化:调整 TCP 参数(如窗口大小、拥塞控制算法)
    • 系统资源控制
      • 文件描述符管理:限制最大连接数,避免资源耗尽
      • 内存使用控制:设置内存使用上限,防止 OOM

调度与编排类服务:分布式任务调度系统

项目整体介绍

项目目标

通过构建一个调度与编排类服务的模板项目,帮助学员掌握分布式任务调度系统的核心设计思路与应对策略,并提升其在复杂业务场景下的方案落地能力。本项目旨在解决任务调度中的重点难点问题,包括规则引擎设计、自定义 DSL 实现以及大规模、高并发、高可用的定时任务调度需求等,使学员能够应对以下典型业务场景:

  • 设计规则引擎与自定义DSL实现的场景
    • 场景描述:在需要灵活定义和管理任务调度规则的场景下,如何设计规则引擎并实现自定义领域特定语言(DSL),以满足复杂任务编排需求。
    • 应对策略:
      • 设计规则引擎核心架构:构建可扩展的规则引擎,支持动态加载、解析和执行任务调度规则。
      • 实现自定义 DSL:设计并实现一套简洁、易用的 DSL,允许用户通过自然语言或类 SQL 语法定义复杂的调度规则。
      • 优化规则解析与执行性能:采用高效的解析算法(如 ANTLR)和缓存机制,提升规则解析与执行效率。
      • 检测规则依赖的循环问题:设计基于 DAG 模型的循环依赖检测机制,确保规则的正确性与执行顺序。
  • 设计大规模、高并发、高可用的定时任务解决方案的场景
    • 场景描述:在需要支持大规模任务调度、高并发执行以及高可用性的场景下,如何设计一个能够动态扩展的分布式任务调度系统。
    • 应对策略:
      • 设计分布式任务调度架构:采用分布式架构(如基于 ZooKeeper 或 Etcd 的协调服务),支持任务的分片调度与负载均衡。
      • 实现高并发任务执行引擎:设计基于多线程或协程的任务执行模型,优化任务执行性能,支持百万级任务处理。
      • 保障系统高可用性:设计故障检测与自动恢复机制,确保在节点故障时任务能够自动迁移并继续执行。
      • 支持动态扩缩容:实现任务调度节点和执行节点的动态扩缩容能力,满足业务高峰期的资源需求。
  • 读写高并发场景
    • 场景描述:分布式任务调度系统需要同时处理大量的任务调度请求(写高并发)和任务状态查询请求(读高并发),属于典型的读写高并发场景。
    • 应对策略:
      • 场景描述:分布式任务调度系统需要同时处理大量的任务调度请求(写高并发)和任务状态查询请求(读高并发),属于典型的读写高并发场景。
      • 实现任务状态缓存:引入分布式缓存,缓存任务状态信息,减少数据库的直接访问压力。
      • 优化任务调度算法:设计高效的任务调度算法(如时间轮算法或延迟队列),确保任务能够按时触发并执行。
      • 分库分表策略:针对任务存储设计分库分表方案,提升数据库的并发处理能力。
  • 设计复杂任务编排与依赖管理的场景
    • 场景描述:在需要处理复杂任务依赖关系(如前置任务、后置任务、条件分支、并行执行等)的场景下,如何设计灵活的任务编排机制并支持动态调整。
    • 应对策略:
      • 支持复杂任务依赖管理:设计任务依赖的前置、后置关系,确保任务按依赖顺序执行。
      • 实现高级编排特性:支持条件分支、并行执行、循环执行、超时控制等高级任务编排需求。
    • 任务动态调整:支持任务依赖关系、优先级的动态调整,满足运行时的灵活需求。
    • 任务编排可视化:提供任务编排的图形化界面,便于用户直观配置任务依赖关系。
  • 优化任务的调度场景
    • 场景描述:在需要支持海量任务的调度系统中,如何优化任务调度的性能,提升任务执行的吞吐量和系统资源利用率。
    • 应对策略:
      • 实现批量任务调度:通过合并小任务为批量任务,减少调度开销,提升调度效率。
      • 优化任务分片与调度:设计智能分片策略,根据任务类型与数据量动态分片,并优先分配空闲节点执行。
      • 优化任务分片与调度:设计智能分片策略,根据任务类型与数据量动态分片,并优先分配空闲节点执行。
      • 优化任务执行器性能:设计任务执行器的并发模型,充分利用多核 CPU 与高性能网络资源。
      • 存储优化:结合分布式缓存与分库分表策略,提升任务存储的读写性能。

第十三周

分布式任务调度需求分析和架构设计

教学目标

    • 理解分布式任务调度的复杂场景,利用 DeepSeek 分析业务场景
    • 掌握分布式任务调度系统的核心架构设计,在 DeepSeek 的帮助下产出设计文档,能设计并落地核心组件
    • 理解复杂调度策略,在 DeepSeek 的帮助下设计并落地具体的调度策略
    • 学习任务依赖管理、生命周期管理、监控和运维方面的基本要点

详细内容

  • 整体架构设计
    • 利用 DeepSeek 完成架构设计
    • 调度系统架构设计
    • 分层架构
      • 调度层:负责任务分发与调度逻辑
      • 编排层:处理任务依赖与规则编排
      • 执行层:任务的实际执行与状态反馈
      • 存储层:任务元数据与执行结果的持久化
    • 核心组件设计
      • 调度器:实现任务分发、优先级调度、资源感知调度
      • 执行器:负责任务的实际执行与状态上报
      • 任务队列:支持高并发任务的队列化处理
    • 多形态
      • SDK 接入:业务方使用 SDK 接入,任务存储在业务方数据库
      • 集中式调度:任务由调度系统统一管理,业务方提供任务实现
  • 业务方接口
    • 实时注册接口
    • 任务查询接口
    • 任务调度接口
  • 复杂调度策略
    • 利用 DeepSeek 分析可用的调度策略,以及调度策略设计的要点
      • 生成时间轮算法实现代码
    • 多维度调度算法:基于时间、资源、优先级等多维度调度
    • 优先级调度:支持多级优先级任务的动态调整
    • 资源感知调度:根据节点资源使用情况动态分配任务
    • 调度预测:基于历史数据预测任务负载,提前分配资源
  • 任务管理
    • 长任务支持
      • 进度追踪
      • 状态同步
      • 提供任务中断与恢复机制
    • 任务分片:将大任务拆分为多个小任务并行执行
      • 分片策略:按数据范围、任务类型等维度分片
      • 动态分片
      • 均衡分配
      • DeepSeek 推荐任务分片策略
  • 管理后台
    • 任务生命周期管理:从创建到完成的完整状态管理
    • 任务监控:实时监控任务执行状态与性能
    • 任务运维工具:支持任务的暂停、重试、终止等操作
  • 可观测性:接入 metrics 日志和 trace,重点监控和告警设置

第十四周

分布式任务调度的任务编排与规则引擎设计

教学目标

    • 掌握任务编排的核心技术与实现方法,掌握前置、后置、并行与条件分支等高阶特性
    • 在 DeepSeek 的帮助下完成任务编排和规则引擎的设计
    • 学习规则引擎的设计与实现,掌握高扩展的 DSL 设计方法,以应对复杂的业务需求
    • 在 DeepSeek 的帮助下设计一个 DSL
    • 掌握复杂任务依赖与执行规则的实现

详细内容

  • 自定义 DSL 设计
    • 语言设计原则
      • 简洁性与可读性
      • 扩展性与灵活性
    • 语法设计与实现
      • 关键字与语法规则
      • DeepSeek 生成完整语法规格说明
    • DSL 与业务逻辑的集成
      • 如何将自定义 DSL 转换为可执行的任务编排逻辑
      • 测试与调试自定义 DSL
  • 任务编排与自定义规则
    • 利用 DeepSeek 识别任务编排难点,以及设计规则
    • 前置任务:指定任务 A 执行完成后,再执行任务 B
    • 后置任务:任务 A 执行后自动触发下一任务 C 或多任务并行
    • 高级编排特性
      • 条件分支:根据执行结果或外部输入决定下一个任务
      • 并行执行:多个任务一起启动,提高整体效率
      • 循环执行:定时轮询或循环检查,直到达到终止条件
      • 超时控制:防止单个任务阻塞整体流程
    • 任务编排可视化:提供任务编排的图形化界面,便于配置与管理
  • 规则引擎
    • 解析规则
      • 基于 ANTLR 的 DSL 解析器设计
      • DAG 模型设计:任务依赖关系的有向无环图表示
      • 循环依赖检测:自动检测并处理任务依赖中的循环问题
    • 执行规则
    • 结果汇总:收集任务执行结果
  • 扩展为通用规则引擎(以讲解思路为主)
    • 设计思路:将任务调度规则引擎扩展为通用规则引擎
    • 支持多种规则类型(业务规则、数据规则等)
    • 抽象规则引擎核心功能
    • 提供可扩展的接口
    • 支持不同类型的规则

第十五周

分布式任务调度高可用设计与实现

教学目标

    • 掌握分布式任务调度系统的高可用设计,保障任务调度、任务执行和汇总结果等全过程的高可用
    • 在 DeepSeek 的协助下制定高可用保障方案
    • 掌握调度节点、任务执行节点故障恢复、超时控制、重试与容错策略
    • 掌握任务中断与重调度的实现方法

详细内容

  • 在 DeepSeek 的帮助下制定负载均衡、重调度、容错等方案设计
  • 负载均衡和再均衡(和前面的会有所不同)
    • 基于节点负载动态调度:实时监测节点运行状况,对新任务或重试任务进行最优分配
      • 负载感知
      • 实时调整
    • 再均衡策略:长时间运行后,节点间出现不均衡时进行任务迁移或动态拆分
      • 触发条件
      • 执行策略
  • 任务中断与重调度
    • 状态迁移问题:任务中断后的状态恢复
    • 重调度策略
      • 同一节点重调度
      • 不同节点重调度
    • 任务状态管理
  • 容错机制
    • 调度节点不可用的容错:自动切换到备用节点
    • 执行节点不可用的容错:任务自动迁移到其他节点
  • 任务执行超时控制
    • 超时检测与超时中断
    • 超时任务的状态回滚
  • 任务执行优雅启动 / 退出
    • 启动时的资源预热
    • 退出时的状态保存与清理
    • 保证任务在被终止时能保存关键中间状态,不影响后续重启
  • 重试策略
    • 任意步骤开始重试:支持指定失败节点起点,从而省去已完成任务的重复执行。
    • 整体任务重试:在编排层统一触发重新执行整个流程
    • 指数退避:减少无效重试带来的系统额外负担
    • 优先级调整:多次重试后可动态提升任务优先级,减少队列等待时间
  • 可观测性
    • 全链路追踪:记录任务的完整执行路径
    • 调度性能分析:分析调度器的性能瓶颈
    • 资源监控:实时监控节点资源使用情况
    • 调度可视化:提供调度过程的图形化展示

第十六周

分布式任务调度高性能设计与实现

教学目标

    • 掌握分布式任务调度系统的性能优化方法,在 DeepSeek 的帮助下设计性能优化方案,解读性能优化各个参数的含义以及调整方向
    • 学习高并发场景下的批量调度与分片策略,深入了解调度的可扩展性
    • 掌握心跳优化及长任务状态合并上报的解决方案
    • 掌握分库分表策略与数据拆分的技术要点,为海量数据提供稳定支持

详细内容

  • 批量任务调度
  • 基于节点负载和资源的动态调度策略
    • 实时监控节点资源和负载
    • 动态调整任务分配
      • 资源优先
      • 低负载优先
  • 长任务状态查询与心跳优化
    • 合并状态上报:减少心跳频率
    • 状态查询优化:支持批量查询
    • 动态心跳机制,根据任务执行阶段自动调整心跳间隔
  • 任务分片
    • 智能分片策略:基于任务本身的数据量或执行时长,自动确定分片大小
    • 分片智能调度:将分片分配给不同节点并行处理,加快整体执行速度
    • DeepSeek 生成智能分片算法代码
  • 存储优化
    • 分库分表
      • 分片策略
      • 路由规则
      • 利用 DeepSeek 生成分库分表方案
    • 数据清理
      • 归档策略
      • 清理规则
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。