Nacos服務發現簡單應用


服務發現數據模型
Nacos在經過阿里內部多年生產經驗后提煉出的數據模型,則是一種服務-集群-實例的三層模型,這樣基本可以滿足服務在所有場景下的數據存儲和管理。

 

命名空間(Namespace)

  • 用於進行租戶粒度的配置隔離,命名空間不僅適用於nacos的配置管理,同樣適用於服務發現。Namespace 的常用場景之一是不同環境的配置的區分隔離,例如開發測試環境和生產環境的資源(如配置、服務)隔離等。

服務

  • 提供給客戶端的軟件功能,通過預定義接口網絡訪問。

服務名

  • 服務提供的標識,通過該標識可以唯一確定其指代的服務。

實例

  • 提供一個或多個服務的具有可訪問網絡地址(IP:Port)的進程,啟動一個服務,就產生了一個服務實例。

元信息

  • Nacos數據(如配置和服務)描述信息,如服務版本、權重、容災策略、負載均衡策略、鑒權配置、各種自定義標簽 (label),從作用范圍來看,分為服務級別的元信息、集群的元信息及實例的元信息

集群

  • 服務實例的集合,服務實例組成一個默認集群, 集群可以被進一步按需求划分,划分的單位可以是虛擬集群,相同集群下的實例才能相互感知。

應用通過Namespace、Service、Cluster(DEFAULT)的配置,描述了該服務向哪個環境(如開發環境)的哪個集群注冊實例。

spring:
  application:
    name: transaction‐service
  cloud:
    nacos:
      discovery:
        server‐addr: 127.0.0.1:7283  # 注冊中心地址
        namespace: a1f8e863‐3117‐48c4‐9dd3‐e9ddc2af90a8  # 開發環境
        cluster‐name: DEFAULT # 默認集群,可不填寫

Note: 集群作為實例的隔離,相同集群的實例才能相互感知。
Note: namespace、cluster-name若不填寫都將采取默認值,namespace的默認是public命名空間,cluster-name的默認值為DEFAULT集群。

服務管理
開發者或者運維人員往往需要在服務注冊后,通過友好的界面來查看服務的注冊情況,包括當前系統注冊的所有服
務和每個服務的詳情。並在有權限控制的情況下,進行服務的一些配置的編輯操作。Nacos在目前最新版本開放的
控制台的服務發現部分,主要就是提供用戶一個基本的運維頁面,能夠查看、編輯當前注冊的服務,這些功能集中
在Nacos控制台的服務管理一級菜單內。

服務列表管理
服務列表幫助用戶以統一的視圖管理其所有的微服務以及服務健康狀態。整體界面布局是左上角有服務的搜索框和
搜索按鈕,頁面中央是服務列表的展示。服務列表主要展示服務名、集群數目、實例數目、健康實例數目和詳情按
鈕五個欄目。

 

在服務列表頁面點擊詳情,可以看到服務的詳情。可以查看服務、集群和實例的基本信息。

 服務流量權重支持及流量保護
Nacos 為用戶提供了流量權重控制的能力,同時開放了服務流量的閾值保護,以幫助用戶更好的保護服務服務提
供者集群不被意外打垮。如下圖所以,可以點擊實例的編輯按鈕,修改實例的權重。如果想增加實例的流量,可以
將權重調大,如果不想實例接收流量,則可以將權重設為0。

 

服務元數據管理
Nacos提供多個維度的服務元數據的暴露,幫助用戶存儲自定義的信息。這些信息都是以K-V的數據結構存儲,在
控制台上,會以k1=v1,k2=v2這樣的格式展示。類似的,編輯元數據可以通過相同的格式進行。例如服務的元數據
編輯,首先點擊服務詳情頁右上角的“編輯服務”按鈕,然后在元數據輸入框輸入:version=1.0。

 

 點擊確認,就可以在服務詳情頁面,看到服務的元數據已經更新了。

 

 服務優雅上下線
Nacos還提供服務實例的上下線操作,在服務詳情頁面,可以點擊實例的“上線”或者“下線”按鈕,被下線的實例,
將不會包含在健康的實例列表里。

 下線測試,發現56011就已經接受不到請求了

 

 

 恢復上線

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM