nacos配置實(shí)例權(quán)重不生效問題
踩坑記錄
SpringCloudAlibaba + nacos + openfeign搭建的微服務(wù)測試環(huán)境,發(fā)現(xiàn)在nacos服務(wù)詳情界面配置權(quán)重后,用postman調(diào)用本地服務(wù),還是輪詢調(diào)用,并沒有按設(shè)置的權(quán)重來,把權(quán)重設(shè)置0又是生效的,設(shè)置為0的實(shí)例是不會被調(diào)用的。
網(wǎng)上查了各種資料都五花八門,很多都是簡單提下配置,找了好久沒一個(gè)好用的,大部分都是說要自定義負(fù)載均衡策略,不確定是不是版本問題
SpringCloud Naocs 提供的負(fù)載均衡策略
SpringCloud新版本中負(fù)載均衡器由原來的ribbon替換為Spring自己開發(fā)的Loadbalancer,默認(rèn)只提供了2中負(fù)載均衡策略:RandomLoadBalancer 和 RoundRobinLoadBalancer。
SpringCloud Alibaba Nacos 2021.1版本提供了基于Nacos注冊中心的輪詢策略 NacosLoadBalancer 是基于權(quán)重的策略。
NacosLoadBalancer的權(quán)重策略默認(rèn)是關(guān)閉的,如果要使用基于權(quán)重的負(fù)載策略要手動開啟。
如果未給服務(wù)器設(shè)置權(quán)重,建議不要使用基于權(quán)重的策略,因?yàn)槿绻⒎?wù)的權(quán)重都相同,相當(dāng)于隨機(jī)
修改配置文件配置
#開啟nacos的負(fù)載均衡策略 spring.cloud.loadbalancer.nacos.enabled=true
歸根到底就是一個(gè)開關(guān),但是網(wǎng)上答案五花八門找到一個(gè)回答到點(diǎn)子上的不容易,開啟之后,調(diào)用服務(wù)的效果已經(jīng)不是輪詢了,而是按分配的權(quán)重來
POM依賴
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.example</groupId> <artifactId>spring-cloud-alibaba-demo</artifactId> <packaging>pom</packaging> <version>1.0-SNAPSHOT</version> <modules> <module>order-service</module> <module>warehouse-service</module> <module>shop-service</module> </modules> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.6.13</version> <relativePath/> </parent> <properties> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <java.version>1.8</java.version> <spring.cloud.alibaba.version>2021.0.5.0</spring.cloud.alibaba.version> <spring.cloud.version>2021.0.5</spring.cloud.version> </properties> <dependencies> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-loadbalancer</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>2.0.25</version> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring.cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-dependencies</artifactId> <version>${spring.cloud.alibaba.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> </project>
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java學(xué)習(xí)之反射機(jī)制及應(yīng)用場景介紹
本篇文章主要介紹了Java反射機(jī)制及應(yīng)用場景,反射機(jī)制是很多Java框架的基石。非常具有實(shí)用價(jià)值,需要的朋友可以參考下。2016-11-11java easyPOI實(shí)現(xiàn)導(dǎo)出一對多數(shù)據(jù)
這篇文章主要為大家詳細(xì)介紹了java如何利用easyPOI實(shí)現(xiàn)導(dǎo)出一對多數(shù)據(jù),并且可以設(shè)置邊框、字體和字體大小,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-12-12Java實(shí)現(xiàn)替換集合中的元素的方法詳解
這篇文章主要為大家詳細(xì)介紹了Java中實(shí)現(xiàn)替換集合中的元素的常見方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-02-02springcloud使用profile實(shí)現(xiàn)多環(huán)境配置方式
這篇文章主要介紹了springcloud使用profile實(shí)現(xiàn)多環(huán)境配置方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03Java常問面試內(nèi)容--數(shù)組、聲明、初始化、冒泡、多維數(shù)組、稀疏數(shù)組
這篇文章主要介紹了Java多線程面試題(面試官常問),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-07-07Java使用BigDecimal解決小數(shù)計(jì)算問題
Java中的BigDecimal是一個(gè)內(nèi)置類,用于精確表示任意大小的十進(jìn)制數(shù),它提供了一種處理浮點(diǎn)運(yùn)算精度問題的方法,特別適合金融、貨幣交易等需要高精度計(jì)算的場景,本文給大家介紹了java中如何使用BigDecimal解決小數(shù)計(jì)算問題,需要的朋友可以參考下2024-08-08SpringBoot單元測試之?dāng)?shù)據(jù)隔離詳解
我們在寫單元測試時(shí),有一個(gè)比較重要的要求是可以重復(fù)運(yùn)行, 那么這樣就會有一個(gè)比較麻煩的問題:數(shù)據(jù)污染,所以本文為大家整理了兩個(gè)數(shù)據(jù)隔離的方式,希望對大家有所幫助2023-08-08Java中的Map接口實(shí)現(xiàn)類HashMap和LinkedHashMap詳解
這篇文章主要介紹了Java中的Map接口實(shí)現(xiàn)類HashMap和LinkedHashMap詳解,我們常會看到這樣的一種集合,IP地址與主機(jī)名,等,這種一一對應(yīng)的關(guān)系,就叫做映射,Java提供了專門的集合類用來存放這種對象關(guān)系的對象,需要的朋友可以參考下2024-01-01