課程簡介

第一天: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)

即將到來的課程

課程分類