Spring Cloud Alibaba 之 Nacos教程詳解
Nacos 技術(shù)講解
一提到分布式系統(tǒng)就不的不提一下 CAP 原則
Nacos簡(jiǎn)介
Nacos是阿里的一個(gè)開源產(chǎn)品,它是針對(duì)微服務(wù)架構(gòu)中的服務(wù)發(fā)現(xiàn)、配置管理、服務(wù)治理的綜合性解決方案。
官方介紹是這樣的:
Nacos致力于幫助您發(fā)現(xiàn)、配置和管理微服務(wù)。Nacos提供了一組簡(jiǎn)單易用的特性集,幫助您實(shí)現(xiàn)動(dòng)態(tài)服務(wù)發(fā)現(xiàn)、服務(wù)配置管理、服務(wù)及流量管理。Nacos幫助您更敏捷和容易地構(gòu)建、交付和管理微服務(wù)平臺(tái)。Nacos是構(gòu)建以“服務(wù)”為中心的現(xiàn)代應(yīng)用架構(gòu)的服務(wù)基礎(chǔ)設(shè)施。
什么是CAP
CAP原則又稱CAP定理,指的是在一個(gè)分布式系統(tǒng)中,一致性(Consistency)、可用性(Availability)、分區(qū)容錯(cuò)性(Partition tolerance)。CAP 原則指的是,這三個(gè)要素最多只能同時(shí)實(shí)現(xiàn)兩點(diǎn),不可能三者兼顧。
CAP 的原則下 Alibaba Naos 同時(shí)支持AP和CP模式,他根據(jù)服務(wù)注冊(cè)選擇臨時(shí)和永久來決定走AP模式還是CP模式,他這里支持CP模式對(duì)于我的理解來說,應(yīng)該是為了配置中心集群,因?yàn)閚acos可以同時(shí)作為注冊(cè)中心和配置中心,因?yàn)樗呐渲弥行男畔⑹潜4嬖趎acos里面的,假如因?yàn)閚acos其中一臺(tái)掛掉后,還沒有同步配置信息, 就可能發(fā)生配置不一致的情況., 配置中心的配置變更是服務(wù)端有監(jiān)聽器,配置中心發(fā)生配置變化, 然后服務(wù)端會(huì)監(jiān)聽到配置發(fā)生變化,從而做出改變
下面我搭建一個(gè)簡(jiǎn)單的微服務(wù)系統(tǒng),針對(duì)這個(gè)系統(tǒng)進(jìn)行講解
(個(gè)人服務(wù)器,流量有限 ,請(qǐng)大家珍惜)點(diǎn)擊項(xiàng)目體驗(yàn)地址https://ityml.com/index
系統(tǒng)架構(gòu)圖:

這個(gè)主要完成一個(gè)一個(gè)前端頁(yè)面進(jìn)行實(shí)時(shí)計(jì)算的功能,大家可以理解為一個(gè)簡(jiǎn)單的計(jì)算器.
- website : 前端
- Gateway :服務(wù)網(wǎng)關(guān)
- UserCenter : 用戶服務(wù)
- MqCenter: 消息服務(wù)
- AlogirthmCenter: 計(jì)算服務(wù)
- ConfigCenter: 配置中心
- ServiceDiscovery(Nacos):服務(wù)發(fā)現(xiàn)
- CPP 為C 語(yǔ)言編寫的計(jì)算流程
此項(xiàng)目包括用到的技術(shù)棧包括,Spring Cloud Alibaba/Spring Boot/Mysql/MQ/Linux 等
什么是Nacos
官方文檔
Nacos提供「注冊(cè)中心」、「配置中心」和「動(dòng)態(tài)DNS服務(wù)」三大功能。
上面是Nacos 的官網(wǎng)大家可以自行了解下,對(duì)Nacos 做一個(gè)深入的了解,正所謂師傅領(lǐng)進(jìn)門,修行在個(gè)人,大家還要多學(xué)習(xí),多了解
天也不早了 ,人也不少了,閑話少說,先干正事。
** Nacos 下載地址**
選擇對(duì)應(yīng)版本進(jìn)行解壓(注意 Nacos 解壓后 是一個(gè)完整的運(yùn)行包,如果用的不熟練,不要?jiǎng)永锩娴呐渲眯畔ⅲ?/p>

下載完成后解壓后進(jìn)入到 bin 目錄 在終端運(yùn)行命令
MAC
sh startup.sh -m standalone
(standalone代表著單機(jī)模式運(yùn)行,后看會(huì)單獨(dú)講解集群模式的搭建和啟動(dòng)方法)Windows
cmd startup.cmd
啟動(dòng)成功后 默認(rèn)賬號(hào)密碼 nacos/nacos(初始賬號(hào)密碼)

