课程大纲

第一天:Go中的事件驱动架构基础

  • EDA简介
    • 什么是事件驱动架构?
    • 单体、微服务和事件驱动系统的比较
    • Go的并发模型和轻量级goroutines如何使其成为EDA的理想选择
  • 核心概念与优势
    • 企业系统中的解耦、可扩展性和弹性
    • 定义事件、生产者、消费者和事件代理
    • Go驱动高性能事件系统的真实案例
  • CAP定理与EDA中的权衡
    • 一致性、可用性和分区容错性概述
    • EDA对这些特性的影响
    • 在基于Go的系统中平衡一致性和可用性的策略

第二天:Go中的事件、消息和通信模式

  • 理解事件类型
    • 领域事件与集成事件
    • Go应用中的同步与异步事件
  • 实践中的消息模式
    • Go中的发布-订阅(Pub/Sub)模式
    • 如何使用JSON、Protocol Buffers或Avro在Go中设计和构建事件负载
  • 在Go中实现事件处理
    • 流行的Go消息库和框架概述
    • 代码示例:使用Go惯用模式派发和处理事件
    • 实践操作:在Go中构建一个简单的事件驱动服务

第三天:Go中的消息系统与事件代理

  • 选择与集成事件代理
    • 流行代理概述:Apache Kafka、RabbitMQ和NATS
    • Go系统的用例比较与最佳实践
  • 设置消息基础设施
    • 使用Docker Compose设置Kafka、RabbitMQ或NATS
    • 配置主题、交换机、队列和通道
    • Go客户端库概述
  • 实践操作
    • 构建一个生成和消费事件的Go微服务示例
    • 将服务与选定的事件代理集成
    • 调试和测试事件流

第四天:Go EDA中的部署、监控与高级主题

  • 在Kubernetes上部署Go事件驱动应用
    • 为生产环境容器化Go应用
    • 在Kubernetes集群上部署Kafka(或其他代理)
    • KEDA(Kubernetes事件驱动自动扩展)简介,用于扩展事件消费者
  • 错误处理与监控
    • 处理事件失败的策略
    • 在Go服务中实现可观测性
  • 高级主题与问答
    • 探索使用Go实现无服务器事件驱动架构
    • 事件编排与编排:用例与设计考虑
    • 常见陷阱、经验教训与最佳实践
    • 开放式问答与互动式故障排除

要求

  • 熟练掌握Go(Golang),包括goroutines和channel的使用。
  • 对单体架构和微服务等软件架构模型有基本了解。
  • 熟悉Docker和Docker Compose。
  • 具备REST API和网络概念的基本知识。
  • 有命令行工具和Git的使用经验。
  • 可选但建议:有Kubernetes及Kafka、RabbitMQ或NATS等消息系统的使用经验。

受众

  • 构建可扩展事件驱动应用的Go开发者。
  • 从单体或REST架构转向异步系统的软件工程师。
  • 使用容器化或分布式微服务的DevOps和云工程师。
  • 探索使用Go实现EDA模式的技术架构师和系统设计师。
 28 小时

客户评论 (7)

即将举行的公开课程

课程分类