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

Spring Cloud Alibaba 微服務(wù)2,注冊(cè)中心演變 + Nacos注冊(cè)中心與配置中心

這篇具有很好參考價(jià)值的文章主要介紹了Spring Cloud Alibaba 微服務(wù)2,注冊(cè)中心演變 + Nacos注冊(cè)中心與配置中心。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

nacos 注冊(cè)中心變化,SpringCloud實(shí)戰(zhàn)教程,微服務(wù),java,spring cloud,nacos

專欄導(dǎo)讀

??作者簡(jiǎn)介:哪吒,CSDN2022博客之星Top1、CSDN2021博客之星Top2、多屆新星計(jì)劃導(dǎo)師?、博客專家?? ,專注Java硬核干貨分享,立志做到Java賽道全網(wǎng)Top N。

??本文收錄于Java基礎(chǔ)教程系列(進(jìn)階篇),本專欄是針對(duì)大學(xué)生、初級(jí)Java工程師精心打造,針對(duì)Java生態(tài),逐個(gè)擊破,不斷學(xué)習(xí),打通Java技術(shù)棧。

??訂閱后,可以閱讀Java基礎(chǔ)教程系列(進(jìn)階篇)中全部文章,包含Java基礎(chǔ)、Java高并發(fā)、Spring、MySQL等Java進(jìn)階技術(shù)棧。

??還可以訂閱其姐妹篇,Java基礎(chǔ)教程系列,包含全部Java基礎(chǔ)知識(shí)點(diǎn)、Java8新特性、Java集合、Java多線程、Java代碼實(shí)例,理論結(jié)合實(shí)戰(zhàn),實(shí)現(xiàn)Java的輕松學(xué)習(xí)。

??哪吒多年工作總結(jié):Java學(xué)習(xí)路線總結(jié),搬磚工逆襲Java架構(gòu)師。

??面試福音:10萬(wàn)字208道Java經(jīng)典面試題總結(jié)(附答案)

大家好,我是哪吒。

本系列為SpringCloud微服務(wù)系列,上一篇學(xué)習(xí)了Spring Cloud Alibaba 微服務(wù)1,系統(tǒng)架構(gòu)演變 + Nginx反向代理與負(fù)載均衡,讀哪吒編程,品技術(shù)人生。

一、什么是Nacos?

一個(gè)更易于構(gòu)建云原生應(yīng)用的動(dòng)態(tài)服務(wù)發(fā)現(xiàn)、服務(wù)配置和服務(wù)管理平臺(tái)。

nacos 注冊(cè)中心變化,SpringCloud實(shí)戰(zhàn)教程,微服務(wù),java,spring cloud,nacos

Nacos的關(guān)鍵特性:

nacos 注冊(cè)中心變化,SpringCloud實(shí)戰(zhàn)教程,微服務(wù),java,spring cloud,nacos

二、注冊(cè)中心演變及其設(shè)計(jì)思想

1、RestTemplate調(diào)用遠(yuǎn)程服務(wù)

如果此時(shí),服務(wù)端接口接口名或參數(shù)或請(qǐng)求方式更改了,那么就得同步修改此restTemplate方法,感覺很麻煩。
nacos 注冊(cè)中心變化,SpringCloud實(shí)戰(zhàn)教程,微服務(wù),java,spring cloud,nacos

@SpringBootTest
class Test {

   @Resource
   private RestTemplate restTemplate;

   @Test
   void testSimple()  {
      // 請(qǐng)求地址
      String url = "http://www.nzbc.com/updateUser";

      // 要發(fā)送的數(shù)據(jù)對(duì)象
      User user = new User();
      user.setUserId(1);
      user.setName("哪吒編程");
      user.setMsg("讀哪吒編程,品技術(shù)人生");

      // 發(fā)送post請(qǐng)求
      User result = restTemplate.postForObject(url, user, User.class);
      System.out.println(result);
   }
}

2、通過Nginx維護(hù)服務(wù)列表(upStream)

