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

Nacos負(fù)載均衡策略總結(jié)

 更新時(shí)間:2023年11月17日 11:45:31   作者:Java中文社群  
Nacos 作為目前主流的微服務(wù)中間件,包含了兩個(gè)頂級(jí)的微服務(wù)功能:配置中心和注冊(cè)中心,本文給大家總結(jié)了幾種Nacos負(fù)載均衡策略,通過(guò)圖文結(jié)合介紹的非常詳細(xì),需要的朋友可以參考下

Nacos 作為目前主流的微服務(wù)中間件,包含了兩個(gè)頂級(jí)的微服務(wù)功能:配置中心和注冊(cè)中心。

1.配置中心掃盲

配置中心是一種集中化管理配置的服務(wù),通俗易懂的說(shuō)就是將本地配置文件“云端化”。 這樣做的好處有以下幾個(gè):

  • 集中管理配置信息:配置中心將不同服務(wù)的配置信息集中放在一起進(jìn)行管理,實(shí)現(xiàn)了配置信息的集中存儲(chǔ)。
  • 動(dòng)態(tài)更新配置:配置中心中的配置信息可以通過(guò)操作界面或 API 進(jìn)行動(dòng)態(tài)更新,無(wú)需重啟服務(wù)就可以應(yīng)用最新的配置信息。
  • 配置信息共享:將配置集中在配置中心中,不同的服務(wù)實(shí)例可以共享同一套配置信息。
  • 配置信息安全:配置中心可以對(duì)配置信息提供安全管理、權(quán)限控制等管理功能。
  • 信息追溯:支持配置版本管理、歷史記錄等管理功能。

當(dāng)然,配置中心不可能有負(fù)載均衡的功能,所以略過(guò),咱們直接來(lái)看注冊(cè)中心。

2.注冊(cè)中心掃盲

注冊(cè)中心(Registry)是分布式系統(tǒng)中的一個(gè)組件,用于實(shí)現(xiàn)服務(wù)的注冊(cè)與發(fā)現(xiàn)。注冊(cè)中心用于管理服務(wù)實(shí)例的元數(shù)據(jù)信息,并提供服務(wù)發(fā)現(xiàn)和路由的功能。

在微服務(wù)架構(gòu)中,服務(wù)之間經(jīng)常需要互相調(diào)用和通信。注冊(cè)中心的作用是為服務(wù)提供一個(gè)集中管理和協(xié)調(diào)的中心,默認(rèn)情況下,服務(wù)將自己的信息注冊(cè)到注冊(cè)中心,其他服務(wù)可以通過(guò)查詢注冊(cè)中心的信息來(lái)發(fā)現(xiàn)和調(diào)用目標(biāo)服務(wù)。

注冊(cè)中心的核心功能包括以下幾個(gè):

  • 服務(wù)注冊(cè):服務(wù)提供者在啟動(dòng)時(shí)將自己的信息(比如 IP 地址、端口號(hào)、服務(wù)名稱等)注冊(cè)到注冊(cè)中心。注冊(cè)中心維護(hù)著一張服務(wù)實(shí)例的清單。
  • 服務(wù)發(fā)現(xiàn):服務(wù)消費(fèi)者通過(guò)向注冊(cè)中心查詢服務(wù)信息,獲取可用的服務(wù)實(shí)例列表。通過(guò)注冊(cè)中心,服務(wù)消費(fèi)者能夠找到并連接到目標(biāo)服務(wù)。
  • 健康檢查:注冊(cè)中心可以定時(shí)檢查服務(wù)實(shí)例的健康狀態(tài),并根據(jù)服務(wù)的狀態(tài)更新服務(wù)實(shí)例的可用性。
  • 負(fù)載均衡:注冊(cè)中心可以根據(jù)負(fù)載均衡策略,將請(qǐng)求分發(fā)給不同的服務(wù)實(shí)例,以實(shí)現(xiàn)負(fù)載均衡和服務(wù)高可用。
  • 服務(wù)路由:在一些高級(jí)注冊(cè)中心中,還可以定義服務(wù)路由規(guī)則,將請(qǐng)求路由到不同的服務(wù)實(shí)例,實(shí)現(xiàn)更靈活的流量控制和管理。

3.注冊(cè)中心與負(fù)載均衡

負(fù)載均衡嚴(yán)格的來(lái)說(shuō),并不算是傳統(tǒng)注冊(cè)中心的功能。?般來(lái)說(shuō)服務(wù)發(fā)現(xiàn)的完整流程應(yīng)該是先從注 冊(cè)中心獲取到服務(wù)的實(shí)例列表,然后再根據(jù)自身的需求,來(lái)選擇其中的部分實(shí)例或者按照?定的流 量分配機(jī)制來(lái)訪問(wèn)不同的服務(wù)提供者,因此注冊(cè)中心本身?般不限定服務(wù)消費(fèi)者的訪問(wèn)策略。

