cloud各個模組的基本總結

2021-09-11 20:59:59 字數 2607 閱讀 2772

cloud的服務的最開始都是基於eureka的註冊中心的

生產者:

1.eureka server

就是註冊中心,服務的提供端,所有的消費者都是在這裡拿服務,可以根據名稱和埠名字在網頁上面視覺化。

2. eureka client

是具體服務的提供者,建立乙個服務提供者,具體配置在yml檔案裡面,例如名稱 埠號以及服務名稱

以上的兩者都是服務的提供方,又client提供服務然後由server(註冊中心)發布出去。

消費者:

1.ribbon:

spring cloud有兩種服務呼叫方式,一種是ribbon+resttemplate,另一種是feign。在這一篇文章首先講解下基於ribbon+rest,在通過url進行服務呼叫的時候因為會進行負載均衡,例如在不同埠的client進行生產的時候,即使名稱是一樣的,ribbon會根據url再對服務呼叫,因為名稱一樣所用呈現的內容會交替。

2.feign:

feign是乙個宣告式的偽http客戶端,它使得寫http客戶端變得更簡單。使用feign,只需要建立乙個介面並註解。它具有可插拔的註解特性,可使用feign 註解和jax-rs註解。feign支援可插拔的編碼器和解碼器。feign預設整合了ribbon,並和eureka結合,預設實現了負載均衡的效果。

路由閘道器:

zuul:

zuul的作用主要是進行路由以及過濾,通過自身yml檔案的編寫,然後將ribbon和feign暴露的介面重新進行路由,然後在進行url的重新設定。

zuul不僅可以路由還可以進行一些安全的驗證,在使用的時候要繼承zuulfilter類然後對以下方法進行呼叫,實現過濾的效果。

filtertype:返回乙個字串代表過濾器的型別,在zuul中定義了四種不同生命週期的過濾器型別,具體如下:

pre:路由之前

routing:路由之時

post: 路由之後

error:傳送錯誤呼叫

filterorder:過濾的順序

shouldfilter:這裡可以寫邏輯判斷,是否要過濾,本文true,永遠過濾。

run:過濾器的具體邏輯。可用很複雜,包括查sql,nosql去判斷該請求到底有沒有許可權訪問。

斷路器(hystrix)

在微服務架構中,根據業務來拆分成乙個個的服務,服務與服務之間可以相互呼叫(rpc),在spring cloud可以用resttemplate+ribbon和feign來呼叫。為了保證其高可用,單個服務通常會集群部署。由於網路原因或者自身的原因,服務並不能保證100%可用,如果單個服務出現問題,呼叫這個服務就會出現執行緒阻塞,此時若有大量的請求湧入,servlet容器的執行緒資源會被消耗完畢,導致服務癱瘓。服務與服務之間的依賴性,故障會傳播,會對整個微服務系統造成災難性的嚴重後果,這就是服務故障的「雪崩」效應。

為了解決這個問題,業界提出了斷路器模型。

較底層的服務如果出現故障,會導致連鎖故障。當對特定的服務的呼叫的不可用達到乙個閥值(hystric 是5秒20次) 斷路器將會被開啟。

然後如果乙個service的內容沒有呈現就會返回乙個固定值,從而避免上述的雪崩效應。

分布式配置中心

在分布式系統中,由於服務數量巨多,為了方便服務配置檔案統一管理,實時更新,所以需要分布式配置中心元件。在spring cloud中,有分布式配置中心元件spring cloud config ,它支援配置服務放在配置服務的記憶體中(即本地),也支援放在遠端git倉庫中。在spring cloud config 元件中,分兩個角色,一是config server,二是config client

config server:

是在分布式中對於註冊中心進行,進行統一配置的

在boot的啟動類上面加上@enableconfigserver註解開啟配置伺服器的功能,

在其pom.xml檔案加上eurekaclient的起步依賴spring-cloud-starter-eureka,可以進行多台的,高可用的分布式配置中心

config client:

可以進行yml檔案的書寫然後讀取server裡面的配置資訊。

spring cloud bus(訊息匯流排)

spring cloud bus 將分布式的節點用輕量的訊息**連線起來。它可以用於廣播配置檔案的更改或者服務之間的通訊,也可以用於監控。本文要講述的是用spring cloud bus實現通知微服務架構的配置檔案的更改。就例如剛剛上面面的分布式配置中心 將config server裡面的屬性進行修改之後,就可以通過這個bus來進行通知,可以通過rabbitmq來進行訊息的傳輸

spring cloud sleuth(鏈路追蹤)

spring cloud sleuth 主要功能就是在分布式系統中提供追蹤解決方案,並且相容支援了 zipkin,你只需要在pom檔案中引入相應的依賴即可。

高可用的服務註冊中心

在大量的服務面前乙個註冊中心有的時候負荷不了,所以需要將eureka的集群化,需要對註冊中心裡面的yml檔案進行修改,然後向乙個註冊中心註冊的服務就可以在別的註冊中心上面也可以看見,降低了這個註冊中心的負載度

Cloud的基本面了解

eureka 各個服務啟動時,eureka client都會將服務註冊到eureka server,並且eureka client還可以反過來從 eureka server拉取登錄檔,從而知道其他服務在 ribbon 服務間發起請求的時候,基於ribbon做負載均衡,從乙個服務的多台機器中選擇一台 ...

Ansible基本工作原理及各個模組外掛程式的作用

ansible最新出現的自動化運維工具,是乙個基於配置管理和應用的部署工具,基於python開發,集合了眾多運維工具puppet,chef,saltstack等的優點,ansible是給予模組工作,本身沒有批量部署能力。1自動化部署應用 2自動化管理配置 3自動化持續交付 4自動化 aws 雲伺服器...

ORACLE ERP各個模組的縮寫

財務系統模組 oracle總帳 管理 gl oracle 應付帳管理 ap oracle 固定資產管理 fa oracle 應收帳管理 ar oracle 現金管理 ce oracle 專案 會計 pa oracle 財務分析 ofa 分銷系統模組 oracle 庫存管理 inv oracle 採購...