一. 微服務遠端呼叫方式之ribbon
思考:如何實現遠端呼叫?
1.1 使用ribbon來實現遠端呼叫(實現步驟及**)
01.在啟動類配置檔案中新增resttemplate的bean
02.使用resttemplate.getobject()獲取遠端介面的資訊.
service業務層@bean
@loadbalanced
//加了此註解後就可以做負載均衡
public
resttemplate
resttemplate()
1.2 使用ribbon實現負載均衡@autowired
private
resttemplate resttemplate;
//product-server某服務名稱. 引數1:被呼叫服務介面位址 引數2:被呼叫某商品實體product.class(例:下單服務呼叫商品服務)
);
01.請求位址不寫具體ip和埠,而是使用遠端服務id
02.在resttemplate的bean上貼上@loadbalanced註解
1.3 負載均衡策略調整(配置)
二. spring中可以使用resttemplate來操作rest資源#注意:服務的名稱需要和**中的服務名稱一致,不然是修改不了負載均衡策略.
product-server:
ribbon:
nfloadbalancerruleclassname: com.netflix.loadbalancer.roundrobinrule
主要包含以下幾個方法:
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 遠端過程呼叫 是乙個計算機通訊協議。該協議允許執行於一台計算機的程式呼叫另一台計算機的子程式,而程式設計師無需額外地為這個互動作用...