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

SpringCloud?Nacos服務(wù)分級(jí)存儲(chǔ)模型詳解

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

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

一、服務(wù)分級(jí)模型

1、服務(wù)分級(jí)模型介紹

服務(wù)分級(jí)模型是一種將服務(wù)層次化組織的架構(gòu)設(shè)計(jì),通常用于大型分布式系統(tǒng)或微服務(wù)架構(gòu)中。這種模型的目標(biāo)是通過將服務(wù)劃分為不同的層級(jí),實(shí)現(xiàn)更靈  活、可維護(hù)和可擴(kuò)展的系統(tǒng)架構(gòu)。

服務(wù)分級(jí)模型包括以下幾個(gè)層級(jí):

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

通過將服務(wù)劃分為這些層級(jí),服務(wù)分級(jí)模型使得系統(tǒng)的不同部分能夠獨(dú)立演化、擴(kuò)展和維護(hù)。這種分級(jí)結(jié)構(gòu)使得系統(tǒng)更具彈性,能夠更好地適應(yīng)不同的需求和變化。

下面是服務(wù)分級(jí)模型的圖解: 

圖中我們可以形象的看到, 服務(wù)分級(jí)模型包括以下幾個(gè)層級(jí):

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

2、服務(wù)分級(jí)模型作用

那么,為什么需要這么設(shè)計(jì)服務(wù)分級(jí)呢?

我們拿區(qū)域容災(zāi)集群舉個(gè)例子:

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

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

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

這樣如果杭州集群內(nèi)的實(shí)例A故障了,可以繼續(xù)調(diào)用實(shí)例B。

即使杭州的集群的實(shí)例全都出現(xiàn)故障,上海和南京的實(shí)例也可以替補(bǔ)上來,系統(tǒng)可用性大大增加,這個(gè)過程也叫服務(wù)的跨集群調(diào)用。

3、服務(wù)跨集群調(diào)用

如果一個(gè)實(shí)例不可用了,我們會(huì)優(yōu)先去調(diào)用同集群下的另一個(gè)實(shí)例。但如果一個(gè)集群的實(shí)例都不可調(diào)用了,我們則會(huì)跨集群進(jìn)行調(diào)用。

跨集群服務(wù)調(diào)用示意圖:

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

4、 服務(wù)分級(jí)模型特性

服務(wù)分級(jí)模型主要具有以下特性:

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

這些特性共同構(gòu)成了服務(wù)分級(jí)模型的優(yōu)勢(shì),使得其在微服務(wù)架構(gòu)下得到廣泛應(yīng)用和推廣。

二、Nacos實(shí)現(xiàn)服務(wù)分級(jí)模型

1、安裝配置Nacos

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

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

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

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

set MODE=“standalone”

這將在啟動(dòng) Nacos Server 時(shí),默認(rèn)使用 standalone 模式運(yùn)行。

修改完成后,切換 cmd 到 bin 目錄下啟動(dòng) Nacos Server:

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

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

簡單配一下:

再次嘗試啟動(dòng) Nacos,這次成功了!

2、項(xiàng)目引入Nacos

首先,創(chuàng)建一個(gè)帶有生產(chǎn)者和消費(fèi)者的SpringCloud微服務(wù)項(xiàng)目:

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

接著對(duì)我們 SpringCloud 項(xiàng)目下 每個(gè)子項(xiàng)目 引入 Nacos,下面拿 springcloud-provider 這個(gè)子項(xiàng)目進(jìn)行舉例,其他子項(xiàng)目改造方法相同:

① pom.xml增加依賴

pom.xml 里增加 Nacos 自動(dòng)發(fā)現(xiàn)的依賴:

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

② 啟動(dòng)類添加自動(dòng)發(fā)現(xiàn)注解

啟動(dòng)類增加自動(dòng)服務(wù)發(fā)現(xiàn)的注解 @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,配置內(nèi)容修改為:

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

這樣 Nacos 服務(wù)就可以自動(dòng)發(fā)現(xiàn)這個(gè)子項(xiàng)目的服務(wù)了。

訪問我們的 Nacos 服務(wù)地址:http://localhost:8848/nacos,可以看到控制臺(tái)的查看已注冊(cè)服務(wù)。

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

3、配置Nacos集群屬性并啟動(dòng)

 修改每個(gè)服務(wù)提供者的 application.yml 配置,nacos 相關(guān)配置增加:

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

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

server:
  port: 8081
spring:
  application:
    #應(yīng)用名稱
    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:
        #公開所有端點(diǎn)
        include: '*'

 啟動(dòng) springcloud-provider :

Nacos 里可以看到我們啟動(dòng)的這個(gè)實(shí)例。

點(diǎn)擊詳情,可以看到實(shí)例所在的集群在 SH:

