微服務遠端呼叫方式之Ribbon

2021-10-25 22:20:22 字數 1522 閱讀 2187

一. 微服務遠端呼叫方式之ribbon

思考:如何實現遠端呼叫?

1.1 使用ribbon來實現遠端呼叫(實現步驟及**)

01.在啟動類配置檔案中新增resttemplate的bean

02.使用resttemplate.getobject()獲取遠端介面的資訊.

@bean

@loadbalanced

//加了此註解後就可以做負載均衡

public

resttemplate

resttemplate()

service業務層

@autowired

private

resttemplate resttemplate;

//product-server某服務名稱. 引數1:被呼叫服務介面位址 引數2:被呼叫某商品實體product.class(例:下單服務呼叫商品服務)

);

1.2 使用ribbon實現負載均衡

01.請求位址不寫具體ip和埠,而是使用遠端服務id

02.在resttemplate的bean上貼上@loadbalanced註解

1.3 負載均衡策略調整(配置)

#注意:服務的名稱需要和**中的服務名稱一致,不然是修改不了負載均衡策略.

product-server:

ribbon:

nfloadbalancerruleclassname: com.netflix.loadbalancer.roundrobinrule

二. spring中可以使用resttemplate來操作rest資源

主要包含以下幾個方法:

resttemplate有點類似於乙個webservice客戶端請求的模版,可以呼叫http請求的webservice,並將結果轉換成相應的物件型別。

getforentity(),getforobject(),傳送http get請求,getforentity()返回的是responseentity物件,裡面包含響應實體物件及響應狀態碼,而getforobject()則直接返回響應實體物件;

postforentity(),postforobject(),傳送http post請求,postforentity()返回的是responseentity物件,裡面包含響應實體物件及響應狀態碼,而postforobject()則直接返回響應實體物件;

put(),傳送http put請求;

delete(),傳送http delete請求;

exchange(),可以傳送get、post、put和delete中的任意一種請求,同時還可以自定義請求頭。

SpringCloud微服務之 Ribbon

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

微服務 2 遠端呼叫方式

無論是微服務還是soa,都面臨著服務間的遠端呼叫。那麼服務間的遠端呼叫方式有哪些呢?常見的遠端呼叫方式有以下幾種 rpc,即 remote procedure call 遠端過程呼叫 是乙個計算機通訊協議。該協議允許執行於一台計算機的程式 呼叫另一台計算機的子程式,而程式設計師無需額外地為這個互動作...

微服務採用何種遠端呼叫方式?

無論是微服務還是soa,都面臨著服務間的遠端呼叫。那麼服務間的遠端呼叫方式有哪些呢?常見的遠端呼叫方式有以下幾種 rpc,即 remote procedure call 遠端過程呼叫 是乙個計算機通訊協議。該協議允許執行於一台計算機的程式呼叫另一台計算機的子程式,而程式設計師無需額外地為這個互動作用...