国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【微服務(wù)】Nacos注冊中心

這篇具有很好參考價值的文章主要介紹了【微服務(wù)】Nacos注冊中心。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。


國內(nèi)公司一般都推崇阿里巴巴的技術(shù),比如注冊中心,SpringCloudAlibaba也推出了一個名為Nacos的注冊中心。

認(rèn)識和安裝Nacos

Nacos是阿里巴巴的產(chǎn)品,現(xiàn)在是SpringCloud中的一個組件。相比Eureka功能更加豐富,在國內(nèi)受歡迎程度較高。

微服務(wù)注冊nacos,# SpringCloud,微服務(wù),eureka,spring cloud,云原生

安裝

在Nacos的GitHub頁面,提供有下載鏈接,可以下載編譯好的Nacos服務(wù)端或者源代碼:

GitHub主頁:https://github.com/alibaba/nacos

GitHub的Release下載頁:https://github.com/alibaba/nacos/releases

如圖:
微服務(wù)注冊nacos,# SpringCloud,微服務(wù),eureka,spring cloud,云原生

將這個包解壓到任意非中文目錄下,如圖:

微服務(wù)注冊nacos,# SpringCloud,微服務(wù),eureka,spring cloud,云原生

目錄說明:

  • bin:啟動腳本
  • conf:配置文件

端口配置

Nacos的默認(rèn)端口是8848,如果你電腦上的其它進(jìn)程占用了8848端口,請先嘗試關(guān)閉該進(jìn)程。

如果無法關(guān)閉占用8848端口的進(jìn)程,也可以進(jìn)入nacos的conf目錄,修改配置文件中的端口:

微服務(wù)注冊nacos,# SpringCloud,微服務(wù),eureka,spring cloud,云原生

修改其中的內(nèi)容:

微服務(wù)注冊nacos,# SpringCloud,微服務(wù),eureka,spring cloud,云原生

啟動

啟動非常簡單,進(jìn)入bin目錄,結(jié)構(gòu)如下:

微服務(wù)注冊nacos,# SpringCloud,微服務(wù),eureka,spring cloud,云原生

然后執(zhí)行命令即可:

  • windows命令:

    startup.cmd -m standalone
    

執(zhí)行后的效果如圖:

微服務(wù)注冊nacos,# SpringCloud,微服務(wù),eureka,spring cloud,云原生

訪問

在瀏覽器輸入地址:http://127.0.0.1:8848/nacos即可:

微服務(wù)注冊nacos,# SpringCloud,微服務(wù),eureka,spring cloud,云原生

默認(rèn)的賬號和密碼都是nacos,進(jìn)入后:

微服務(wù)注冊nacos,# SpringCloud,微服務(wù),eureka,spring cloud,云原生

服務(wù)注冊到Nacos

Nacos是SpringCloudAlibaba的組件,而SpringCloudAlibaba也遵循SpringCloud中定義的服務(wù)注冊、服務(wù)發(fā)現(xiàn)規(guī)范。因此使用Nacos和使用Eureka對于微服務(wù)來說,并沒有太大區(qū)別。

主要差異在于:

  • 依賴不同
  • 服務(wù)地址不同

引入依賴

在cloud-demo父工程的pom文件中的<dependencyManagement>中引入SpringCloudAlibaba的依賴:

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-alibaba-dependencies</artifactId>
    <version>2.2.6.RELEASE</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>

然后在user-service和order-service中的pom文件中引入nacos-discovery依賴:

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

復(fù)習(xí):dependencyManagement和dependencies區(qū)別
①dependencies:自動引入聲明在dependencies里的所有依賴,并默認(rèn)被所有的子項目繼承。如果項目中不寫依賴項,則會從父項目繼承(屬性全部繼承)聲明在父項目dependencies里的依賴項。
②dependencyManagement里只是聲明依賴,并不實現(xiàn)引入,因此子項目需要顯式的聲明需要的依賴。如果不在子項目中聲明依賴,是不會從父項目中繼承的;只有在子項目中寫了該依賴項,并且沒有指定具體版本,才會從父項目中繼承該項,并且version和scope都讀取自父pom;如果子項目中指定了版本號,那么會使用子項目中指定的jar版本。同時dependencyManagement讓子項目引用依賴,而不用顯式的列出版本號。Maven會沿著父子層次向上走,直到找到一個擁有dependencyManagement元素的項目,然后它就會使用在這個dependencyManagement元素中指定的版本號,實現(xiàn)所有子項目使用的依賴項為同一版本。
③dependencyManagement 中的 dependencies 并不影響項目的依賴項;而獨立dependencies元素則影響項目的依賴項。只有當(dāng)外層的dependencies元素中沒有指明版本信息時,dependencyManagement 中的 dependencies 元素才起作用。一個是項目依賴,一個是maven項目多模塊情況時作依賴管理控制的。

