最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringCloud?Nacos服務分級存儲模型詳解

 更新時間:2024年02月29日 11:45:33   作者:Damon小智  
Nacos服務分級存儲模型是Nacos存儲服務注冊信息和配置信息的核心模型之一,本文將對?Nacos?服務分級存儲模型進行深入解析,感興趣的朋友一起看看吧

Nacos 服務分級存儲模型是 Nacos 存儲服務注冊信息和配置信息的核心模型之一。它通過將服務和配置信息按照不同級別進行存儲,實現了信息的靈活管理和快速檢索,為微服務架構下的服務發(fā)現和配置管理提供了高效、可靠的支持。本文將對 Nacos 服務分級存儲模型進行深入解析。

一、服務分級模型

1、服務分級模型介紹

服務分級模型是一種將服務層次化組織的架構設計,通常用于大型分布式系統(tǒng)或微服務架構中。這種模型的目標是通過將服務劃分為不同的層級,實現更靈  活、可維護和可擴展的系統(tǒng)架構。

服務分級模型包括以下幾個層級:

特性特性描述
全局級別在這個層級,通常存儲全局配置和共享信息。全局級別的服務對整個系統(tǒng)可見,負責處理全局性的任務和配置,例如全局配置管理、認證、授權等。
集群級別集群級別的服務組織在物理或邏輯上相鄰的節(jié)點上,負責處理集群內的任務和協(xié)調。這一層級的服務通常處理一組相關聯(lián)的節(jié)點,提供集群級別的服務如負載均衡、故障轉移、數據同步等。
服務級別在服務級別,服務被組織成邏輯單元,每個服務負責實現特定的業(yè)務功能。服務級別的服務通常是整個系統(tǒng)的核心,提供具體的業(yè)務邏輯,例如用戶管理、訂單處理等。
實例級別實例級別是最底層的層級,代表著服務的具體實例。在微服務架構中,服務可能會有多個實例運行在不同的節(jié)點上,實現負載均衡和高可用性。

通過將服務劃分為這些層級,服務分級模型使得系統(tǒng)的不同部分能夠獨立演化、擴展和維護。這種分級結構使得系統(tǒng)更具彈性,能夠更好地適應不同的需求和變化。

下面是服務分級模型的圖解: 

圖中我們可以形象的看到, 服務分級模型包括以下幾個層級:

  • 一級是全局級別(圖中省略)
  • 二級是服務
  • 三級是集群
  • 四級是實例(具體到某臺部署了某服務的服務器)

2、服務分級模型作用

那么,為什么需要這么設計服務分級呢?

我們拿區(qū)域容災集群舉個例子:

如果我們所有的實例都放在一個機房,那么一旦機房這邊出現了不可抗力的破壞,我們的服務也就沒有辦法繼續(xù)提供了,會導致系統(tǒng)里該服務涉及的功能不可用,為了避免這種問題,我們需要把實例分散布局,就如同一句諺語 "不能把雞蛋放在一個籃子里"。

區(qū)域容災集群示意圖:

在圖中我們可以看到,服務下面設置了三個集群,分別位于杭州、上海、南京。

這樣如果杭州集群內的實例A故障了,可以繼續(xù)調用實例B。

即使杭州的集群的實例全都出現故障,上海和南京的實例也可以替補上來,系統(tǒng)可用性大大增加,這個過程也叫服務的跨集群調用。

3、服務跨集群調用

如果一個實例不可用了,我們會優(yōu)先去調用同集群下的另一個實例。但如果一個集群的實例都不可調用了,我們則會跨集群進行調用。

跨集群服務調用示意圖:

可以看到杭州集群下面的實例A和實例B都無法正常使用,于是系統(tǒng)跨集群調用到了上海集群的實例C,使得系統(tǒng)可用性大大增加,極大程度避免了服務宕機的風險。 

4、 服務分級模型特性

服務分級模型主要具有以下特性:

特性特性描述
層級結構服務和配置信息按照層級結構進行存儲,包括全局級別 、集群級別、服務級別和實例級別等,每個層級存儲的信息具有不同的作用范圍和生命周期。
繼承關系Nacos的服務分級存儲模型支持繼承關系,即更高層級的信息可以被子層級繼承和覆蓋,實現了信息的統(tǒng)一管理和分級繼承。
動態(tài)更新Nacos支持動態(tài)更新服務和配置信息,當信息發(fā)生變化時,可以及時更新到對應的層級,保證了信息的實時性和準確性。
靈活檢索通過靈活的查詢接口,可以根據不同層級和條件快速檢索到所需的服務和配置信息,滿足了微服務架構下信息管理的需求。

這些特性共同構成了服務分級模型的優(yōu)勢,使得其在微服務架構下得到廣泛應用和推廣。

二、Nacos實現服務分級模型

1、安裝配置Nacos

首先,我們需要從 Nacos 的官方網站下載發(fā)布版本。下載地址:Releases · alibaba/nacos · GitHub

選擇合適的版本并下載,解壓縮得到 Nacos 的安裝包。 

