Lunski's Clutter

This is a place to put my clutters, no matter you like it or not, welcome here.

0%

Spring Cloud 模組

一切都從 Netflix OSS (Netflix Open Source Software)開始說起

Netflix OSS是一個Netflix 開源項目,開發和運維這些微服務的最佳實踐,後來被整合進 Spring Cloud,提供微服務架構的常見解決方案,例如服務發現(Eureka)、客戶端負載均衡(Ribbon)、配置管理(Config Server)、熔斷機制(Hystrix)、API 閘道器(Zuul)等,簡化分散式系統的複雜性,讓開發者能專注於業務邏輯。

服務發現與註冊(Service Discovery & Registration)

1
2
3
4
5
核心工具: Spring Cloud Netflix Consul、Zookeeper( 舊版)、Eureka( 更舊)。  
需掌握:
如何註冊服務到註冊中心(@EnableEurekaClient)。
服務消費者如何動態發現服務(透過 DiscoveryClient 或負載均衡)。
高可用註冊中心的配置(集群部署)。

分散式配置管理(Distributed Configuration)

1
2
3
4
5
核心工具: Spring Cloud Config Server。
需掌握:
集中管理多環境配置(如 dev, prod)。
動態刷新配置(@RefreshScope)。
整合 Git、Vault 或資料庫作為配置儲存源。

服務間同步通訊(Inter-Service Communication)

1
2
3
RestTemplate / WebClient: 搭配負載均衡(@LoadBalanced)。
OpenFeign: 宣告式 HTTP 客戶端(@FeignClient與 Fallback 機制)。
需注意: 通訊超時設定、序列化(JSON/Protobuf)、效能優化。

熔斷與容錯(Circuit Breaker & Fault Tolerance)

1
2
3
4
5
核心工具: Resilience4j、Spring Cloud Circuit Breaker(替代舊版 Hystrix)。
需掌握:
熔斷策略配置(失敗率、超時時間)。
降級邏輯(Fallback 方法)。
監控熔斷狀態(整合 Actuator 或 Prometheus)。

API 閘道(API Gateway)

1
2
3
4
5
核心工具: Spring Cloud Gateway(非阻塞式)、Zuul(舊版)。
需掌握:
路由規則定義(Path, Header 匹配)。
過濾器鏈(Logging、限流、權限驗證)。
整合 OAuth2/JWT 實現統一認證。

分散式追蹤數據(Distributed Tracing)

1
2
3
4
5
6
核心工具: Spring Cloud Sleuth + Zipkin。
* Sleuth: 自動生成追踪 ID(Trace ID)並注入日誌,常搭配Zipkin實現數據上報,支持 OpenTelemetry 標準
* Zipkin: 分佈式追踪數據可視化與分析,展示跨服務調用鏈路與耗時。(可選存儲後端:Elasticsearch、Cassandra)
需掌握:
追蹤請求鏈路(Trace ID、Span ID)。
整合 Logback/ELK 實現日誌聚合。

異步訊息驅動與事件匯流排(Event-Driven Architecture)

1
2
3
4
核心工具: Spring Cloud Stream(整合 RabbitMQ、Kafka)。
需掌握:
定義訊息通道(@Input、@Output)。
事務性訊息與重試機制。

安全機制(Security)

1
2
3
4
核心工具: Spring Security OAuth2、JWT。
需掌握:
微服務間的權限傳遞(如 Authorization Header 中繼)。
整合 Keycloak 或 Auth0 實現單一登入(SSO)。

容器化與雲原生整合

1
2
3
4
需掌握:
打包 Spring Cloud 服務為 Docker 映像。
在 Kubernetes 部署(Service 發現替代 Eureka)。
整合 ConfigMap 與 Secret 管理配置。

效能監控與優化

1
2
3
4
核心工具: Spring Boot Actuator、Micrometer + Prometheus + Grafana。
需掌握:
暴露健康檢查端點(/actuator/health)。
監控 JVM、HTTP 請求延遲、資料庫連線池。

其他重要組件

  • Netflix: 集成多個 Netflix 開源項目,舊版組件,逐步被替代
    • Eureka: 服務發現( 去中心化,降低對集中式負載均衡器的依賴) > K8s/ Consul
    • Ribbon: 負載均衡 > LoadBalancer
    • Hystrix: 熔斷與容錯 > Resilience4j
    • Zuul: API 網關 > Gateway
  • Task: 短生命週期任務的開發和管理,可結合 Kubernetes CronJob
  • Contract: 實現消費者驅動契約測試(Consumer-Driven Contracts),確保服務間接口兼容性

如果你覺得這篇文章很棒,請你不吝點讚 (゚∀゚)

Welcome to my other publishing channels