06 Spring Cloud 概述

這是我參與8月更文挑戰的第8天,活動詳情查看:8月更文挑戰編程

1. 簡介

Spring Cloud基於Spring Boot,是微服務架構思想的一個具體實現,它爲開發人員提供了一些快速構建分佈式系統中常見模式的工具,如配置管理、服務發現、熔斷器、智能路由、微代理、控制總線等。Spring Cloud的底層基於Spring Boot框架,它不重複造輪子,而是將一些第三方實現的微服務應用模塊集成。
Spring Cloud是一系列有序框架的集合,其中經常使用的子項目以下:服務器

  • Spring Cloud Config

經過SVN、Git等倉庫使配置集中化存儲,配置資源能夠直接映射到Spring Enviroment中。markdown

  • pring Cloud Netflix

與Netflix開發的各類組件集成,包括服務註冊與發現、熔斷器、服務網關、Rest客戶端及負載均衡器等。架構

  • Spring Cloud Bus

將服務、服務實例與分佈式消息連接在一塊兒的事件總線;用於在進羣中傳播狀態變化;和Spring Cloud Config配合,能夠實現配置的動態刷新。負載均衡

  • Spring Cloud Consul

進行Spring Cloud中的服務註冊與發現配置管理。框架

  • Spring Cloud Security

爲Zuul代理中的負載平衡OAuth2 Rest客戶端和身份驗證中繼提供支持。分佈式

  • Spring Cloud Sleuth

用於Spring Cloud 應用程序的分佈式跟蹤,兼容Zipkin、Htrace和基於日誌(例如ELK)的跟蹤。函數

  • Spring Cloud Data Flow

一種可以用於如今進行時並能夠組合微服務應用程序的雲本地編排服務。易於使用的DSL、拖放式GUI和REST-API共同簡化了基於微服務的數據管道的總體編排。微服務

  • Spring Cloud Stream

輕量級事件驅動的微服務框架,可以快速構建可鏈接到外部系統的應用程序,用於在Spring Boot應用程序之間使用Apache Kafka或RabbitMQ發送和接收消息。工具

  • Spring Cloud Task

一種短暫的微服務框架,用於快速構建執行有限數據處理的應用程序,它用於向Spring Boot應用程序中添加功能性和非功能性的簡單聲明。

  • Spring Cloud Gateway

一款基於project Reactor的智能可編程路由器。因爲Zuul2.0版本的開發常常跳票,因此Spring官方開發了路由網關以支持Spring Boot2.0及新版Spring Cloud。

  • Spring Cloud OpenFeign

基於Netflix Feign,是一個聲明式的HTTP客戶端,能夠輕鬆實現服務間接口調用。

  • Spring Cloud Function

經過函數促進業務邏輯的實現,它支持無服務器商之間的統一編程模型以及獨立運行(本地或PaaS)。

以上項目可根據實際狀況選擇一些適合的組件集成到應用中。

2. 優缺點

優勢

  • 集大成者:包含了微服務架構的方方面面
  • 約定優於配置:基於註解,沒有配置文件
  • 輕量級組件:整合的組件大多比較輕量,且都是各自領域的佼佼者。
  • 開發簡便:對組件進行了大量封裝,從而簡化了開發。
  • 開發靈活:組件都是解耦的,開發人員能夠靈活按需選擇組件。

缺點

  • 項目結構複雜:每個組件或者每個服務都須要建立一個項目。
  • 部署門檻高:須要配合Docker等容器技術進行集羣部署。而要想深刻了解Docker,學習成本比較高。

3. 現狀

大勢所趨。

相關文章
相關標籤/搜索