在解壓后的 Nacos 目錄中,找到 bin 文件夾。

用寫字板編輯 startup.cmd,將 set MODE= "cluster" 修改為:

set MODE=“standalone”

這將在啟動 Nacos Server 時,默認使用 standalone 模式運行。

修改完成后,切換 cmd 到 bin 目錄下啟動 Nacos Server:

C:\Users\Damon.Liu>d:
D:\>cd D:\Tools\Nacos\bin
D:\Tools\Nacos\bin>startup.cmd -m standalone

這里提醒我需要配一個 java8以上 的 JAVA_HOME 環(huán)境變量。

簡單配一下:

再次嘗試啟動 Nacos,這次成功了!

2、項目引入Nacos

首先,創(chuàng)建一個帶有生產者和消費者的SpringCloud微服務項目:

這里就不重頭帶大家新建了,可以直接看我這篇文章:SpringCloud-創(chuàng)建多模塊項目

接著對我們 SpringCloud 項目下 每個子項目 引入 Nacos,下面拿 springcloud-provider 這個子項目進行舉例,其他子項目改造方法相同:

① pom.xml增加依賴

pom.xml 里增加 Nacos 自動發(fā)現的依賴:

<dependency> 
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    <version>2021.0.5.0</version>
</dependency>

② 啟動類添加自動發(fā)現注解

啟動類增加自動服務發(fā)現的注解 @EnableDiscoveryClient:

package com.example.springcloudprovider;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@EnableDiscoveryClient
@SpringBootApplication
public class NacosProviderApplication {
    public static void main(String[] args) {
        SpringApplication.run(NacosProviderApplication.class, args);
    }
}

③ 修改 application.yml 配置

修改 application.yml,配置內容修改為:

server:
  #程序端口號
  port: 8081
spring:
  application:
    #應用名稱
    name: springcloud-provider
  cloud:
    nacos:
      discovery:
        #nacos地址
        server-addr: 127.0.0.1:8848
      config:
        import-check:
          enabled: false
management:
  endpoints:
    web:
      exposure:
        #公開所有端點
        include: '*'

這樣 Nacos 服務就可以自動發(fā)現這個子項目的服務了。

訪問我們的 Nacos 服務地址:http://localhost:8848/nacos,可以看到控制臺的查看已注冊服務。

通過以上步驟,我們成功將 springcloud-provider 服務注冊到了 Nacos 服務中心。

3、配置Nacos集群屬性并啟動

 修改每個服務提供者的 application.yml 配置,nacos 相關配置增加:

spring:
  cloud:
    nacos:
      discovery:
        cluster-name: NJ

springcloud-provider 修改后的 application.yml 配置:

server:
  port: 8081
spring:
  application:
    #應用名稱
    name: springcloud-provider
  cloud:
    nacos:
      discovery:
        #nacos地址
        server-addr: 127.0.0.1:8848
        cluster-name: SH
      config:
        import-check:
          enabled: false
management:
  endpoints:
    web:
      exposure:
        #公開所有端點
        include: '*'

 啟動 springcloud-provider :

Nacos 里可以看到我們啟動的這個實例。

點擊詳情,可以看到實例所在的集群在 SH:

我們在開啟一個不同集群的實例。

復制一個配置:

命名為 xxxx-NJ,表示南京地區(qū)集群。 

 修改 application.yml 配置,集群名為 NJ,端口號為另一端口:

啟動該項目,啟動成功。

回到 Nacos 網站 ,可以看到明細里多了一個集群實例:

 成功實現基于 Nacos 的服務分級模型。

三、Nacos的豐富功能

Nacos(Namespace Aware Clustered Object Storage)作為一個強大的服務發(fā)現、配置管理和服務管理平臺,提供了許多豐富的功能。

功能詳述
服務注冊Nacos 作為服務注冊中心,支持服務的注冊與發(fā)現。通過 Nacos,微服務應用可以方便地注冊自身服務,同時通過 Nacos 進行服務的發(fā)現,以實現微服務之間的通信。
服務發(fā)現服務消費者通過 Nacos 注冊中心發(fā)現并調用其他服務。
配置管理Nacos作為配置中心,支持動態(tài)配置管理,實時更新應用的配置信息。通過 Nacos 的配置中心,應用可以動態(tài)讀取配置信息,實現配置的集中管理。Nacos支持配置的動態(tài)監(jiān)聽,當配置發(fā)生變化時,應用可以立即感知并更新。
命名空間
和分組
acos支持多命名空間和分組,幫助用戶更好地管理和隔離不同環(huán)境下的服務和配置。
健康檢查 Nacos提供了健康檢查機制,可實時監(jiān)測服務的運行狀態(tài),確保服務的可用性。
集群和
多數據中心
Nacos支持橫向擴展,可以構建成多節(jié)點的集群,支持多數據中心的部署,提供高可用和容錯能力。
配置共享
和保護
Nacos允許配置共享,支持配置的版本管理和回滾。同時,Nacos提供配置的保護機制,防止配置被誤操作刪除。
插件擴展Nacos提供了豐富的插件機制,可以通過插件擴展實現更多自定義功能,如自定義路由、自定義負載均衡策略等。