nacos 注冊(cè)中心變化,SpringCloud實(shí)戰(zhàn)教程,微服務(wù),java,spring cloud,nacos
通過Nginx維護(hù)服務(wù)列表(upStream),如果服務(wù)較多的話,在Nginx通過upStream的方式去配置的話,Nginx配置文件會(huì)變得非常的難以維護(hù)。

3、通過Nacos實(shí)現(xiàn)注冊(cè)中心

nacos 注冊(cè)中心變化,SpringCloud實(shí)戰(zhàn)教程,微服務(wù),java,spring cloud,nacos
這種是最簡(jiǎn)單的Nacos注冊(cè)中心,有若干個(gè)服務(wù),都注冊(cè)到Nacos注冊(cè)中心,調(diào)用之前,先到Nacos獲取對(duì)應(yīng)接口,然后進(jìn)行實(shí)際的調(diào)用。

但是,思考一個(gè)問題,如果Nacos宕機(jī)了,怎么辦?如果從Nacos獲取到接口后,調(diào)用服務(wù)2時(shí),服務(wù)2宕機(jī)了,怎么辦?

4、心跳版Nacos

nacos 注冊(cè)中心變化,SpringCloud實(shí)戰(zhàn)教程,微服務(wù),java,spring cloud,nacos

心跳版Nacos,服務(wù)1和服務(wù)2和Nacos之間維護(hù)一個(gè)心跳關(guān)系,每5秒跳一次,頻率不能太快或者太慢,否者會(huì)嗝屁的。

如果Nacos在5秒內(nèi)沒有收到心跳,則表示服務(wù)掛了,Nacos會(huì)下線此服務(wù)。對(duì)于超過15秒沒有收到客戶端心跳的服務(wù)實(shí)例,會(huì)將它的healthy屬性置為false,客戶端無(wú)法調(diào)用healthy為false的服務(wù),如果超過30秒沒有收到心跳,Nacos會(huì)直接將此服務(wù)剔除。

也可以通過服務(wù)端主動(dòng)注銷的方式,停止注冊(cè)。

服務(wù)1調(diào)用服務(wù)2時(shí),服務(wù)1會(huì)通過定時(shí)任務(wù)到Nacos中獲取在線的服務(wù),保證所調(diào)用的服務(wù)一直都是健康在線的狀態(tài)。獲取到之后,用緩存將其保存起來(lái),然后通過負(fù)載均衡器調(diào)用服務(wù)2,此時(shí),將不再使用服務(wù)端的負(fù)載均衡Nginx了。

三、Nacos Discovery

SpringBoot中引入Nacos Discovery,實(shí)現(xiàn)與Nacos的無(wú)縫連接,Nacos Discovery可以將服務(wù)自動(dòng)注冊(cè)到Nacos服務(wù)端,并且能夠動(dòng)態(tài)感知此服務(wù),并刷新服務(wù)列表。并將服務(wù)的host、port、URL等信息注冊(cè)到Nacos。

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

Nacos 的配置項(xiàng)信息:

nacos 注冊(cè)中心變化,SpringCloud實(shí)戰(zhàn)教程,微服務(wù),java,spring cloud,nacos

四、Nacos核心功能

nacos 注冊(cè)中心變化,SpringCloud實(shí)戰(zhàn)教程,微服務(wù),java,spring cloud,nacos

1、服務(wù)注冊(cè)

Nacos Client會(huì)通過發(fā)送REST請(qǐng)求向Nacos Server注冊(cè)自己的服務(wù),提供自身的元數(shù)據(jù),比如host、port、url等信息,Nacos Server在收到注冊(cè)請(qǐng)求后,會(huì)將這些數(shù)據(jù)信息存儲(chǔ)在一個(gè)雙層的內(nèi)存map中。

2、服務(wù)心跳

服務(wù)注冊(cè)后,服務(wù)消費(fèi)者和Nacos Server之間會(huì)維護(hù)一個(gè)心跳,定時(shí)通知server,此服務(wù)還活著,防止被剔除掉。

