欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringCloud之注冊中心之Nacos負載均衡詳解

 更新時間:2025年03月07日 10:55:14   作者:新綠MEHO  
Nacos提供多種負載均衡策略,包括權(quán)重、同機房、同地域、同環(huán)境等,服務(wù)下線和權(quán)重配置可以通過Nacos管理界面進行,同時,Nacos使用Raft算法選舉Leader節(jié)點,若IP地址改變可能會影響Leader選舉,配置同集群優(yōu)先訪問可以提高訪問速度,通過配置集群名稱和負載均衡策略

負載均衡

生產(chǎn)環(huán)境相對是?較惡劣的, 我們需要對服務(wù)的流量進?更加精細的控制. Nacos?持多種負載均衡策略, 包括權(quán)重, 同機房, 同地域, 同環(huán)境等.

服務(wù)下線

當某?個節(jié)點上接?的性能較差時, 我們可以第?時間對該節(jié)點進?下線.

操作步驟: 服務(wù)詳情 -> 下線

點擊下線后, 再次請求接?, 會發(fā)現(xiàn)該服務(wù)沒有請求進來了。再次單擊上線, 該節(jié)點會繼續(xù)收到請求。

下線之前

下線端口號為9091的服務(wù)進程之后:

權(quán)重配置

除了下線之外, 我們也可以配置這個節(jié)點的流量權(quán)重。

配置權(quán)重

操作步驟: 找到對應(yīng)節(jié)點 ->編輯 -> 在彈出的窗?修改權(quán)重值。

下面修改端口號為9091的服務(wù)進程的權(quán)重為0.1

觀察結(jié)果:

我們可以看到,三個服務(wù)實例接收到的請求次數(shù)幾乎一樣多,這是為什么呢?明明我們已經(jīng)配置了權(quán)重且比例稍微比較大,按理說應(yīng)該能看到現(xiàn)象。

是因為我們使用了LoadBalance,它本來就是負責負載均衡的,此時就不會使用Nacos的權(quán)重屬性進行負載均衡。

我們可以參考一下文章:

解決辦法

開啟Nacos負載均衡策略

application.properties

spring.cloud.loadbalancer.nacos.enabled=true

application.yml

spring:
  cloud:
    loadbalancer:
      nacos:
        enabled: true

觀察結(jié)果:

由此我們可以看到,我們設(shè)置的權(quán)重生效了。

常見問題

修改權(quán)重時, 可能會報錯:

報錯信息為:

caused: errCode: 500, errMsg: do metadata operation failed ;caused:com.alibaba.nacos.consistency.exception.ConsistencyException: The Raft Group[naming_instance_metadata] did not find the Leader node;caused: The Raft Group[naming_instance_metadata] did not find the Leader node;

原因: Nacos 采? raft 算法來計算 Leader, 并且會記錄前?次啟動的集群地址, 當服務(wù)器 IP 改變時會導致 raft 記錄的集群地址失效, 導致選 Leader 出現(xiàn)問題. (?絡(luò)環(huán)境發(fā)?變化時, IP地址也會發(fā)?變化)

解決辦法: 刪除 Nacos 根?錄下 data ?件夾下的 protocol ?件夾即可。

同集群優(yōu)先訪問

Nacos把同?個機房內(nèi)的實例, 劃分為?個集群. 所以同集群優(yōu)先訪問, 在?定程度上也可以理解為同房優(yōu)先訪問.微服務(wù)架構(gòu)中, ?個服務(wù)通常有多個實例共同提供服務(wù), 這些實例可以部署在不同的機器上, 這些機器可以分布在不同的機房, ?如product-service:

實例1: 分布在上海機房實例2: 分布在上海機房實例3: 分布在北京機房實例4: 分布在北京機房

微服務(wù)訪問時, 應(yīng)盡量訪問同機房的實例. 當本機房內(nèi)實例不可?時, 才訪問其他機房的實例。

?如order-service 在上海機房, product-service 在北京和上海機房都有實例, 那我們希望可以優(yōu)先訪問上海機房, 如果上海機房沒有實例, 或者實例不可?, 再訪問北京機房的實例. 通常情況下, 因為同?個機房的機器屬于?個局域?, 局域?訪問速度更快?點.

給實例配置集群名稱

1. 配置集群名稱

給order-service和端口號為9090的product-service配置 SH 集群名稱。

spring:
  cloud:
    nacos:
      discovery:
        server-addr: 110.41.51.65:10020
        cluster-name: SH #集群名稱: 上海集群

