Spring cloud:常見的服務組件。

圍繞springboot構建的spring cloud生態下,目前有兩類的比較的實現,一個是基於netflix、另一個是基於alibaba。

spring cloud netflix

常見的服務組件

融合在每個微服務中、依賴其他組件併爲其提供服務。

  • Ribbon,客戶端負載均衡,特性有區域親和、重試機制。
  • Hystrix,客戶端容錯保護,特性有服務降級、服務熔斷、請求緩存、請求合併、依賴隔離。
  • Feign,聲明式服務調用,本質上就是Ribbon+Hystrix。
  • Stream,消息驅動,有Sink、Source、Processor三種通道,特性有訂閱發佈、消費組、消息分區。
  • Bus,消息總線,配合Config倉庫修改的一種Stream實現按。
  • Sleuth,分佈式服務追蹤,需要搞清楚TraceID和SpanID以及抽樣,如何與ELK整合。

獨自啓動不需要依賴其他組件,單槍匹馬都能幹。

  • Eureka,服務註冊中心,特性有失效剔除、服務保護。
  • Dashboard,Hystrix儀表盤,監控集羣模式和單點模式,其中集羣模式需要收集器Turbine配合。
  • Zuul,API服務網關,功能有路由分發和過濾。
  • Config,分佈式配置中心,支持本地倉庫、SVN、Git、Jar包內配置等模式。

各個組件的職責

每個組件都不是平白無故的產生的,是爲了解決某一特定的問題而存在。

  • Eureka和Ribbon,是最基礎的組件,一個註冊服務,一個消費服務。
  • Hystrix爲了優化Ribbon、防止整個微服務架構因爲某個服務節點的問題導致崩潰,是個保險絲的作用。
  • Dashboard給Hystrix統計和展示用的,而是監控服務節點的整體壓力和監控情況。
  • Turbine是集羣收集器,服務於Dashboard的。
  • Feign是方便我們程序員寫更優美的代碼的。
  • Zuul是加在整個微服務最前沿的防火牆和代理器,隱藏微服務節點IP端口信息,加強安全保護的。
  • Config是爲了解決所有微服務各自維護各自的配置,設置一個統一的配置中心,方便修改配置的。
  • Bus是因爲config修改完配置後各個節點都要refresh才能生效勢在太麻煩,所以交給bus來通知服務節點刷新配置的。
  • Stream是爲了簡化研發人員對MQ使用的複雜度,弱化MQ的差異性,達到程序和MQ松耦合。
  • Sleuth是因爲單次請求在微服務節點中跳轉無法追溯,解決任務鏈日誌追蹤問題的。

spring cloud alibaba

alibaba的spring coud生態中,提供了微服務開發中必須要用到的組件,就像Spring Cloud一樣,通過這些組件以及簡化的變成模型使得開發者對於微服務架構的開發變得更簡單。

目前Spring Cloud Alibaba這個生態中,已經有相對成熟的體系

  • Dubbo,用於實現高性能Java RPC通信
  • Nacos,服務註冊發現、配置管理、服務管理
  • Sentinel,流量控制、熔斷降級、系統負載保護
  • RocketMQ,分佈式消息系統,提供低延時的、高可靠的消息發佈與訂閱服務
  • Seata,高性能微服務分佈式事務解決方案
  • 【商業】Alibaba Cloud OSS阿里雲對象存儲服務(Object Storage Service,簡稱OSS),是阿里雲提供的海量、安全、低成本、高可靠的雲存儲服務。你可以在任何應用、任何時間、任何地點存儲和訪問任意類型的數據。
  • 【商業】Alibaba Cloud SchedulerX 阿里中間件團隊開發的一款分佈式任務調度產品,支持週期性的任務與固定時間點觸發任務。
  • Alibaba Cloud SMS覆蓋全球的短信服務,友好、高效、智能的互聯化通信能力,幫助企業迅速搭建客戶觸達通道。

項目組成部分

項目由兩部分組成,一部分是開源組件,另一部分是雲產品。

開源組件,他的前綴是:spring-cloud-alibaba,他有幾個特性。

  • 服務發現
  • 配置管理
  • 安全高可用性

雲產品項目前綴是:spring-cloud-alicloud,他有幾個特性。

  • 對象存儲服務(OSS)
  • 任務調度(SchedulerX)
  • 日誌服務(SLS)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章