Spring Cloud 負載均衡

2022-09-14 10:57:07 字數 1478 閱讀 7830

在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其實就是乙個軟負載均衡的客戶元件,它可以和其他所需請求的客戶端結合使用...