配置nacos地址

在user-service和order-service的application.yml中添加nacos地址:

spring:
  cloud:
    nacos:
      server-addr: localhost:8848

這里和Eureka配置中的eureka.client.service-url一個意思,就是說告訴當(dāng)前服務(wù)去哪里進(jìn)行注冊。

重啟

重啟微服務(wù)后,登錄nacos管理頁面,可以看到微服務(wù)信息:

微服務(wù)注冊nacos,# SpringCloud,微服務(wù),eureka,spring cloud,云原生

注意:
這里要先把Eureka的依賴和配置給注釋掉,否則兩個注冊中心不知道用哪個,會報錯!

服務(wù)分級存儲模型

一個服務(wù)可以有多個實例,例如我們的user-service,可以有:

  • 127.0.0.1:8081
  • 127.0.0.1:8082
  • 127.0.0.1:8083

一個服務(wù)既然可以有多個實例,如果我們把所有的實例都部署到一個機(jī)房里面,這就像把雞蛋放在一個籃子里面,如果籃子翻了,那么雞蛋也就全部碎了。如果哪一天機(jī)房出現(xiàn)了問題,那么整個服務(wù)不就完了?
所以為了解決這個問題,我們會將一個服務(wù)的多個實例部署到不同的機(jī)房,比如像阿里、京東這些公司他們會將服務(wù)的實例分散到全國各地,這樣能做到容災(zāi)。

假如這些實例分布于全國各地的不同機(jī)房,例如:

  • 127.0.0.1:8081,在杭州機(jī)房
  • 127.0.0.1:8082,在杭州機(jī)房
  • 127.0.0.1:8083,在上海機(jī)房

Nacos就將同一機(jī)房內(nèi)的實例 劃分為一個集群。

nacos服務(wù)分級存儲模型就是引入了一個機(jī)房的概念(或者說地域的概念)

也就是說,user-service是服務(wù),一個服務(wù)可以包含多個集群,如杭州、上海,每個集群下可以有多個實例,形成分級模型,如圖:

微服務(wù)注冊nacos,# SpringCloud,微服務(wù),eureka,spring cloud,云原生

微服務(wù)互相訪問時,應(yīng)該盡可能訪問同集群實例,因為本地訪問速度更快。當(dāng)本集群內(nèi)不可用時,才訪問其它集群。例如:

微服務(wù)注冊nacos,# SpringCloud,微服務(wù),eureka,spring cloud,云原生

杭州機(jī)房內(nèi)的order-service應(yīng)該優(yōu)先訪問同機(jī)房的user-service。

Nacos引入這種集群的概念,就是為了盡可能避免跨集群調(diào)用,因為這樣的話延遲很高。

給user-service配置集群

修改user-service的application.yml文件,添加集群配置:

spring:
  cloud:
    nacos:
      server-addr: localhost:8848
      discovery:
        cluster-name: HZ # 集群名稱

重啟兩個user-service實例后,我們可以在nacos控制臺看到下面結(jié)果:

微服務(wù)注冊nacos,# SpringCloud,微服務(wù),eureka,spring cloud,云原生

我們再次復(fù)制一個user-service啟動配置,添加屬性:

-Dserver.port=8083 -Dspring.cloud.nacos.discovery.cluster-name=SH

配置如圖所示:

微服務(wù)注冊nacos,# SpringCloud,微服務(wù),eureka,spring cloud,云原生

啟動UserApplication3后再次查看nacos控制臺:

微服務(wù)注冊nacos,# SpringCloud,微服務(wù),eureka,spring cloud,云原生

同集群優(yōu)先的負(fù)載均衡

默認(rèn)的ZoneAvoidanceRule并不能實現(xiàn)根據(jù)同集群優(yōu)先來實現(xiàn)負(fù)載均衡。

因此Nacos中提供了一個NacosRule的實現(xiàn),可以優(yōu)先從同集群中挑選實例,在本集群中采取隨機(jī)選擇的方式。

