標籤:能力 請求 用戶端 子項目 zipkin git stream 中間 基礎知識
一、什麼是微服務架構
微服務是系統架構上的一種設計風格,它的主旨是將一個原本獨立的系統拆分成多個小型服務,這些小型服務都在各自獨立的進程中運行,服務之間通過基於HTTP的RESTful API進行通訊協作。被拆分成的每一個小型服務都圍繞著系統中的某一項或一些耦合度較高的業務功能進行構建,並且每個服務都維護著自身的資料存放區、業務開發、自動化測試案例以及獨立部署機制。
二、服務調用方式
在為服務架構中,通常會使用一下兩種服務調用方式:
1)、使用HTTP的RESTful API或輕量級的訊息發送協議,實現資訊傳遞與服務調用的觸發。
2)、通過在輕量級訊息匯流排上傳遞訊息,類似RabbitMQ等一些提供可靠非同步交換的中介軟體。
三、Spring Cloud簡介
Spring Cloud是一個基於Spring Boot實現的微服務架構開發工具。它為微服務架構中涉及的組態管理、服務治理、斷路器、智能路由、微代理、控制匯流排、全域鎖、決策競選、分布式回話和叢集狀態管理等操作提供了一種簡單的開發方式。
Spring Cloud包含了多個子項目,如下所述。
1)Spring Cloud Config:組態管理工具,支援使用Git儲存配置內容,可以使用它實現應用配置的外部化儲存,並支援用戶端配置資訊重新整理、加密/解密配置內容等。
2)Spring Cloud Netflix:核心組件,對對個Netflix OSS開源套件進行整合。
- Eureka:服務治理組件,包含服務註冊中心、服務註冊與發現機制的實現。
- Hystrix:容錯管理組件,實現斷路器模式,協助服務依賴中出現的延遲和為故障提供強大的容錯能力。
- Ribbon:用戶端負載平衡的服務調用組件。
- Feign:基於Ribbon和Hystrix的聲明式服務調用組件。
- Zuul:網關組件,提供智能路由、訪問過濾等功能。
- Archaius:外部化配置組件。
3)Spring Cloud Bus:事件、訊息匯流排,用於傳播叢集中的狀態變化或事件,以觸發後續的處理,比如用來動態重新整理配置等。
4)Spring Cloud Cluster:針對ZooKeeper、Redis、Hazelcast、Consul的選舉演算法和通用狀態模式的實現。
5)Spring Cloud Cloudfoundry:與Pivotal Cloudfoundry的整合支援。
6)Spring Cloud Consul:服務發現與組態管理工具。
7)Spring Cloud Stream:通過Redis、Rabbit或者Kafka實現的消費微服務,可以通過簡單的聲明式模型來發送和接收訊息。
8)Spring Cloud AWS:用於簡化整合Amazon Web Service的組件。
9)Spring Cloud Security:安全工具包,提供在Zuul代理中對OAuth2用戶端請求的中繼器。
10)Spring Cloud Sleuth:Spring Cloud應用的分布式跟蹤實現,可以完美整合Zipkin.
11)Spring Cloud Zookeeper:基於ZooKeeper的服務發現與組態管理組件。
12)Spring Cloud Starters:Spring Cloud的基礎組件,它是基於Spring Boot風格項目的基礎相依模組。
13)Spring Cloud CLI:用於在Groovy中快速建立Spring Cloud應用的Spring Boot CLI外掛程式。
......
Spring Cloud微服務之基礎知識