例如 Eureka、Zookeeper 包括 Consul,本身都沒(méi)有去實(shí)現(xiàn)可配置及可擴(kuò)展的負(fù)載均衡機(jī)制,Eureka 的 負(fù)載均衡是由 Ribbon 來(lái)完成的,而 Consul 則是由 Fabio 做負(fù)載均衡。

也就是說(shuō)注冊(cè)中心和負(fù)載均衡,其實(shí)完全屬于兩個(gè)不同的東西,注冊(cè)中心主要提供服務(wù)的注冊(cè),以及將服務(wù)注冊(cè)的列表交給消費(fèi)者,至于消費(fèi)者要使用哪種負(fù)載均衡策略?完全可以由自己決定。此時(shí)消費(fèi)者可以通過(guò)客戶端負(fù)載均衡器來(lái)實(shí)現(xiàn)服務(wù)的選擇和調(diào)用,例如客戶端負(fù)載均衡器 Ribbon 或 Spring Cloud LoadBalancer。

4.客戶端與服務(wù)端負(fù)載均衡

客戶端負(fù)載均衡器通常位于服務(wù)的消費(fèi)者端,主要負(fù)責(zé)將請(qǐng)求合理地分發(fā)給不同的服務(wù)提供者。工作原理是客戶端在發(fā)起請(qǐng)求前,通過(guò)負(fù)載均衡算法選擇一個(gè)合適的服務(wù)實(shí)例進(jìn)行請(qǐng)求。客戶端根據(jù)服務(wù)實(shí)例的健康度、負(fù)載狀況等指標(biāo)來(lái)決定選擇哪個(gè)服務(wù)實(shí)例。常見的客戶端負(fù)載均衡器有 Ribbon、Feign 等。

服務(wù)端負(fù)載均衡器通常被稱為反向代理服務(wù)器或負(fù)載均衡器,它位于服務(wù)的提供者端,接收客戶端的請(qǐng)求,并根據(jù)一定的負(fù)載均衡策略將請(qǐng)求分發(fā)給后端的多個(gè)服務(wù)實(shí)例。工作原理是將客戶端的請(qǐng)求集中到負(fù)載均衡器,由負(fù)載均衡器將請(qǐng)求分發(fā)給多臺(tái)服務(wù)提供者。常見的服務(wù)器端負(fù)載均衡器有 Nginx、HAProxy 等。

客戶端負(fù)載均衡 VS 服務(wù)端負(fù)載均衡

  • 客戶端負(fù)載均衡器的優(yōu)點(diǎn)是可以實(shí)現(xiàn)本地的負(fù)載均衡算法,避免了對(duì)注冊(cè)中心的頻繁調(diào)用,降低了網(wǎng)絡(luò)開銷。它的缺點(diǎn)是每個(gè)客戶端都需要集成負(fù)載均衡器,導(dǎo)致代碼冗余和維護(hù)復(fù)雜性。
  • 服務(wù)器負(fù)載均衡器的優(yōu)點(diǎn)是可以集中管理請(qǐng)求流量,提供一致的負(fù)載均衡策略和配置,對(duì)客戶端透明。它的缺點(diǎn)是服務(wù)器端負(fù)載均衡器通常需要獨(dú)立部署和配置,增加了系統(tǒng)的復(fù)雜性和維護(hù)成本。并且它很可能成為整個(gè)系統(tǒng)的瓶頸(因?yàn)榭蛻舳诵枰l繁的調(diào)用),所以此時(shí)需要考慮其性能和可靠性等問(wèn)題。

5.Nacos和負(fù)載均衡

然而 Nacos 的注冊(cè)中心和傳統(tǒng)的注冊(cè)中心不太一樣,例如 Eureka、Zookeeper、Consul 等。因?yàn)?Nacos 在 0.7.0 之后(包含此版本),它內(nèi)置了以下兩種負(fù)載均衡策略:

  • 基于權(quán)重的負(fù)載均衡策略,這個(gè)在 Nacos 服務(wù)編輯的時(shí)候也可以看到其設(shè)置:

  • 基于第三方 CMDB(地域就近訪問(wèn))標(biāo)簽的負(fù)載均衡策略,這個(gè)可以參考官方說(shuō)明文檔:https://nacos.io/zh-cn/blog/cmdb.html

小結(jié)

注冊(cè)中心和負(fù)載均衡器嚴(yán)格意義上來(lái)說(shuō)是兩個(gè)東西,但 Nacos 注冊(cè)中心中,內(nèi)置了兩種負(fù)載均衡策略:基于權(quán)重和基于 CMDB(低于就近訪問(wèn))的負(fù)載均衡策略。