1)給order-service配置集群信息

修改order-service的application.yml文件,添加集群配置:

spring:
  cloud:
    nacos:
      server-addr: localhost:8848
      discovery:
        cluster-name: HZ # 集群名稱

2)修改負(fù)載均衡規(guī)則

修改order-service的application.yml文件,修改負(fù)載均衡規(guī)則:

userservice:
  ribbon:
    NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule # 負(fù)載均衡規(guī)則 

這個地方在【微服務(wù)】Ribbon負(fù)載均衡中的自定義負(fù)載均衡策略也提到過

總結(jié):
微服務(wù)注冊nacos,# SpringCloud,微服務(wù),eureka,spring cloud,云原生

權(quán)重配置

實際部署中會出現(xiàn)這樣的場景:

服務(wù)器設(shè)備性能有差異,部分實例所在機(jī)器性能較好,另一些較差,我們希望性能好的機(jī)器承擔(dān)更多的用戶請求。

但默認(rèn)情況下NacosRule是同集群內(nèi)隨機(jī)挑選,不會考慮機(jī)器的性能問題。

因此,Nacos提供了權(quán)重配置來控制訪問頻率,權(quán)重越大則訪問頻率越高(相對于同一集群來說)。

在nacos控制臺,找到user-service的實例列表,點擊編輯,即可修改權(quán)重:

微服務(wù)注冊nacos,# SpringCloud,微服務(wù),eureka,spring cloud,云原生

在彈出的編輯窗口,修改權(quán)重:

微服務(wù)注冊nacos,# SpringCloud,微服務(wù),eureka,spring cloud,云原生

注意:如果權(quán)重修改為0,則該實例永遠(yuǎn)不會被訪問

環(huán)境隔離

Nacos提供了namespace來實現(xiàn)環(huán)境隔離功能。

  • nacos中可以有多個namespace
  • namespace下可以有g(shù)roup、service等
  • 不同namespace之間相互隔離,例如不同namespace的服務(wù)互相不可見

微服務(wù)注冊nacos,# SpringCloud,微服務(wù),eureka,spring cloud,云原生

創(chuàng)建namespace

默認(rèn)情況下,所有service、data、group都在同一個namespace,名為public:

微服務(wù)注冊nacos,# SpringCloud,微服務(wù),eureka,spring cloud,云原生

我們可以點擊頁面新增按鈕,添加一個namespace:

微服務(wù)注冊nacos,# SpringCloud,微服務(wù),eureka,spring cloud,云原生

然后,填寫表單:

微服務(wù)注冊nacos,# SpringCloud,微服務(wù),eureka,spring cloud,云原生

就能在頁面看到一個新的namespace:

微服務(wù)注冊nacos,# SpringCloud,微服務(wù),eureka,spring cloud,云原生

給微服務(wù)配置namespace

給微服務(wù)配置namespace只能通過修改配置來實現(xiàn)。

例如,修改order-service的application.yml文件:

spring:
  cloud:
    nacos:
      server-addr: localhost:8848
      discovery:
        cluster-name: HZ
        namespace: 492a7d5d-237b-46a1-a99a-fa8e98e4b0f9 # 命名空間,填I(lǐng)D

重啟order-service后,訪問控制臺,可以看到下面的結(jié)果:

微服務(wù)注冊nacos,# SpringCloud,微服務(wù),eureka,spring cloud,云原生

微服務(wù)注冊nacos,# SpringCloud,微服務(wù),eureka,spring cloud,云原生

此時訪問order-service,因為namespace不同,會導(dǎo)致找不到userservice,控制臺會報錯:

微服務(wù)注冊nacos,# SpringCloud,微服務(wù),eureka,spring cloud,云原生

Nacos與Eureka的區(qū)別

Nacos的服務(wù)實例分為兩種l類型:

  • 臨時實例:如果實例宕機(jī)超過一定時間,會從服務(wù)列表剔除,默認(rèn)的類型。

  • 非臨時實例:如果實例宕機(jī),不會從服務(wù)列表剔除,也可以叫永久實例。

配置一個服務(wù)實例為永久實例:

spring:
  cloud:
    nacos:
      discovery:
        ephemeral: false # 設(shè)置為非臨時實例

Nacos和Eureka整體結(jié)構(gòu)類似,服務(wù)注冊、服務(wù)拉取、心跳等待,但是也存在一些差異:

