什么是Nacos辞做?Nacos注冊配置中心介紹

一莺掠、什么是Nacos

英文全稱Dynamic Naming and Configuration Service,Na為naming/nameServer即注冊中心,co為configuration即注冊中心闯冷,service是指該注冊/配置中心都是以服務(wù)為核心砂心。服務(wù)在nacos是一等公民

二、Nacos原理

nacos簡單介紹

Nacos注冊中心分為server與client蛇耀,server采用Java編寫辩诞,為client提供注冊發(fā)現(xiàn)服務(wù)與配置服務(wù)。而client可以用多語言實現(xiàn)纺涤,client與微服務(wù)嵌套在一起译暂,nacos提供sdk和openApi,如果沒有sdk也可以根據(jù)openApi手動寫服務(wù)注冊與發(fā)現(xiàn)和配置拉取的邏輯


nacos服務(wù)領(lǐng)域模型

Nacos服務(wù)領(lǐng)域模型主要分為命名空間撩炊、集群外永、服務(wù)。在下圖的分級存儲模型可以看到拧咳,在服務(wù)級別伯顶,保存了健康檢查開關(guān)、元數(shù)據(jù)骆膝、路由機制祭衩、保護閾值等設(shè)置,而集群保存了健康檢查模式阅签、元數(shù)據(jù)汪厨、同步機制等數(shù)據(jù),實例保存了該實例的ip愉择、端口劫乱、權(quán)重、健康檢查狀態(tài)锥涕、下線狀態(tài)衷戈、元數(shù)據(jù)、響應(yīng)時間层坠。這些數(shù)據(jù)的作用會在第三章講到

image.png

2.1注冊中心原理

服務(wù)注冊原理

服務(wù)注冊方法:以Java nacos client v1.0.1 為例子殖妇,服務(wù)注冊的策略的是每5秒向nacos server發(fā)送一次心跳,心跳帶上了服務(wù)名破花,服務(wù)ip谦趣,服務(wù)端口等信息。同時 nacos server也會向client 主動發(fā)起健康檢查座每,支持tcp/http檢查前鹅。如果15秒內(nèi)無心跳且健康檢查失敗則認(rèn)為實例不健康,如果30秒內(nèi)健康檢查失敗則剔除實例峭梳。

2.2 配置中心原理

image.png

三舰绘、 Nacos使用方法

3.1創(chuàng)建命名空間

不同的命名空間邏輯上是隔離的,不特殊設(shè)置的情況下,服務(wù)不會跨命名空間請求捂寿,命名空間主要的作用是區(qū)分服務(wù)使用的范圍口四,比如開發(fā)、測試秦陋、生產(chǎn)蔓彩、灰度可以分別設(shè)置四個命名空間來互相隔離。

新建命名空間

如圖所示驳概,在控制臺的 服務(wù)管理-命名空間-新建命名空間按鈕可以創(chuàng)建新的命名空間赤嚼,命名空間創(chuàng)建后,會在列表顯示命名空間ID抡句,這個ID后面會用在服務(wù)的配置文件中

3.2在服務(wù)上配置注冊、配置中心

以springcloud為例杠愧,首先用maven導(dǎo)入nacos clinet的依賴:

     <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
            <version>0.2.1.RELEASE</version>
            <exclusions>
                <exclusion>
                    <groupId>com.alibaba.nacos</groupId>
                    <artifactId>nacos-client</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            <version>0.2.1.RELEASE</version>
            <exclusions>
                <exclusion>
                    <groupId>com.alibaba.nacos</groupId>
                    <artifactId>nacos-client</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
     

先導(dǎo)入springcloud的alibaba-nacos-config和alibaba-nacos-discovery兩個依賴待榔,這兩個依賴是用于nacos clinet與cloud結(jié)合的工具,0.2.x對應(yīng)springboot 2.x.x ,0.1.x對應(yīng)springboot 1.x.x流济。這兩個組件可以和各種版本的nacos-client結(jié)合锐锣。把其中的nacos-clinet依賴給排除,引入想要引入的nacosclinet版本绳瘟,如下:

   <!-- https://mvnrepository.com/artifact/com.alibaba.nacos/nacos-client -->
        <dependency>
            <groupId>com.alibaba.nacos</groupId>
            <artifactId>nacos-client</artifactId>
            <version>1.0.1</version>
        </dependency>

在bootstrap.properties上添加配置中心的配置

spring.cloud.nacos.config.server-addr=nacos.e.189.cn:80
spring.cloud.nacos.config.namespace=命名空間id

在application-xxx.properties新增如下配置

spring.cloud.nacos.discovery.server-addr=nacos.e.189.cn:80
spring.cloud.nacos.discovery.namespace=命名空間id

如果springboot啟動類沒有@EnableDiscover注解則加上
完成如上更改雕憔,即可使用Nacos注冊/配置服務(wù)

3.3服務(wù)間使用feign調(diào)用