3、服務(wù)同步

Nacos Server集群之間會(huì)互相同步已注冊(cè)的服務(wù),用來(lái)保證服務(wù)列表的一致性。

4、服務(wù)發(fā)現(xiàn)

服務(wù)消費(fèi)者在調(diào)用服務(wù)提供者的服務(wù)時(shí),會(huì)發(fā)送一個(gè)REST請(qǐng)求到Nacos Server,獲取健康的服務(wù)列表,然后將其緩存到本地,同時(shí)開啟一個(gè)定時(shí)任務(wù),定時(shí)訪問Nacos Server,然后更新本地緩存。

5、服務(wù)健康檢查

Nacos Server會(huì)開啟一個(gè)定時(shí)任務(wù)用來(lái)檢查注冊(cè)服務(wù)實(shí)例的健康情況,對(duì)于超過15秒沒有收到客戶端心跳的服務(wù)實(shí)例,會(huì)將它的healthy屬性置為false,客戶端無(wú)法調(diào)用healthy為false的服務(wù),如果超過30秒沒有收到心跳,Nacos會(huì)直接將此服務(wù)剔除。

五、作為注冊(cè)中心

  1. Nacos目前功能最全,用的也最多;
  2. Eureka,因?yàn)橥Ω木壒剩容^新的技術(shù)都不支持了,目前很多公司都將Eureka換成Nacos了,不推薦使用;
  3. Zookeeper,用的最多的地方就是和Dubbo一起使用,不支持負(fù)載均衡策略,但可以通過其它組件實(shí)現(xiàn);
  4. Consul支持的也很多;
  5. CoreDNS不推薦使用;

CAP,C一致性,A可用性,P分區(qū)容錯(cuò)性

Nacos Eureka Zookeeper Consul
一致性協(xié)議 CP + AP CP AP CP
訪問協(xié)議 HTTP/DNS HTTP TCP HTTP/DNS
健康檢查 TCP/HTTP/MYSQL/Client Beat Client Beat Keep Live TCP/HTT[/gRPC/Cmd
負(fù)載均衡策略 權(quán)重/metadata/Seletor Ribbon - Fabio
雪崩保護(hù) 無(wú) 無(wú)
自動(dòng)注銷 支持 支持 支持 支持
監(jiān)聽 支持 支持 支持 支持
多數(shù)據(jù)中心 支持 支持 支持 不支持
跨注冊(cè)中心同步 支持 不支持 不支持 支持
Spring Cloud集成 支持 支持 支持 支持
Dubbo集成 支持 不支持 支持 支持
K8S集成 支持 不支持 支持 不支持

六、作為配置中心

1、SpringBoot集成Nacos

Nacos使用key/value形式存儲(chǔ)配置信息,為分布式系統(tǒng)中的外部化配置提供服務(wù)支持。

(1)maven文件

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

(2)配置文件

spring.application.name=nacos-config
spring.cloud.nacos.config.server-addr=127.0.0.1:8848

blog.name=哪吒編程
blog.language=java

(3)主方法啟動(dòng)類

@SpringBootApplication
public class ProviderApplication {
    public static void main(String[] args) {
        ConfigurableApplicationContext applicationContext = SpringApplication.run(ProviderApplication.class, args);
        String name = applicationContext.getEnvironment().getProperty("blog.name");
        String language = applicationContext.getEnvironment().getProperty("blog.language");
        System.err.println("名字 :"+name+"; 擅長(zhǎng)技術(shù): "+language);
    }
}

2、支持配置的動(dòng)態(tài)更新

一秒刷新一次。

@SpringBootApplication
public class ProviderApplication {
    public static void main(String[] args) {
        ConfigurableApplicationContext applicationContext = SpringApplication.run(ProviderApplication.class, args);
        while(true) {
            //當(dāng)動(dòng)態(tài)配置刷新時(shí),會(huì)更新到 Enviroment中,因此這里每隔一秒中從Enviroment中獲取配置
            String name = applicationContext.getEnvironment().getProperty("blog.name");
       	 	String language = applicationContext.getEnvironment().getProperty("blog.language");
        	System.err.println("名字 :"+name+"; 擅長(zhǎng)技術(shù): "+language);
            TimeUnit.SECONDS.sleep(1);
        }
    }
}

3、可支持profile粒度的配置

4、支持自定義 namespace 的配置

開發(fā)測(cè)試環(huán)境和生產(chǎn)環(huán)境的資源(如配置、服務(wù))隔離等,比如dev和prod。

5、支持自定義 Group 的配置

在沒有明確指定 ${spring.cloud.nacos.config.group}配置的情況下, 默認(rèn)使用的是 DEFAULT_GROUP 。如果需要自定義自己的 Group,可以通過以下配置來(lái)實(shí)現(xiàn):

spring.cloud.nacos.config.group=DEVELOP_GROUP

6、配置優(yōu)先級(jí)

profile > 默認(rèn)配置文件 > extension-configs(下標(biāo)越大優(yōu)先級(jí)越高) > shared-configs(下標(biāo)越大優(yōu)先級(jí)越高)

7、@RefreshScope

一般都是通過@Value的形式讀取配置文件中的信息,但是無(wú)法感知修改后的值,需要利用@RefreshScope動(dòng)態(tài)刷新。

8、Spring Cloud Config 橫向?qū)Ρ萅acos

  1. Spring Cloud Config需要結(jié)合Git使用,動(dòng)態(tài)變更需要配合Bus 消息總線來(lái)通知所有的客戶端變化;
  2. Spring Cloud Config沒有可視化界面;
  3. Nacos使用長(zhǎng)輪詢更新配置,速度上秒殺Spring Cloud Config;

