Spring Cloud Alibaba 之 Nacos教程詳解
Nacos 技術(shù)講解
一提到分布式系統(tǒng)就不的不提一下 CAP 原則
Nacos簡介
Nacos是阿里的一個開源產(chǎn)品,它是針對微服務(wù)架構(gòu)中的服務(wù)發(fā)現(xiàn)、配置管理、服務(wù)治理的綜合性解決方案。
官方介紹是這樣的:
Nacos致力于幫助您發(fā)現(xiàn)、配置和管理微服務(wù)。Nacos提供了一組簡單易用的特性集,幫助您實現(xiàn)動態(tài)服務(wù)發(fā)現(xiàn)、服務(wù)配置管理、服務(wù)及流量管理。Nacos幫助您更敏捷和容易地構(gòu)建、交付和管理微服務(wù)平臺。Nacos是構(gòu)建以“服務(wù)”為中心的現(xiàn)代應(yīng)用架構(gòu)的服務(wù)基礎(chǔ)設(shè)施。
什么是CAP
CAP原則又稱CAP定理,指的是在一個分布式系統(tǒng)中,一致性(Consistency)、可用性(Availability)、分區(qū)容錯性(Partition tolerance)。CAP 原則指的是,這三個要素最多只能同時實現(xiàn)兩點,不可能三者兼顧。
CAP 的原則下 Alibaba Naos 同時支持AP和CP模式,他根據(jù)服務(wù)注冊選擇臨時和永久來決定走AP模式還是CP模式,他這里支持CP模式對于我的理解來說,應(yīng)該是為了配置中心集群,因為nacos可以同時作為注冊中心和配置中心,因為他的配置中心信息是保存在nacos里面的,假如因為nacos其中一臺掛掉后,還沒有同步配置信息, 就可能發(fā)生配置不一致的情況., 配置中心的配置變更是服務(wù)端有監(jiān)聽器,配置中心發(fā)生配置變化, 然后服務(wù)端會監(jiān)聽到配置發(fā)生變化,從而做出改變下面我搭建一個簡單的微服務(wù)系統(tǒng),針對這個系統(tǒng)進(jìn)行講解
(個人服務(wù)器,流量有限 ,請大家珍惜)點擊項目體驗地址https://ityml.com/index
系統(tǒng)架構(gòu)圖:
這個主要完成一個一個前端頁面進(jìn)行實時計算的功能,大家可以理解為一個簡單的計算器.
website : 前端 Gateway :服務(wù)網(wǎng)關(guān) UserCenter : 用戶服務(wù) MqCenter: 消息服務(wù) AlogirthmCenter: 計算服務(wù) ConfigCenter: 配置中心 ServiceDiscovery(Nacos):服務(wù)發(fā)現(xiàn) CPP 為C 語言編寫的計算流程此項目包括用到的技術(shù)棧包括,Spring Cloud Alibaba/Spring Boot/Mysql/MQ/Linux 等
什么是Nacos
官方文檔Nacos提供「注冊中心」、「配置中心」和「動態(tài)DNS服務(wù)」三大功能。上面是Nacos 的官網(wǎng)大家可以自行了解下,對Nacos 做一個深入的了解,正所謂師傅領(lǐng)進(jìn)門,修行在個人,大家還要多學(xué)習(xí),多了解
天也不早了 ,人也不少了,閑話少說,先干正事。** Nacos 下載地址**選擇對應(yīng)版本進(jìn)行解壓(注意 Nacos 解壓后 是一個完整的運行包,如果用的不熟練,不要動里面的配置信息)
下載完成后解壓后進(jìn)入到 bin 目錄 在終端運行命令
MACsh startup.sh -m standalone(standalone代表著單機模式運行,后看會單獨講解集群模式的搭建和啟動方法)Windowscmd startup.cmd
啟動成功后 默認(rèn)賬號密碼 nacos/nacos(初始賬號密碼)
登錄后可以看到右上角中英文切換,英語不好的同學(xué)們 可以切換到中文
配置管理主要是用來做項目配置,比如配置文件等可以用nacos來管理 因為nacos不僅僅是服務(wù)中心,也是配置中心(后面有講)我們開發(fā)項目的配置一般有以下幾種做法:1. 硬編碼--作為類字段的形式存在,導(dǎo)致:動態(tài)修改困難,沒有持久化2. 配置文件( properties、yml 文件等)--導(dǎo)致:配置動態(tài)變更,可能需要重啟應(yīng)用,讓配置生效。當(dāng)然,你也可以在代碼中增加一個定時任務(wù),如每隔 10s 讀取配置文件內(nèi)容,讓最新的配置能夠及時在應(yīng)用中生效,這樣也就免 去了重啟應(yīng)用這個“較重”的運維操作。3. DB 配置表--導(dǎo)致:配置動態(tài)變更,可能需要通過暴露管理接口去解決。
Nacos 真正將配置從應(yīng)用中剝離出來,統(tǒng)一管理,優(yōu)雅的解決了配置的動態(tài)變更、持久化、運維成本等問題。應(yīng)用自身既不需要去添加管理配置接口,也不需要自己去實現(xiàn)配置的持久化,更不需要引入“定時任務(wù)”以便降低運維成本。Nacos 提供的配置管理功能,將配置相關(guān)的所有邏輯都收攏,并且提供簡單易用的 SDK,讓應(yīng)用的配置可以非常方便被 Nacos 管理起來不僅如此,Nacos提供 DNS-F功能, 可以與K8S、Spring Cloud和Dubbo等多個開源產(chǎn)品進(jìn)行集成,實現(xiàn)服務(wù)的注冊功能。
服務(wù)發(fā)現(xiàn)使用來管理注冊到nacos 上的微服務(wù),可以實現(xiàn)服務(wù)下線等功能。 命名空間是用來做服務(wù)環(huán)境區(qū)分,當(dāng)項目需要開發(fā),測試, 生產(chǎn)等多個不同的配置, 命名空間就可以做配置隔離。 集群管理 后面會單獨講解到此這篇關(guān)于Spring Cloud Alibaba 之 Nacos的文章就介紹到這了,更多相關(guān)Spring Cloud Alibaba Nacos內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
