聯繫我們
 課程時長 28 時間:

課程簡介

第一天:Go 中事件驅動架構的基礎

  • EDA 簡介
    • 什麼是用事件驅動架構?
    • 比較单体、微服務與事件驅動系統
    • Go 的並發模型和輕量級協程如何使其成為 EDA 的理想選擇
  • 核心概念與優勢
    • 企業系統中的解耦、擴展性和韌性
    • 定義事件、產生者、消費者和事件中介者 (Event Brokers)
    • 真實案例與研究:Go 如何驅動高性能事件系統
  • CAP 定理與 EDA 中的權衡
    • 一致性、可用性和分割容錯性概覽
    • EDA 對這些特性的影響
    • 在基於 Go 的系統中平衡一致性和可用性的策略

第二天:Go 中的事件、訊息與通訊模式

  • 理解事件類型
    • 領域事件 (Domain Events) 與整合事件 (Integration Events)
    • Go 應用程式中的同步與異步事件
  • 訊息模式的實戰應用
    • Go 中的發布-訂閱 (Pub/Sub)
    • 如何使用 JSON、Protocol Buffers 或 Avro 在 Go 中設計和結構化事件負載 (payloads)
  • 在 Go 中實作事件處理
    • 流行的 Go 訊息庫和框架概覽
    • 程式碼範例:使用慣用 Go 模式進行事件的調度和處理
    • 動手實作:在 Go 中建置簡單的事件驅動型服務

第三天:Go 中的訊息系統與事件中介者

  • 選擇與整合事件中介者
    • 流行中介者概覽:Apache Kafka、RabbitMQ 和 NATS
    • 基於 Go 的系統用例與最佳實踐比較
  • 設定訊息基礎設施
    • 使用 Docker Compose 設定 Kafka、RabbitMQ 或 NATS
    • 配置主題 (topics)、交換機 (exchanges)、佇列 (queues) 和頻道 (channels)
    • Go 客戶端庫概覽
  • 動手工作坊
    • 建置一個產生和消費事件的 Go 微服務範例
    • 將服務與選定的事件中介者整合
    • 除錯和測試事件流

第四天:Go EDA 的部署、監控與進階主題

  • 在 Kubernetes 上部署 Go 事件驅動型應用程式
    • 將 Go 應用程式容器化以供生產環境使用
    • 在 Kubernetes 群集上部署 Kafka(或其他中介者)
    • 介紹 KEDA (Kubernetes Event-Driven Autoscaling) 以擴展事件消費者
  • 錯誤處理與監控
    • 使用策略處理事件失敗
    • 在 Go 服務中實現可觀測性 (observability)
  • 進階主題與問答
    • 探索使用 Go 的無伺服器事件驅動型架構
    • 事件編排 (Choreography) 與指揮 (Orchestration):用例與設計考量
    • 常見陷阱、經驗教訓與最佳實踐
    • 開放式問答會議與互動式除錯

最低要求

  • 熟練使用 Go (Golang),包括使用協程 (goroutines) 和通道 (channels)
  • 對单体 (monoliths) 和微服務 (microservices) 等軟體架構模型有基本了解
  • 熟悉 Docker 和 Docker Compose
  • 具備 REST API 和網路概念的基本知識
  • 有使用命令列工具和 Git 的經驗
  • 選修但有幫助:曾接觸過 Kubernetes 以及 Kafka、RabbitMQ 或 NATS 等訊息系統

受眾對象

  • 建置可擴展、事件驅動型應用程式的 Go 開發人員
  • 從单体或基於 REST 的架構轉向異步系統的軟體工程師
  • 處理容器化或分散式微服務的 DevOps 和雲端工程師
  • 探索使用 Go 的 EDA 模式的技術架構師和系統設計師

客戶評論 (7)

即將到來的課程

課程分類