Nacos 的功能豐富多樣,涵蓋了服務注冊與發(fā)現、配置管理、健康檢查等多個方面。通過學習 Nacos 的這些核心功能,可以更好地利用 Nacos 構建和管理微服務架構,提升應用的可用性和靈活性。希望這一部分的詳解能夠幫助你更深入地理解和使用 Nacos。

四、結語

Nacos服務分級存儲模型作為Nacos的核心設計之一,為微服務架構下的服務發(fā)現和配置管理提供了強大支持。通過層級結構、繼承關系和動態(tài)更新等特性,實現了服務和配置信息的高效管理和快速檢索,為微服務架構下的應用開發(fā)和運維提供了可靠、靈活的解決方案。

到此這篇關于SpringCloud Nacos服務分級存儲模型詳解的文章就介紹到這了,更多相關SpringCloud Nacos分級存儲內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 基于JavaCore文件的深入分析

    基于JavaCore文件的深入分析

    本篇文章介紹了,對JavaCore文件的深入分析。需要的朋友參考下
    2013-05-05
  • Java實現異步延遲隊列的方法詳解

    Java實現異步延遲隊列的方法詳解

    目前系統(tǒng)中有很多需要用到延時處理的功能,本文就為大家介紹了Java實現異步延遲隊列的方法,文中的示例代碼講解詳細,需要的可以參考一下
    2023-03-03
  • Spring注解實現Bean自動裝配示例詳解

    Spring注解實現Bean自動裝配示例詳解

    這篇文章主要給大家介紹了關于Spring注解實現Bean自動裝配的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-03-03
  • java轉化為exe程序步驟詳解

    java轉化為exe程序步驟詳解

    在本篇內容里我們給大家分享了關于java轉化為exe程序的具體步驟和相關知識點,需要的朋友們學習下。
    2019-03-03
  • Java解決No enclosing instance of type PrintListFromTailToHead is accessible問題的兩種方案

    Java解決No enclosing instance of type PrintListFromTailToHead

    這篇文章主要介紹了Java解決No enclosing instance of type PrintListFromTailToHead is accessible問題的兩種方案的相關資料,需要的朋友可以參考下
    2016-07-07
  • IDEA項目啟動時Flyway數據庫遷移中的checksum不匹配問題及最新解決方案

    IDEA項目啟動時Flyway數據庫遷移中的checksum不匹配問題及最新解決方案

    面對IDEA項目啟動時報出的Flyway遷移校驗和不匹配問題,核心在于保持遷移腳本的一致性、正確管理和理解Flyway的工作機制,本文介紹IDEA項目啟動時Flyway數據庫遷移中的checksum不匹配問題及最新解決方案,感興趣的朋友一起看看吧
    2024-01-01
  • Spring Boot 入門之消息中間件的使用

    Spring Boot 入門之消息中間件的使用

    本篇文章主要介紹了Spring Boot 入門之消息中間件的使用,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-02-02
  • Java線程同步Lock同步鎖代碼示例

    Java線程同步Lock同步鎖代碼示例

    這篇文章主要介紹了Java線程同步Lock同步鎖代碼示例,首先介紹了Java線程同步的原理,然后對lock同步鎖作了簡要闡述,分享了代碼示例,具有一定參考價值,需要的朋友可以了解下。
    2017-11-11
  • Java使用備忘錄模式實現過關類游戲功能詳解

    Java使用備忘錄模式實現過關類游戲功能詳解

    這篇文章主要介紹了Java使用備忘錄模式實現過關類游戲功能,結合實例形式詳細分析了java備忘錄模式的概念、原理及其在過關類游戲中的具體應用方法,需要的朋友可以參考下
    2018-04-04
  • apollo動態(tài)刷新ConfigurationProperties注解標注的配置類方式

    apollo動態(tài)刷新ConfigurationProperties注解標注的配置類方式

    文章介紹了在Spring Boot中使用Apollo動態(tài)刷新ConfigurationProperties注解標注的配置類時遇到的問題,以及官方推薦的兩種解決方案:@RefreshScope和通過EnvironmentChangeEvent,文章通過創(chuàng)建一個Apollo監(jiān)聽類并觸發(fā)EnvironmentChangeEvent來實現配置屬性的實時更新
    2025-12-12

最新評論

如东县| 柳江县| 保定市| 石首市| 长武县| 平罗县| 西城区| 邢台县| 大同县| 志丹县| 鄂州市| 且末县| 桃源县| 揭阳市| 淳安县| 晋城| 无为县| 乌兰浩特市| 兴隆县| 邓州市| 武威市| 沧州市| 兴文县| 方城县| 定安县| 黄冈市| 廉江市| 松桃| 德江县| 水城县| 治县。| 鞍山市| 兴城市| 丹凤县| 宜丰县| 宜都市| 文山县| 濮阳市| 洮南市| 临桂县| 介休市|