客戶端負載均衡 Ribbon

2021-10-01 19:52:32 字數 1728 閱讀 3043

​ 1.集群user-server

​ c-v 改東西

user-server-pom.xml

>

user-server-3001artifactid

>

>

user-server-3001name

>

parent-pm.xml

>

user-server-3001module

>

eureka

:client

:serviceurl

:defaultzone

: http://peer1:1000/eureka/,http://peer2:1001/eureka/ #連線伺服器端

instance

:instance-id

: user-server:

3001

#當前客戶端服務的id

prefer-ip-address

:true

# 使用ip進行註冊

server

:port

:3001

#埠號 埠號不同

spring::

name

: user-server #當前應用名稱 應用名稱相同

​ 2.ribbon實現

​ 匯入依賴

>

>

org.springframework.cloudgroupid

>

>

spring-cloud-starter-netflix-ribbonartifactid

>

dependency

>

resttemplate上打@loadbalanced:讓resttemplate有負載均衡的能力
@bean

@loadbalanced

public resttemplate resttemplate()

​ 3.ribbon底層原始碼分析

​ 1.@loadbalanced賦予resttemplate有負載均衡的能力

​ 2.resttemplate底層通過ribbonloadbalancerclient客戶端工具類實現

​ 3.ribbonloadbalancerclient.execute的操作

​ 1.通過服務名獲取乙個loadbalancer

​ 2.通過loadbalancer.chooseserver選中服務(會載入所有埠)

​ 3.在loadbalancer.chooseserver方法中會呼叫irule.choose方法進行服務的選擇

​ 4.irule.choose方法按照某種演算法選擇服務並返回

​ 5.然後使用http呼叫服務

​ 4.配置負載均衡演算法

配置bean

@bean

public irule randomrule()

ribbon客戶端負載均衡

ribbon會儲存註冊中心應用,然後定時去更新,而不是每次都要先訪問註冊中心,再訪問應用 依賴org.springframework.cloud spring cloud starter netflix ribbon 複製 配置resttemplate bean是乙個方法級別上的註解,主要用在 co...

ribbon客戶端負載均衡

參考 ribbon是netflix發布的負載均衡器,它有助於控制http和tcp的客戶端的行為。為ribbon配置服務提供者位址後,ribbon就可基於某種負載均衡演算法,自動地幫助服務消費者去請求。ribbon預設為我們提供了很多負載均衡演算法,例如輪詢 隨機等。當然,我們也可為ribbon實現自...

客戶端負載均衡 Ribbon 基礎篇

2.什麼是 ribbon?3.resttemplate 簡介 4.原生 ribbon 示例 5.resttemplate ribbon 示例 6.參考 本章主要介紹 ribbon resttemplate 的一些相關的基本概念和用法,以及 resttemplate 和 ribbon 如何結合使用,對...