SpringCloud 負載均衡Ribbon

2021-10-09 05:17:21 字數 2413 閱讀 1432

spring cloud ribbon 是基於 netflix ribbon 實現的一套客戶端負載均衡的工具。簡單的說,ribbonn是netflix的開源專案,主要功能 是提供客戶端的軟體負載均衡演算法和服務呼叫。ribbon客戶端元件提供一系列完善的配置項,如連線超時,重試等。就是在配置檔案中列出 loa balancer後面所有機器,ribbon會自動幫助你基於某種規則 (如簡單輪詢,隨機連線等)去連線這些機器。我們很容易使用ribbon實現自定義的負載均衡演算法。

1、負載均衡:

將使用者的請求平攤的分配到多個服務上,從而達到ha(高可用),常見的負載均衡有 nginx,lvs,硬體 f5等。

2、ribbon 本地負載均衡客戶端 vs nginx 服務端負載均衡

resttemplate是spring提供的乙個訪問http服務的客戶端類。通過resttemplate可以實現微服務之間的呼叫。

示例**

@restcontroller

@slf4j

public

class

ordercontroller")

public commonresult

getpaymentbyid

(@pathvariable

("id"

) long id)

}

getforobject 返回json

getforentity 返回responseenity物件,包括響應頭,響應體等資訊。

postforobject,與 get 方法一樣,不同的是傳進去的引數是物件

postforentity

get 請求方法

post請求方法

由於spring-cloud-starter-netflix-eureka-client 已經引入了 ribbon-balance的依賴,所以不需要新增依賴。

#表示是否將自己註冊進eurekaserver預設為true

/eureka #集群版

@enableeurekaclient

public

class

ordermain80

}

@configuration

public

class

}

(value=

"/consumer/payment/get/"

)public commonresult

getpaymentbyid

(@pathvariable

("id"

) long id)

由於預設為輪詢策略,所以每次重新整理請求為8001,8002輪詢

這個自定義配置類不能放在 @componentscan 所掃瞄的當前包下以及子包下,否則自定義的配置類就會被所有的 ribbon 客戶端所共享,達不到特殊化定製的目的了。

}多次重新整理,8001,8002隨機出現 ,負載規則就更改為隨機了。

SpringCloud負載均衡

ribbon負載均衡應用 目標 配置啟動resttemplate,訪問http user service user 8獲取服務資料 需求 可以使用ribbon負載均衡演算法從服務位址列表中選擇乙個服務位址,訪問該位址獲取服務資料 實現步驟 1.啟動多個user service 9091,9092 2...

Spring Cloud 負載均衡

在spring cloud構件微服務系統中,loadbalancer作為服務消費者的負載均衡器,有兩種使 式,種是和resttemplate相結合,另 種是和feign相結合,feign已經預設整合loadbalancer 這裡我們使用 裡面的02 payment 微服務進行改造 server po...

Spring Cloud負載均衡(二)

package com.example.springcloudlesson6 import org.springframework.cloud.client.discovery.enablediscoveryclient import org.springframework.cloud.client...