思考

那么問(wèn)題來(lái)了,既然 Nacos 中內(nèi)置了基于權(quán)重的負(fù)載均衡策略,那為什么修改 Nacos 中的權(quán)重值,在服務(wù)端調(diào)用時(shí),卻沒(méi)看到任何變化?

以上就是Nacos負(fù)載均衡策略總結(jié)的詳細(xì)內(nèi)容,更多關(guān)于Nacos負(fù)載均衡的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 深入解析Java中volatile的底層原理

    深入解析Java中volatile的底層原理

    這篇文章主要介紹了深入解析Java中volatile的底層原理,volatile關(guān)鍵字用于保證變量的可見性和禁止指令重排序,即當(dāng)一個(gè)線程修改了volatile變量的值,其他線程能夠立即看到這個(gè)變量的最新值,而不是使用緩存中的舊值,需要的朋友可以參考下
    2023-07-07
  • RabbitMQ延遲隊(duì)列及消息延遲推送實(shí)現(xiàn)詳解

    RabbitMQ延遲隊(duì)列及消息延遲推送實(shí)現(xiàn)詳解

    這篇文章主要介紹了RabbitMQ延遲隊(duì)列及消息延遲推送實(shí)現(xiàn)詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • 刪除JAVA集合中元素的實(shí)現(xiàn)代碼

    刪除JAVA集合中元素的實(shí)現(xiàn)代碼

    有時(shí)候我們要?jiǎng)h除集合中的某些元素,那么就可以參考下面的代碼
    2013-07-07
  • spring中定時(shí)任務(wù)taskScheduler的詳細(xì)介紹

    spring中定時(shí)任務(wù)taskScheduler的詳細(xì)介紹

    這篇文章主要介紹了spring中定時(shí)任務(wù)taskScheduler的相關(guān)資料,文中通過(guò)示例代碼介紹的很詳細(xì),相信對(duì)大家具有一定的參考價(jià)值,有需要的朋友們下面來(lái)一起看看吧。
    2017-02-02
  • SpringBoot快速過(guò)濾出一次請(qǐng)求的所有日志的示例代碼

    SpringBoot快速過(guò)濾出一次請(qǐng)求的所有日志的示例代碼

    在現(xiàn)網(wǎng)出現(xiàn)故障時(shí),我們經(jīng)常需要獲取一次請(qǐng)求流程里的所有日志進(jìn)行定位,本文給大家介紹了SpringBoot如何快速過(guò)濾出一次請(qǐng)求的所有日志,文中有相關(guān)的代碼和示例供大家參考,需要的朋友可以參考下
    2024-03-03
  • 詳解SpringBoot中@NotNull,@NotBlank注解使用

    詳解SpringBoot中@NotNull,@NotBlank注解使用

    這篇文章主要為大家詳細(xì)介紹了Spring?Boot中集成Validation與@NotNull,@NotBlank等注解的簡(jiǎn)單使用,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2022-08-08
  • SpringBoot中定義Bean的方法總結(jié)

    SpringBoot中定義Bean的方法總結(jié)

    在Spring Boot應(yīng)用程序中,定義Bean是非常常見的操作,它是構(gòu)建應(yīng)用程序的基礎(chǔ),pring Boot提供了多種方式來(lái)定義Bean,每種方式都有其適用的場(chǎng)景和優(yōu)勢(shì),本文將介紹Spring Boot中定義Bean的幾種常見方式,需要的朋友可以參考下
    2023-12-12
  • 復(fù)選框和Struts2后臺(tái)交互代碼詳解

    復(fù)選框和Struts2后臺(tái)交互代碼詳解

    這篇文章主要介紹了復(fù)選框和Struts2后臺(tái)交互代碼詳解,分享了相關(guān)代碼示例,小編覺(jué)得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-02-02
  • Java利用位運(yùn)算實(shí)現(xiàn)加減乘除的方法詳解

    Java利用位運(yùn)算實(shí)現(xiàn)加減乘除的方法詳解

    我們經(jīng)常使用的加減乘除,我們所看到的只是表面的效果,那么加減乘除在底層究竟是怎么實(shí)現(xiàn)的?今天就讓我們一探究竟
    2022-08-08
  • Java多線程并發(fā)與并行和線程與進(jìn)程案例

    Java多線程并發(fā)與并行和線程與進(jìn)程案例

    這篇文章主要介紹了Java多線程并發(fā)與并行和線程與進(jìn)程案例,文章基于Java的相關(guān)資料展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)價(jià)值,需要的小伙伴可以參考一下
    2022-06-06

最新評(píng)論