服務提供與呼叫

2021-08-01 05:37:01 字數 3231 閱讀 9112

我們假設服務提供者有乙個hello方法,可以根據傳入的引數,提供輸出「hello ***,this is first messge」的服務

建立乙個springboot專案,pom.xml中新增如下配置:

啟動類中新增@enablediscoveryclient註解

@enablediscoveryclient

public

class}

提供hello服務

@restcontroller

public

class

hellocontroller

}

新增@enablediscoveryclient註解後,專案就具有了服務註冊的功能。啟動工程後,就可以在註冊中心的頁面看到spring-cloud-producer服務。

到此服務提供者配置就完成了。

和服務提供者一致

啟動類新增@enablediscoveryclient@enablefeignclients註解。

@enablediscoveryclient

@enablefeignclients

public

class

}

feign是乙個宣告式web service客戶端。使用feign能讓編寫web service客戶端更加簡單, 它的使用方法是定義乙個介面,然後在上面新增註解,同時也支援jax-rs標準的註解。feign也支援可拔插式的編碼器和解碼器。spring cloud對feign進行了封裝,使其支援了spring mvc標準註解和httpmessageconverters。feign可以與eureka和ribbon組合使用以支援負載均衡。

@feignclient

(name= "spring-cloud-producer"

)public

inte***ce

helloremote

此類中的方法和遠端服務中contoller中的方法名和引數需保持一致。

將helloremote注入到controller層,像普通方法一樣去呼叫即可。

@restcontroller

public

class

consumercontroller")

public

string

index

(@pathvariable

("name"

) string name)

}

到此,最簡單的乙個服務註冊與呼叫的例子就完成了。

依次啟動spring-cloud-eureka、spring-cloud-producer、spring-cloud-consumer三個專案

先輸入:http://localhost:9000/hello?name=neo檢查spring-cloud-producer服務是否正常

返回:hello neo,this is first messge

說明spring-cloud-producer正常啟動,提供的服務也正常。

瀏覽器中輸入:http://localhost:9001/hello/neo

返回:hello neo,this is first messge

說明客戶端已經成功的通過feign呼叫了遠端服務hello,並且將結果返回到了瀏覽器。

以上面spring-cloud-producer為例子修改,將其中的controller改動如下:

@restcontroller

public

class

hellocontroller

}

在配置檔案中改動埠:

打包啟動後,在eureka就會發現兩個服務提供者,如下圖:

然後在瀏覽器再次輸入:http://localhost:9001/hello/neo進行測試:

第一次返回結果:hello neo,this is first messge

第二次返回結果:hello neo,this is producer 2 send first messge

不斷的進行測試下去會發現兩種結果交替出現,說明兩個服務中心自動提供了服務均衡負載的功能。如果我們將服務提供者的數量在提高為n個,測試結果一樣,請求會自動輪詢到每個服務端來處理。

服務提供與呼叫

我們假設服務提供者有乙個hello方法,可以根據傳入的引數,提供輸出 hello this is first messge 的服務 建立乙個springboot專案,pom.xml中新增如下配置 org.springframework.cloud spring cloud starter eurek...

服務提供與呼叫

我們假設服務提供者有乙個hello方法,可以根據傳入的引數,提供輸出 hello this is first messge 的服務 建立乙個springboot專案,pom.xml中新增如下配置 org.springframework.cloud spring cloud starter eurek...

springcloud 三 服務提供與呼叫

我們假設服務提供者有乙個hello方法,可以根據傳入的引數,提供輸出 hello this is first messge 的服務 建立乙個springboot專案,pom.xml中新增如下配置 啟動類中新增 enablediscoveryclient註解 enablediscoveryclient...