微服務(wù)注冊nacos,# SpringCloud,微服務(wù),eureka,spring cloud,云原生

  • Nacos與eureka的共同點

    • 都支持服務(wù)注冊和服務(wù)拉取
    • 都支持服務(wù)提供者心跳方式做健康檢測
  • Nacos與Eureka的區(qū)別文章來源地址http://www.zghlxwxcb.cn/news/detail-784691.html

    • Nacos支持服務(wù)端主動檢測提供者狀態(tài):臨時實例采用心跳模式,非臨時實例采用主動檢測模式
    • 臨時實例心跳不正常會被剔除,非臨時實例則不會被剔除
    • Nacos支持服務(wù)列表變更的消息推送模式,服務(wù)列表更新更及時
    • Nacos集群默認(rèn)采用AP方式,當(dāng)集群中存在非臨時實例時,采用CP模式;Eureka采用AP方式

到了這里,關(guān)于【微服務(wù)】Nacos注冊中心的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • SpringCloud實用篇1——eureka注冊中心 Ribbon負(fù)載均衡原理 nacos注冊中心

    SpringCloud實用篇1——eureka注冊中心 Ribbon負(fù)載均衡原理 nacos注冊中心

    單體架構(gòu): 將業(yè)務(wù)的所有功能集中在一個項目中開發(fā),打成一個包部署。 優(yōu)點:架構(gòu)簡單;部署成本低(打jar包、部署、負(fù)載均衡就完成了) 缺點:耦合度高(維護(hù)困難、升級困難,不利于大項目開發(fā)) 分布式架構(gòu) 根據(jù)業(yè)務(wù)功能對系統(tǒng)做拆分,每個業(yè)務(wù)功能模塊作為獨立

    2024年02月13日
    瀏覽(19)
  • 38.SpringCloud—注冊中心(eureka/nacos)、負(fù)載均衡Ribbon

    38.SpringCloud—注冊中心(eureka/nacos)、負(fù)載均衡Ribbon

    目錄 一、SpringCloud。 (1)認(rèn)識微服務(wù)。 (1.1)單體架構(gòu)與分布式架構(gòu)(微服務(wù))。 (1.2)微服務(wù)技術(shù)對比。 (1.3)SpringCloud。 (2)服務(wù)拆分及遠(yuǎn)程調(diào)用。 (2.1)服務(wù)拆分。 (2.2)遠(yuǎn)程調(diào)用。 (3)提供者與消費者。 (4)Eureka注冊中心。 (4.1)Eureka的作用。? (4.2)搭建

    2024年02月09日
    瀏覽(28)
  • Spring Cloud微服務(wù)在Windows本地開發(fā)時禁用Nacos注冊中心注冊

    Spring Cloud微服務(wù)在Windows本地開發(fā)時禁用Nacos注冊中心注冊

    碼到三十五 : 個人主頁 心中有詩畫,指尖舞代碼,目光覽世界,步履越千山,人間盡值得 ! 本文將介紹如何在Spring Cloud微服務(wù)架構(gòu)中,實現(xiàn)在Windows本地開發(fā)環(huán)境下禁用服務(wù)自動注冊到Nacos注冊中心,而在Linux服務(wù)器環(huán)境下則自動啟用注冊功能。這樣的配置有助于開發(fā)者在本

    2024年03月18日
    瀏覽(107)
  • day10-Spring Cloud Alibaba Nacos-服務(wù)注冊與配置中心

    官網(wǎng):https://github.com/alibaba/nacos,Nacos官方中文手冊 Nacos:Spring Cloud Alibaba服務(wù)注冊與配置中心(非常詳細(xì)) (biancheng.net) Spring Cloud Alibaba系列-一文讀懂Nacos原理 - 掘金 (juejin.cn) Nacos /nɑ:k??s/ 是 Dynamic Naming and Configuration Service的首字母簡稱,一個更易于構(gòu)建云原生應(yīng)用的動態(tài)服

    2024年02月08日
    瀏覽(121)
  • Spring Cloud中微服務(wù)已經(jīng)啟動,但是沒有注冊到nacos中心

    Spring Cloud中微服務(wù)已經(jīng)啟動,但是沒有注冊到nacos中心

    今天寫了一個Spring Cloud模塊,然后啟動測試效果,結(jié)果一直報503或者401的錯誤,排查后發(fā)現(xiàn)是服務(wù)啟動,但是沒有注冊到nacos中心。 這是后端已經(jīng)啟動模塊: ?這是nacos中心: 可以看出,這里模塊沒有注冊到nacos中。 找了一下午的博客,發(fā)現(xiàn)那些不是說的spring-boot-starter-web起

    2024年02月10日
    瀏覽(90)
  • Spring Clould 注冊中心 - Eureka,Nacos

    Spring Clould 注冊中心 - Eureka,Nacos

    ?視頻地址:微服務(wù)(SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式) ?微服務(wù)涉及的的知識 ?總結(jié): ?郵儲的物聯(lián)網(wǎng)項目實用的是apollo作為配置中心,nocos作為注冊中心,feign進(jìn)行服務(wù)間調(diào)用 ? SpringClould?與SpringBoot的版本兼容 ?clould-demo:demo 提取碼:cocf 實現(xiàn)RestTemple也可以通過ht

    2024年02月12日
    瀏覽(23)
  • 【深入了解Spring Cloud Alibaba Nacos:服務(wù)注冊和配置中心】—— 每天一點小知識

    【深入了解Spring Cloud Alibaba Nacos:服務(wù)注冊和配置中心】—— 每天一點小知識

    ??????????????????????????????????????????????????????????? ?? 深入了解 S p r i n g C l o u d A l i b a b a N a c o s :服務(wù)注冊和配置中心 color{#FF1493}{深入了解Spring Cloud Alibaba Nacos:服務(wù)注冊和配置中心} 深入了解 Sp r in g Cl o u d A l ibaba N a cos :服務(wù)注

    2024年02月11日
    瀏覽(92)
  • 【微服務(wù)開篇-RestTemplate服務(wù)調(diào)用、Eureka注冊中心、Nacos注冊中心】

    【微服務(wù)開篇-RestTemplate服務(wù)調(diào)用、Eureka注冊中心、Nacos注冊中心】

    ?本篇用到的資料: https://gitee.com/Allengan/cloud-demo.git https://gitee.com/Allengan/cloud-demo.git 目錄 1.認(rèn)識微服務(wù) 1.1.單體架構(gòu) 1.2.分布式架構(gòu) 1.3.微服務(wù) 1.4.SpringCloud 1.5.總結(jié) 2.服務(wù)拆分和遠(yuǎn)程調(diào)用 2.1.服務(wù)拆分原則 2.2.服務(wù)拆分示例 2.2.1.導(dǎo)入Sql語句 2.2.2.導(dǎo)入demo工程 2.3.實現(xiàn)遠(yuǎn)程調(diào)用案例

    2024年02月08日
    瀏覽(26)
  • 微服務(wù)(二)——注冊中心(Eureka、Nacos)

    微服務(wù)(二)——注冊中心(Eureka、Nacos)

    注冊中心: 需求:當(dāng)一個服務(wù)提供者 Service 部署了多個實例交給 User 遠(yuǎn)程調(diào)用時: 服務(wù)消費者 User 應(yīng)該調(diào)用哪個實例,如何獲取其對應(yīng)地址和端口? User 如何獲知實例是否健康? 注冊中心作用: 幫助管理服務(wù),并幫助服務(wù)調(diào)用者選擇并調(diào)用服務(wù) 實時監(jiān)測服務(wù)實例是否健康

    2024年02月12日
    瀏覽(19)
  • 【Spring Cloud】深入探索 Nacos 注冊中心的原理,服務(wù)的注冊與發(fā)現(xiàn),服務(wù)分層模型,負(fù)載均衡策略,微服務(wù)的權(quán)重設(shè)置,環(huán)境隔離

    【Spring Cloud】深入探索 Nacos 注冊中心的原理,服務(wù)的注冊與發(fā)現(xiàn),服務(wù)分層模型,負(fù)載均衡策略,微服務(wù)的權(quán)重設(shè)置,環(huán)境隔離

    在微服務(wù)架構(gòu)中,服務(wù)注冊中心是整個體系中的關(guān)鍵組件之一。它負(fù)責(zé)服務(wù)的注冊、發(fā)現(xiàn)和管理,為微服務(wù)之間的通信提供了基礎(chǔ)設(shè)施。在這方面,Nacos(Namespace Aware Clustered Object Storage)作為一種服務(wù)發(fā)現(xiàn)和配置管理系統(tǒng),提供了豐富的功能,旨在簡化微服務(wù)架構(gòu)中的服務(wù)注

    2024年02月06日
    瀏覽(1451)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包