端口號為9091的product-service端口號為9092的product-service配置 BJ 集群名稱。

開啟Nacos負載均衡策略

同權(quán)重配置

spring:
  cloud:
    nacos:
      loadbalancer:
        nacos:
          enabled: true

多次訪問“http://127.0.0.1:8080/order/1”

觀察結(jié)果:

我們前面配置order-service集群為 SH,配置端口號為9090的product-service集群為 SH,配置端口號為9091的product-service集群為 BJ,配置端口號為9092的product-service集群為 BJ。

上面的結(jié)果可以看到,請求都發(fā)送到了端口號為9090的product-service集群,與預期符合。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • java使用des加密解密示例分享

    java使用des加密解密示例分享

    java使用des加密解密示例,適合java語言的所有平臺,與.net等平臺的加密解密兼容
    2014-02-02
  • 基于java線程池讀取單個SQL數(shù)據(jù)庫表

    基于java線程池讀取單個SQL數(shù)據(jù)庫表

    這篇文章主要為大家詳細介紹了基于java線程池讀取單個SQL數(shù)據(jù)庫表,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • Java接口操作(繼承父類并實現(xiàn)多個接口)

    Java接口操作(繼承父類并實現(xiàn)多個接口)

    這篇文章主要介紹了Java接口操作(繼承父類并實現(xiàn)多個接口),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • 基于Spring-cloud-gateway實現(xiàn)全局日志記錄的方法

    基于Spring-cloud-gateway實現(xiàn)全局日志記錄的方法

    最近項目在線上運行出現(xiàn)了一些難以復現(xiàn)的bug需要定位相應(yīng)api的日志,通過nginx提供的api請求日志難以實現(xiàn),于是在gateway通過全局過濾器記錄api請求日志,本文給大家介紹基于Spring-cloud-gateway實現(xiàn)全局日志記錄,感興趣的朋友一起看看吧
    2023-11-11
  • Spring中@Configuration和@Component注解的區(qū)別及原理

    Spring中@Configuration和@Component注解的區(qū)別及原理

    這篇文章主要介紹了Spring中@Configuration和@Component注解的區(qū)別及原理,從功能上來講,這些注解所負責的功能的確不相同,但是從本質(zhì)上來講,Spring內(nèi)部都將其作為配置注解進行處理,需要的朋友可以參考下
    2023-11-11
  • 使用Spring Cloud Feign遠程調(diào)用的方法示例

    使用Spring Cloud Feign遠程調(diào)用的方法示例

    這篇文章主要介紹了使用Spring Cloud Feign遠程調(diào)用的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-09-09
  • Java中時間戳和時間的轉(zhuǎn)換方法代碼

    Java中時間戳和時間的轉(zhuǎn)換方法代碼

    這篇文章主要介紹了Java中時間戳和時間的轉(zhuǎn)換的相關(guān)資料,Java8中時間戳與日期時間對象之間的轉(zhuǎn)換是編程中常見的操作,通過時間字符串獲取時間對象也是其中的一種方法,需要的朋友可以參考下
    2025-03-03
  • IDEA社區(qū)版下載安裝流程詳解(小白篇)

    IDEA社區(qū)版下載安裝流程詳解(小白篇)

    這篇文章主要介紹了IDEA社區(qū)版下載安裝流程詳解(小白篇),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • SpringBoot項目打包成war包并部署在tomcat上運行的操作步驟

    SpringBoot項目打包成war包并部署在tomcat上運行的操作步驟

    我們開發(fā) SpringBoot 項目有時我們會需要打包成 war 包,放入外置的 Tomcat 中進行運行,或者使用工具idea直接啟動,便于開發(fā)調(diào)試,本文給大家分享SpringBoot項目打包成war包并部署在tomcat上運行的操作步驟,感興趣的朋友一起看看吧
    2024-03-03
  • Springboot+Shiro+Mybatis+mysql實現(xiàn)權(quán)限安全認證的示例代碼

    Springboot+Shiro+Mybatis+mysql實現(xiàn)權(quán)限安全認證的示例代碼

    Shiro是Apache?的一個強大且易用的Java安全框架,執(zhí)行身份驗證、授權(quán)、密碼學和會話管理,Shiro?主要分為兩個部分就是認證和授權(quán)兩部分,這篇文章主要介紹了Springboot+Shiro+Mybatis+mysql實現(xiàn)權(quán)限安全認證的示例代碼,需要的朋友可以參考下
    2024-07-07

最新評論