演示:
使用Feign、Ribbon均可糖声,在這不做過多介紹

3.4通過配置更改動態(tài)刷新參數(shù)

普通application參數(shù)在配置中心直接配置皆可斤彼,如果需要可以動態(tài)刷新的配置,需要在相應(yīng)類上加上@RefreshScope注解,示例如下蘸泻,當(dāng)在nacos配置中心更改配置后琉苇,方法getId的值也會刷新。

@RefreshScope
public class IdEntity {
    @Value("${id}")
    private int id;
    public int getId(){
        return this.id;
    }
}

配置中心參數(shù)修改/設(shè)置
如下兩張圖:在nacos控制臺的配置管理-配置列表中頂部選擇相應(yīng)的命名空間悦施,點擊列表右上角的加號新增配置并扇,Data ID 為 項目名-{spring.profiles.active}.properties,Group如果在bootstrap.properties中不指定則填默認(rèn)的DEFAULT_GROUP,描述寫該配置的描述抡诞,配置內(nèi)容填寫Properties格式或者Yaml格式穷蛹。

nacos控制臺-配置管理

nacos控制臺-新建配置

3.5 nacos其他功能使用與介紹

控制臺手動上下線實例

在控制臺的服務(wù)管理-服務(wù)列表選擇一個服務(wù)點擊詳情,在下方的集群列表可以看到有上線/下線按鈕昼汗,點擊即可以對該實例執(zhí)行上線/下線操作肴熏,下線后的實例不會被請求

控制臺手動上下線

配置實例權(quán)重

可以通過手動配置權(quán)重來控制流量,當(dāng)一個集群內(nèi)兩個實例顷窒,權(quán)重越高扮超,到達該實例的請求比例越多。


image.png

權(quán)重的初始值是1

配置保護閾值

保護閾值的范圍是0~1
服務(wù)的健康比例=服務(wù)的健康實例/總實例個數(shù)
當(dāng)服務(wù)健康比例<=保護閾值時候,無論實例健不健康都會返回給調(diào)用方
當(dāng)服務(wù)健康比例>保護閾值的時候出刷,只會返回健康實例給調(diào)用方
服務(wù)管理-服務(wù)列表選擇一個服務(wù)點擊詳情可以配置

image.png

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末璧疗,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子馁龟,更是在濱河造成了極大的恐慌崩侠,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,198評論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件坷檩,死亡現(xiàn)場離奇詭異却音,居然都是意外死亡,警方通過查閱死者的電腦和手機矢炼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評論 3 398
  • 文/潘曉璐 我一進店門系瓢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人句灌,你說我怎么就攤上這事夷陋。” “怎么了胰锌?”我有些...
    開封第一講書人閱讀 167,643評論 0 360
  • 文/不壞的土叔 我叫張陵骗绕,是天一觀的道長。 經(jīng)常有香客問我资昧,道長酬土,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,495評論 1 296
  • 正文 為了忘掉前任格带,我火速辦了婚禮撤缴,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘叽唱。我一直安慰自己腹泌,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,502評論 6 397
  • 文/花漫 我一把揭開白布尔觉。 她就那樣靜靜地躺著凉袱,像睡著了一般。 火紅的嫁衣襯著肌膚如雪侦铜。 梳的紋絲不亂的頭發(fā)上专甩,一...
    開封第一講書人閱讀 52,156評論 1 308
  • 那天,我揣著相機與錄音钉稍,去河邊找鬼涤躲。 笑死,一個胖子當(dāng)著我的面吹牛贡未,可吹牛的內(nèi)容都是我干的种樱。 我是一名探鬼主播蒙袍,決...
    沈念sama閱讀 40,743評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼嫩挤!你這毒婦竟也來了害幅?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,659評論 0 276
  • 序言:老撾萬榮一對情侶失蹤岂昭,失蹤者是張志新(化名)和其女友劉穎以现,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體约啊,經(jīng)...
    沈念sama閱讀 46,200評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡邑遏,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,282評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了恰矩。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片记盒。...
    茶點故事閱讀 40,424評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖外傅,靈堂內(nèi)的尸體忽然破棺而出纪吮,到底是詐尸還是另有隱情,我是刑警寧澤栏豺,帶...
    沈念sama閱讀 36,107評論 5 349
  • 正文 年R本政府宣布彬碱,位于F島的核電站豆胸,受9級特大地震影響奥洼,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜晚胡,卻給世界環(huán)境...
    茶點故事閱讀 41,789評論 3 333
  • 文/蒙蒙 一灵奖、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧估盘,春花似錦瓷患、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至箫踩,卻和暖如春爱态,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背境钟。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評論 1 271
  • 我被黑心中介騙來泰國打工锦担, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人慨削。 一個月前我還...
    沈念sama閱讀 48,798評論 3 376
  • 正文 我出身青樓洞渔,卻偏偏與公主長得像套媚,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子磁椒,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,435評論 2 359

推薦閱讀更多精彩內(nèi)容