登錄后可以看到右上角中英文切換,英語(yǔ)不好的同學(xué)們 可以切換到中文

配置管理主要是用來做項(xiàng)目配置,比如配置文件等可以用nacos來管理 因?yàn)閚acos不僅僅是服務(wù)中心,也是配置中心(后面有講)
我們開發(fā)項(xiàng)目的配置一般有以下幾種做法:
1. 硬編碼--作為類字段的形式存在,導(dǎo)致:動(dòng)態(tài)修改困難,沒有持久化
2. 配置文件( properties、yml 文件等)--導(dǎo)致:配置動(dòng)態(tài)變更,可能需要重啟應(yīng)用,讓配置生效。當(dāng)然,你也可以在代碼中增加一個(gè)定時(shí)任務(wù),如每隔 10s 讀取配置文件內(nèi)容,讓最新的配置能夠及時(shí)在應(yīng)用中生效,這樣也就免 去了重啟應(yīng)用這個(gè)“較重”的運(yùn)維操作。
3. DB 配置表--導(dǎo)致:配置動(dòng)態(tài)變更,可能需要通過暴露管理接口去解決。
Nacos 真正將配置從應(yīng)用中剝離出來,統(tǒng)一管理,優(yōu)雅的解決了配置的動(dòng)態(tài)變更、持久化、運(yùn)維成本等問題。應(yīng)用自身既不需要去添加管理配置接口,也不需要自己去實(shí)現(xiàn)配置的持久化,更不需要引入“定時(shí)任務(wù)”以便降低運(yùn)維成本。Nacos 提供的配置管理功能,將配置相關(guān)的所有邏輯都收攏,并且提供簡(jiǎn)單易用的 SDK,讓應(yīng)用的配置可以非常方便被 Nacos 管理起來不僅如此,Nacos提供 DNS-F功能, 可以與K8S、Spring Cloud和Dubbo等多個(gè)開源產(chǎn)品進(jìn)行集成,實(shí)現(xiàn)服務(wù)的注冊(cè)功能。
- 服務(wù)發(fā)現(xiàn)使用來管理注冊(cè)到nacos 上的微服務(wù),可以實(shí)現(xiàn)服務(wù)下線等功能。
- 命名空間是用來做服務(wù)環(huán)境區(qū)分,當(dāng)項(xiàng)目需要開發(fā),測(cè)試, 生產(chǎn)等多個(gè)不同的配置, 命名空間就可以做配置隔離。
- 集群管理 后面會(huì)單獨(dú)講解
到此這篇關(guān)于Spring Cloud Alibaba 之 Nacos的文章就介紹到這了,更多相關(guān)Spring Cloud Alibaba Nacos內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java 手動(dòng)解析不帶引號(hào)的JSON字符串的操作
這篇文章主要介紹了Java 手動(dòng)解析不帶引號(hào)的JSON字符串的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-10-10
java實(shí)現(xiàn)Excel的導(dǎo)入、導(dǎo)出
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)Excel的導(dǎo)入、導(dǎo)出的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06
Spring?Boot?集成JWT實(shí)現(xiàn)前后端認(rèn)證的示例代碼
小程序、H5應(yīng)用的快速發(fā)展,使得前后端分離已經(jīng)成為了趨勢(shì),本文主要介紹了Spring?Boot?集成JWT實(shí)現(xiàn)前后端認(rèn)證,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04
Java實(shí)現(xiàn)分布式系統(tǒng)限流
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)分布式系統(tǒng)限流,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-08-08
手工體驗(yàn)smtp和pop3協(xié)議 郵件實(shí)現(xiàn)詳解(二)
POP3/IMAP協(xié)議定義了郵件客戶端軟件和POP3郵件服務(wù)器的通信規(guī)則,這篇文章我們就來手工體驗(yàn)SMTP和POP3協(xié)議的奧秘,感興趣的小伙伴們可以參考一下2017-10-10
Java中使用Hutool進(jìn)行AES加密解密的方法舉例
AES是一種對(duì)稱加密,所謂對(duì)稱加密就是加密與解密使用的秘鑰是一個(gè),下面這篇文章主要介紹了Java中使用Hutool進(jìn)行AES加密解密的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-04-04
springboot導(dǎo)出excel多個(gè)sheet導(dǎo)出的實(shí)現(xiàn)
在Java開發(fā)過程中,合理配置pom.xml文件對(duì)項(xiàng)目的管理和構(gòu)建至關(guān)重要,通過添加依賴管理項(xiàng)目所需的庫(kù),簡(jiǎn)化了項(xiàng)目構(gòu)建過程,同時(shí),掌握導(dǎo)出excel工具類的使用,可以有效地處理數(shù)據(jù)導(dǎo)出需求,提高工作效率,本文結(jié)合個(gè)人經(jīng)驗(yàn)2024-10-10

