Mircoservice 的特色

3層架構(3-Tier Architecture)

  • 通常來說,三層架構包括表示層、業務邏輯層、數據訪問層。

多層架構(N-Tier Architecture)

  • 基於 3 層架構,進一步細化層次(如增加 API 層、安全層、緩存層等)。

在分散式系統中,N層架構的層次可能分佈於不同的服務器或微服務中,例如:

  • 表示層運行在用戶的設備或前端服務器。
  • 業務邏輯層運行在後端服務器。
  • 數據層可能是雲端數據庫或分布式存儲。

N層式架構的缺點

⛔ 進行特定層的變更時,必須要重啟應用程式 (多個專案)。
⛔ 需要透過多個專案,無法直接運作。

微服務特色

  • 各服務職責分明、並協同合作完成目標
  • 獨立部署
  • 使用JSON、HTTP 輕量級通訊協定
  • 開發語言不拘,只要以JSON格式互相溝通都行

簡單的微服務概念

▲ 微服務圖示

人們希望微服務解決的問題

  • Continuous Delivery 快速交付
  • Scalability 擴展性
  • High Availability 高可用性
  • Flexible & Decoupled 靈活、解耦
  • Resilient 彈性

微服務的開發模式應思考

  • 思考服務粒度,正確責任級別為何?
  • 通訊協定,服務可否接受非同步傳輸 (HTTP or AMQP) << 其實就算不微服務也該思考
  • 設定管理,如何管理微服務設定?
  • 如何使用事件來解耦微服務?

微服務路由模式

  1. Service Routing模式:為所有服務提供一個單一入口點(URL),以便統一安全策略與路由規則,可作為操作身分、內容驗證的入口點。
  2. Service Discovery模式:可以不寫死IP位址就可以讓Client找到正確的服務,抽象化後可以一併控制服務的新增與刪除,Auto-Scaling的概念。

微服務Client端彈性模式

  1. Client Load Balancing模式:快取微服務的服務實例以便對單一微服務的呼叫可以Load Balance到所有健康的實例上。
  2. Circuit Breaker模式:用於防止Client不斷呼叫失敗或有問題的服務,使這些請求快速失敗。
  3. Fallback模式:當呼叫服務失敗時,用於提供一種外掛機制,允許Client改呼叫其他服務以完成工作。
  4. Bulkhead模式:當微服務應用程式使用多個分散式資源執行工作時,區隔這些呼叫,避免單一服務壅塞導致其他服務也跟著無法正常運作。

微服務Security模式

  1. 身分驗證,確保Client與提供身分符合
  2. 授權,確保以能進行被授權的操作
  3. 憑證管理與傳播,避免不斷對Client索取憑證,Token要可以傳遞於各服務間。

微服務Log Tracking模式

  1. Log Correlation:實作關聯ID,將所有單一交易或操作而呼叫的所有服務所生成的Log紀錄關聯在一起。
  2. Log Aggregation:透過這種模式可以將微服務及各個實例產生的所有日誌紀錄彙整到一個跨服務的可查詢資料庫中,藉由各日誌紀錄的時間戳記可以了解各服務效能狀況。
  3. Microservice tracing:視覺化流程

Mircoservice 的特色
https://clark1945.github.io/2025/01/18/Mircoservice-的特色/
Author
Clark Liu
Posted on
January 18, 2025
Licensed under