我們?cè)陂_啟一個(gè)不同集群的實(shí)例。

復(fù)制一個(gè)配置:

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

 修改 application.yml 配置,集群名為 NJ,端口號(hào)為另一端口:

啟動(dòng)該項(xiàng)目,啟動(dòng)成功。

回到 Nacos 網(wǎng)站 ,可以看到明細(xì)里多了一個(gè)集群實(shí)例:

 成功實(shí)現(xiàn)基于 Nacos 的服務(wù)分級(jí)模型。

三、Nacos的豐富功能

Nacos(Namespace Aware Clustered Object Storage)作為一個(gè)強(qiáng)大的服務(wù)發(fā)現(xiàn)、配置管理和服務(wù)管理平臺(tái),提供了許多豐富的功能。

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

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

四、結(jié)語

Nacos服務(wù)分級(jí)存儲(chǔ)模型作為Nacos的核心設(shè)計(jì)之一,為微服務(wù)架構(gòu)下的服務(wù)發(fā)現(xiàn)和配置管理提供了強(qiáng)大支持。通過層級(jí)結(jié)構(gòu)、繼承關(guān)系和動(dòng)態(tài)更新等特性,實(shí)現(xiàn)了服務(wù)和配置信息的高效管理和快速檢索,為微服務(wù)架構(gòu)下的應(yīng)用開發(fā)和運(yùn)維提供了可靠、靈活的解決方案。

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

相關(guān)文章

  • jdk源碼閱讀Collection詳解

    jdk源碼閱讀Collection詳解

    這篇文章主要介紹了jdk源碼閱讀Collection詳解,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2017-12-12
  • 通過實(shí)例分析java多態(tài)

    通過實(shí)例分析java多態(tài)

    這篇文章主要介紹了通過實(shí)例分析java多態(tài),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • Spring中七種事務(wù)傳播機(jī)制詳解

    Spring中七種事務(wù)傳播機(jī)制詳解

    這篇文章主要介紹了Spring中七種事務(wù)傳播機(jī)制詳解,Spring在TransactionDefinition接口中規(guī)定了7種類型的事務(wù)傳播行為,Propagation枚舉則引用了這些類型,開發(fā)過程中我們一般直接用Propagation枚舉,需要的朋友可以參考下
    2024-01-01
  • mybatis?plus自動(dòng)生成代碼的示例代碼

    mybatis?plus自動(dòng)生成代碼的示例代碼

    本文主要介紹了mybatis?plus自動(dòng)生成代碼,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • 高并發(fā)下restTemplate的錯(cuò)誤分析方式

    高并發(fā)下restTemplate的錯(cuò)誤分析方式

    這篇文章主要介紹了高并發(fā)下restTemplate的錯(cuò)誤分析方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • java中final關(guān)鍵字使用示例詳解

    java中final關(guān)鍵字使用示例詳解

    Java中的final關(guān)鍵字非常重要,它可以應(yīng)用于類、方法以及變量。這篇文章中帶你看看什么是final關(guān)鍵字?將變量,方法和類聲明為final代表了什么?使用final的好處是什么?最后也有一些使用final關(guān)鍵字的實(shí)例
    2014-01-01
  • Java如何使用poi生成簡單word文檔并導(dǎo)出

    Java如何使用poi生成簡單word文檔并導(dǎo)出

    這篇文章主要介紹了Java如何使用poi生成簡單word文檔并導(dǎo)出問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • java字節(jié)流知識(shí)點(diǎn)總結(jié)

    java字節(jié)流知識(shí)點(diǎn)總結(jié)

    在本篇文章里小編給大家分享的是關(guān)于java字節(jié)流的相關(guān)知識(shí)點(diǎn)內(nèi)容,有興趣的朋友們跟著學(xué)習(xí)參考下。
    2019-07-07
  • AJAX?SpringBoot?前后端數(shù)據(jù)交互的項(xiàng)目實(shí)現(xiàn)

    AJAX?SpringBoot?前后端數(shù)據(jù)交互的項(xiàng)目實(shí)現(xiàn)

    本文主要介紹了AJAX?SpringBoot?前后端數(shù)據(jù)交互的項(xiàng)目實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Java數(shù)據(jù)結(jié)構(gòu)之二叉排序樹的實(shí)現(xiàn)

    Java數(shù)據(jù)結(jié)構(gòu)之二叉排序樹的實(shí)現(xiàn)

    二叉排序樹(Binary Sort Tree),又稱二叉查找樹(Binary Search Tree),亦稱二叉搜索樹。本文詳細(xì)介紹了二叉排序樹的原理,并且提供了Java代碼的完全實(shí)現(xiàn)。需要的可以參考一下
    2022-01-01

最新評(píng)論