自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

面試官:Nacos有幾種負載均衡策略?

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

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

1、配置中心掃盲

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

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

當然,配置中心不可能有負載均衡的功能,所以略過,咱們直接來看注冊中心。

2、注冊中心掃盲

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

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

注冊中心的核心功能包括以下幾個:

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

3、注冊中心與負載均衡

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

例如 Eureka、Zookeeper 包括 Consul,本身都沒有去實現(xiàn)可配置及可擴展的負載均衡機制,Eureka 的 負載均衡是由 Ribbon 來完成的,而 Consul 則是由 Fabio 做負載均衡。

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

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

客戶端負載均衡器通常位于服務(wù)的消費者端,主要負責將請求合理地分發(fā)給不同的服務(wù)提供者。工作原理是客戶端在發(fā)起請求前,通過負載均衡算法選擇一個合適的服務(wù)實例進行請求??蛻舳烁鶕?jù)服務(wù)實例的健康度、負載狀況等指標來決定選擇哪個服務(wù)實例。常見的客戶端負載均衡器有 Ribbon、Feign 等。

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

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

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

5、Nacos和負載均衡

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

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

基于第三方 CMDB(地域就近訪問)標簽的負載均衡策略,這個可以參考官方說明文檔:https://nacos.io/zh-cn/blog/cmdb.html

小結(jié)

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

思考

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

責任編輯:姜華 來源: Java中文社群
相關(guān)推薦

2019-12-25 11:22:19

負載均衡集群算法

2020-09-07 06:28:37

Nginx靜態(tài)負載均衡動態(tài)負載均衡

2023-10-27 17:23:03

Ribbon負載均衡策略

2021-12-08 06:53:28

HashMap面試JDK 8

2023-02-20 08:08:48

限流算法計數(shù)器算法令牌桶算法

2010-04-20 12:49:27

負載均衡策略

2023-08-29 17:51:22

Ribbon客戶端均衡器

2010-05-10 16:20:32

負載均衡策略

2021-05-27 07:14:52

ZooKeeper節(jié)點類型

2025-03-26 01:25:00

MySQL優(yōu)化事務(wù)

2020-04-27 10:00:53

負載均衡互聯(lián)網(wǎng)架構(gòu)

2022-07-26 08:40:42

Java并發(fā)工具類

2024-03-07 17:21:12

HotSpotJVMHot Code

2022-08-02 06:31:32

Java并發(fā)工具類

2024-08-19 09:13:02

2024-06-04 07:38:10

2024-10-31 09:30:05

線程池工具Java

2021-07-14 08:00:13

reactCss模塊

2023-02-18 13:34:14

Nacos健康檢查機制

2024-02-26 14:07:18

點贊
收藏

51CTO技術(shù)棧公眾號