微服務之springcloud

2021-10-12 03:50:08 字數 1710 閱讀 8510

分布式架構的概念:多個子模組相互協作才能完成業務流程,系統之間需要進行通訊。

優點:1、把模組拆分,使用介面通訊,降低模組之間的耦合度。

2、把專案拆分成若干個子專案,不同團隊負責不同子專案。

3、增加功能時只需要再增加子專案,呼叫其他系統的介面

4、可以靈活進行分布式部署

缺點:1、系統之間互動需要使用遠端通訊,介面開放量增加

2、各個模組間一些通用業務邏輯無法共用

集群概念:同乙個工程部署到多台伺服器上

soa:service oriented architecture面向服務的架構。也就是把工程拆分成服務層、表現層兩個工程。服務層中包含業務邏輯,只需要對外提供服務即可。表現層只需要處理和頁面的互動,業務邏輯都是呼叫服務層的服務來實現。

springcloud整合了許多流行技術:配置管理,服務發現,智慧型路由,負載均衡,熔斷器,控制匯流排,集群狀態等等功能。

 eureka:註冊中心

 zuul:服務閘道器

 ribbon:負載均衡

 feign:服務呼叫

 hystix:熔斷器—>錯誤的回退機制

 訪問客戶端

feign client 屬於springcloud的技術,本身具備負載均衡

resttemplate 本身不屬於springcloud的技術+ribbon

…springcloud架構快速入門

eureka:就是服務註冊中心(可以是乙個集群),對外暴露自己的位址

提供者:啟動後向eureka註冊自己資訊(位址,提供什麼服務)

消費者:向eureka訂閱服務,eureka會將對應服務的所有提供者位址列表傳送給消費者,並且定期更新

心跳(續約):提供者定期通過http方式向eureka重新整理自己的狀態

springcloud依賴於springcloud,且版本需相互對應。

1、先建立eureka註冊中心

啟動類註解+@enableeurekaserver

2、服務提供者

啟動類註解+@enableeurekaclient

3、服務消費者

啟動類註解+@enableeurekaclient

resttemplate(匯入raboon元件)

1、實現跨專案呼叫

2、負載均衡

依賴注入的前提必須要有ioc

所以resttemplate需要用註解來實現建立。

@pathvariable 瀏覽器注入數值(接收請求路徑中佔位符的值)

springcloud-starter-feign

feign是宣告式的web service客戶端,它讓微服務之間的呼叫變得更簡單了,類似controller呼叫service。spring cloud整合了ribbon和eureka,可在使用feign時提供負載均衡的http客戶端。

zuul閘道器

它也是乙個eureka的客戶端且可以設定多個訪問路徑

@enablezuulproxy //負載均衡 反向**

針對微服務:

restful一般規定用於springcloud內部,避免在web端使用。

一般web端採用resttemplate

SpringCloud微服務之 Ribbon

ribbon簡介 需要解決的問題 如何在配置eureka client註冊中心時不去硬編碼eureka server的位址?在微服務不同模組間進行通訊時,如何不去硬編碼服務提供者的位址?當部署多個相同微服務時,如何實現請求時的負載均衡?實現負載均衡方式1 通過伺服器端實現負載均衡 nginx rib...

SpringCloud微服務之OpenFeign

在之前進行微服務的呼叫用的是ribbon resttemplate,就像這樣 這樣呼叫微服務是更偏向面向restfull風格,但偏離了面向介面程式設計 使用openfeign,openfeign底層還是用的ribbon。新增openfeign依賴 org.springframework.cloudg...

Spring Cloud 微服務之Feign(七)

新增服務 測試使用 多次訪問 http localhost 8080 get 1可以看到feign預設採用輪詢演算法依次在每乙個服務方進行訪問 利用feign我們只需要為feign客戶端定義的業務介面新增乙個服務降級處理的實現類即可 feign提供了日誌列印功能,我們可以通過配置來調整日誌級別,從而...