在spring cloud構件微服務系統中,loadbalancer作為服務消費者的負載均衡器,有兩種使⽤⽅式,⼀種是和resttemplate相結合,另⼀種是和feign相結合,feign已經預設整合loadbalancer
這裡我們使用 裡面的02_payment 微服務進行改造
server:
port: $
我們可以在 paymentcontroler 中列印埠 如下:
@restcontroller
@slf4j
public class paymentcontroller ")
private string serverport;
public responseentitypayment(@pathvariable("id") integer id)
}
在 03_order 的控制器中新增以下內容
@bean
@loadbalanced
public resttemplate resttemplate()
在 03_order 的 ordercontroller 使用支付服務.此時 loadbalancer 生效,從多個服務中輪詢使用, **如下
public responseentitygetpaymentbyid(@pathvariable("id") integer id)
feign是⼀個宣告式的http客戶端元件,它旨在是編寫http客戶端變得更加容易。openfeign新增了對於spring mvc註解的⽀持,同時整合了spring cloud loadbalancer和spring loudcircuitbreaker,在使⽤feign時,提供負載均衡和熔斷降級的功能。
案例如下
在 03_order 中的 pom.xml 中新增以下內容
org.springframework.cloud
spring-cloud-starter-openfeign
在 03_order 的 啟動器上新增@enablediscoveryclient
註解 開啟 feign 功能
在 03_order 中 建立 fegin 客戶端 **如下
@feignclient(value = "cloud-payment-service")
public inte***ce paymentclient
在 03_order 中 ordercontroller 訪問支付服務
@autowired
private paymentclient paymentclient;
public responseentitygetpaymentbyfeign(@pathvariable("id") integer id)
這樣 openfeign就可以使用了 SpringCloud負載均衡
ribbon負載均衡應用 目標 配置啟動resttemplate,訪問http user service user 8獲取服務資料 需求 可以使用ribbon負載均衡演算法從服務位址列表中選擇乙個服務位址,訪問該位址獲取服務資料 實現步驟 1.啟動多個user service 9091,9092 2...
Spring Cloud負載均衡(二)
package com.example.springcloudlesson6 import org.springframework.cloud.client.discovery.enablediscoveryclient import org.springframework.cloud.client...
SpringCloud 負載均衡 Ribbon
spring cloud ribbon是基於netflix ribbon實現的一套客戶端 負載均衡工具 負載均衡介紹 nginx負載均衡和ribbon區別 nginx是集中式的負載均衡,ribbon是程序內的負載均衡 ribbon其實就是乙個軟負載均衡的客戶元件,它可以和其他所需請求的客戶端結合使用...