上一篇:Spring Cloud Alibaba 微服務(wù)1,系統(tǒng)架構(gòu)演變 + Nginx反向代理與負(fù)載均衡

下一篇:Java學(xué)習(xí)路線總結(jié),搬磚工逆襲Java架構(gòu)師

nacos 注冊(cè)中心變化,SpringCloud實(shí)戰(zhàn)教程,微服務(wù),java,spring cloud,nacos
nacos 注冊(cè)中心變化,SpringCloud實(shí)戰(zhàn)教程,微服務(wù),java,spring cloud,nacos

Java學(xué)習(xí)路線總結(jié),搬磚工逆襲Java架構(gòu)師

10萬(wàn)字208道Java經(jīng)典面試題總結(jié)(附答案)

Java基礎(chǔ)教程系列

Java基礎(chǔ)教程系列(進(jìn)階篇)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-783248.html

到了這里,關(guān)于Spring Cloud Alibaba 微服務(wù)2,注冊(cè)中心演變 + Nacos注冊(cè)中心與配置中心的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 【微服務(wù) Spring Cloud Alibaba】- Nacos 服務(wù)注冊(cè)中心

    【微服務(wù) Spring Cloud Alibaba】- Nacos 服務(wù)注冊(cè)中心

    目錄 1. 什么是注冊(cè)中心? 1.2 注冊(cè)中心的作用 2. SpringBoot 整合 Nacos 實(shí)現(xiàn)服務(wù)注冊(cè)中心 2.1 將服務(wù)注冊(cè)到 Nacos 2.2 實(shí)現(xiàn)消費(fèi)者 3. 服務(wù)列表各個(gè)參數(shù)的含義、作用以及應(yīng)用場(chǎng)景 注冊(cè)中心是微服務(wù)架構(gòu)中的一個(gè)重要組件,它用于實(shí)現(xiàn) 服務(wù)注冊(cè) 與 服務(wù)發(fā)現(xiàn) 。 【思考一】什么叫服務(wù)

    2024年02月06日
    瀏覽(94)
  • Spring Cloud Alibaba nacos配置中心

    Spring Cloud Alibaba nacos配置中心

    第一章 Java線程池技術(shù)應(yīng)用 第二章 CountDownLatch和Semaphone的應(yīng)用 第三章 Spring Cloud 簡(jiǎn)介 第四章 Spring Cloud Netflix 之 Eureka 第五章 Spring Cloud Netflix 之 Ribbon 第六章 Spring Cloud 之 OpenFeign 第七章 Spring Cloud 之 GateWay 第八章 Spring Cloud Netflix 之 Hystrix 第九章 代碼管理gitlab 使用 第十章 Spr

    2024年02月08日
    瀏覽(97)
  • Spring Cloud Alibaba Nacos 構(gòu)建配置中心

    Spring Cloud Alibaba Nacos 構(gòu)建配置中心

    登錄 Nacos 面板,依次點(diǎn)擊左側(cè)菜單欄【命名空間→新建命名空間】、填寫命名空間名和描述信息,點(diǎn)擊【確定】: 依次點(diǎn)擊左側(cè)菜單欄【配置管理→配置列表】、切換到指定命名空間【此處為 shop】、點(diǎn)擊右側(cè)【+】號(hào): 添加配置 填寫【Data ID】要求組內(nèi)唯一,【Group】組名,

    2024年02月08日
    瀏覽(88)
  • Spring Cloud Alibaba - 服務(wù)注冊(cè)與發(fā)現(xiàn)(Nacos)

    ?作者簡(jiǎn)介:熱愛Java后端開發(fā)的一名學(xué)習(xí)者,大家可以跟我一起討論各種問題喔。 ??個(gè)人主頁(yè):Hhzzy99 ??個(gè)人信條:堅(jiān)持就是勝利! ??當(dāng)前專欄:微服務(wù) ??本文內(nèi)容:Spring Cloud Alibaba - 服務(wù)注冊(cè)與發(fā)現(xiàn)(Nacos)。 在微服務(wù)架構(gòu)中,服務(wù)注冊(cè)與發(fā)現(xiàn)是其中的重要一環(huán)。服務(wù)

    2024年02月07日
    瀏覽(233)
  • 【Spring Cloud Alibaba】2.服務(wù)注冊(cè)與發(fā)現(xiàn)(Nacos安裝)

    【Spring Cloud Alibaba】2.服務(wù)注冊(cè)與發(fā)現(xiàn)(Nacos安裝)

    我們要搭建一個(gè) Spring Cloud Alibaba 項(xiàng)目就繞不開 Nacos ,阿里巴巴提供的 Nacos 組件,可以提供服務(wù)注冊(cè)與發(fā)現(xiàn)和分布式配置服務(wù),擁有著淘寶雙十一十幾年的流量經(jīng)驗(yàn),還是非常的可靠的。 Nacos 依賴 Java 環(huán)境來(lái)運(yùn)行。如果您是從代碼開始構(gòu)建并運(yùn)行Nacos,還需要為此配置 Maven環(huán)

    2024年01月23日
    瀏覽(23)
  • Spring Cloud Gateway集成Nacos作為注冊(cè)中心和配置中心

    本篇文章將介紹Spring Cloud Alibaba體系下Spring Cloud Gateway的搭建,服務(wù)注冊(cè)中心和分布式配置中心使用Nacos,后續(xù)將會(huì)持續(xù)更新,介紹集成Sentinel,如何做日志鏈路追蹤,如何做全鏈路灰度發(fā)布設(shè)計(jì),以及Spring Cloud Gateway的擴(kuò)展等。 ? Spring Boot,Spring Cloud,Discovery,Config等基礎(chǔ)依

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

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

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

    2024年03月18日
    瀏覽(107)
  • Spring Cloud中微服務(wù)已經(jīng)啟動(dòng),但是沒有注冊(cè)到nacos中心

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

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

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

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

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

    2024年02月06日
    瀏覽(1451)
  • 微服務(wù) – Spring Cloud – Nacos 配置中心

    Data ID : nacos-config-client-dev.yaml Group: DEV-CLOUD2023

    2024年02月11日
    瀏覽(90)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包