SpringCloud 框架基本模組梳理(四)

2021-10-04 22:53:32 字數 2104 閱讀 7207

一、前言

本篇將同時講一下服務間的呼叫和訊息中介軟體的使用。我們會簡單的了解一下cloud框架體系中自帶的feign完成服務間通訊的例子(詳情請移步官網文件:openfeign),還會初步探索一下stream-rabbit的使用(官方文件:stream)。

二、feign

cloud自帶的服務間的通訊機制-feign,是cloud框架採用的最多的,以下是一些簡單的實現

依賴新增

org.springframework.cloud<

/groupid>

spring-cloud-starter-openfeign<

/artifactid>

<

/dependency>

定義feign介面,其中feignclient註解value指向的是eureka中的服務名。

@feignclient

(value =

"user"

)public

inte***ce

userfeignclient

在需要用到的服務啟動項上新增feign介面掃瞄

@enablefeignclients

(basepackages =

)

然後在需要用到的地方注入介面,如:

@restcontroller

public

class

testcontroller

("/test"

)public list

getuserlist()

}

如此就完成了一次簡單的服務呼叫的邏輯**,至於熔斷機制本次並不涉及,感興趣可以移步官方文件。

效果展示

左下方啟動的服務有:eureka註冊中心(8761),config配置中心(19000),user服務(8081),feign測試服務(8083)

右邊編碼區做了乙個測試介面

三、stream-rabbit

依賴新增

org.springframework.cloud<

/groupid>

spring-cloud-starter-stream-rabbit<

/artifactid>

<

/dependency>

定義客戶端

(此處樣例定義了兩個客戶端,取名如下,需並且通過@input和@output完成基礎方法實現)

public

inte***ce

streamclient

定義監聽

(針對如上定義的客戶端,需要針對性的定義兩個監聽,注意此處註解的使用,監聽的關鍵註解@streamlistener可以了解一下,通常此處會編寫訊息接收後的業務邏輯,因人而異,此處不做展開)

@component

@enablebinding

(streamclient.

class

)public

class

streamlisten

@streamlistener

(streamclient.stream_second)

public

void

secondstream

(object msg)

}

使用

在需要的地方注入客戶端,呼叫output()方法即可完成訊息的傳送,請配合rabbit進行相應的測試

效果展示略過。。。

四、小結

至此乙個基礎的cloud框架搭建已完成,但是如果要應用到生產中,任需對各元件進行二次配置,以適應不同的環境。

(概念性的知識請看官自行補充,官網文件比我專業多了)

SpringCloud 框架基本模組梳理 (二)

前言 本週更新的慢了一點,內容其實也不多。本篇接上篇來聊一下gateway的鑑權。這個詞比較晦澀,要是說成介面訪問許可權校驗沒準顯得直白一些。一 元件版本介紹 jwt 3.4 新晉成員 redis 二 核心步驟 關於jwt的使用可以參閱各大論壇大佬的帖子,這裡就不過多的展開,只講方法,不擴充套件 1...

SpringCloud 框架基本模組梳理(三)

前言 在gateway的官方文件中,分兩種過濾器 全域性過濾和路由過濾。本次採用全域性過濾來輔助完成鑑權 component public class filter implements globalfilter 暫時定義鑑權邏輯 有token就通過並重新整理,沒有就直接不允許 這裡借助了globa...

spring cloud 基礎框架模板

zuul閘道器集群 各模組微服務集群 nginx實現負載均衡 spring cloud config 統一配置中心 monitor微服務監控 獲得 響應如下 注意 授權許可權認證來自micro service skeleton auth的usercontroller 控制台輸入 userdetail...