spring cloud 簡單介紹

u013378306發表於2017-07-01


文件地址 https://www.springcloud.cc/spring-cloud-dalston.html

具體流程

(1)建立springboot 應用

(2)建立spring cloud 分散式配置(如平時的properties,xml配置檔案,當存在開發,生產等多個版本時,保持配置檔案一致性)應用可以使用git做, 其他應用通過這個應用讀去配置檔案

(3)建立eureka伺服器,用於其他服務的註冊,每個服務都有一個唯一的名字

(4)建立服務端應用,編寫介面

(5)建立客戶端應用,通過服務應用的名字加介面名字 呼叫服務程式介面。


spring  cloud是一種restful 協議的實現

REST可以看著是http協議的一種直接應用,預設基於json作為傳輸格式,使用簡單,學習成本低效率高,~~但是安全性較低~~,而SOAP可以看著是一個重量級的協議,基於xmlSOAP在安全方面是通過使用XML-SecurityXML-Signature兩個規範組成了WS-Security來實現安全控制的,當前已經得到了各個廠商的支援。

rpc 面向方法如dubbo,REST面向資源,資源即每個請求的url。

以下是來自官方的一篇簡單介紹:

spring Cloud provides tools for developers to quickly build some of the common patterns in distributed systems (e.g. configuration management, service discovery, circuit breakers, intelligent routing, micro-proxy, control bus, one-time tokens, global locks, leadership election, distributed sessions, cluster state). Coordination of distributed systems leads to boiler plate patterns, and using Spring Cloud developers can quickly stand up services and applications that implement those patterns. They will work well in any distributed environment, including the developer’s own laptop, bare metal data centres, and managed platforms such as Cloud Foundry.

Spring Cloud為開發人員提供了快速構建分散式系統中的一些通用模式(例如配置管理,服務發現,斷路器,智慧路由,微代理,控制匯流排,一次性令牌,全域性鎖,領導選舉,分散式 會話,群集狀態)。 分散式系統的協調導致了鍋爐板模式,並且使用Spring Cloud開發人員可以快速地站起來實現這些模式的服務和應用程式。 它們可以在任何分散式環境中正常工作,包括開發人員自己的膝上型電腦,裸機資料中心和受管平臺,如Cloud Foundry。


中文文件:https://springcloud.cc/

官方文件:http://projects.spring.io/spring-cloud/#quick-start

截止發表這內容時,springcloud官方最新版本是Camden.SR2,springcloud的版本名稱很奇怪,它是按照倫敦地鐵站的名稱由a-z排序進行命名。

高深的內容我也不說太多,這裡我只說下springcloud中常用的元件 
- 服務發現——Netflix Eureka 
- 客服端負載均衡——Netflix Ribbon 
- 斷路器——Netflix Hystrix 
- 服務閘道器——Netflix Zuul 
- 分散式配置——Spring Cloud Config

Eureka

image

一個RESTful服務,用來定位執行在AWS地區(Region)中的中間層服務。由兩個元件組成:Eureka伺服器和Eureka客戶端。 Eureka伺服器用作服務註冊伺服器。Eureka客戶端是一個Java客戶端,用來簡化與伺服器的互動、作為輪詢負載均衡器,並提供服務的故障切換支 持。Netflix在其生產環境中使用的是另外的客戶端,它提供基於流量、資源利用率以及出錯狀態的加權負載均衡。

Ribbon

Ribbon,主要提供客戶側的軟體負載均衡演算法

image

Ribbon客戶端元件提供一系列完善的配置選項,比如連線超時、重試、重試演算法等。Ribbon內建可插拔、可定製的負載均衡元件。下面是用到的一些負載均衡策略: 
- 簡單輪詢負載均衡 
- 加權響應時間負載均衡 
- 區域感知輪詢負載均衡 
- 隨機負載均衡

Ribbon中還包括以下功能: 
- 易於與服務發現元件(比如Netflix的Eureka)整合 
- 使用Archaius完成執行時配置 
- 使用JMX暴露運維指標,使用Servo釋出 
- 多種可插拔的序列化選擇 
- 非同步和批處理操作(即將推出) 
- 自動SLA框架(即將推出) 
- 系統管理/指標控制檯(即將推出)

Hystrix

image

斷路器可以防止一個應用程式多次試圖執行一個操作,即很可能失敗,允許它繼續而不等待故障恢復或者浪費 CPU 週期,而它確定該故障是持久的。斷路器模式也使應用程式能夠檢測故障是否已經解決。如果問題似乎已經得到糾正​​,應用程式可以嘗試呼叫操作。

image

斷路器增加了穩定性和靈活性,以一個系統,提供穩定性,而系統從故障中恢復,並儘量減少此故障的對效能的影響。它可以幫助快速地拒絕對一個操作,即 很可能失敗,而不是等待操作超時(或者不返回)的請求,以保持系統的響應時間。如果斷路器提高每次改變狀態的時間的事件,該資訊可以被用來監測由斷路器保 護系統的部件的健康狀況,或以提醒管理員當斷路器跳閘,以在開啟狀態。

image

流程圖

image

Zuul

image

類似nginx,反向代理的功能,不過netflix自己增加了一些配合其他元件的特性。

Spring Cloud Config

image

這裡主要列舉了一些常見的元件,更多的等待發掘。


其他教程地址 http://www.cnblogs.com/skyblog/p/5127690.html




相關文章