Nacos集群和持久化配置

?? 《SpringCloud入門實戰(zhàn)系列》解鎖SpringCloud主流組件入門應用及關(guān)鍵特性。帶你了解SpringCloud主流組件,是如何一戰(zhàn)解決微服務諸多難題的街夭。項目demo:源碼地址
?? 作者:一只IT攻城獅捂蕴。關(guān)注我领斥,不迷路筋帖。
?? 再小的收獲x365天都會成就不一樣的自己趟薄,一起學習酗电,一起進步魄藕。
??Nacos簡介、安裝撵术、運行參看上一節(jié): SpringCloud入門實戰(zhàn)-Nacos簡介背率、安裝、運行詳解

通過之前的系列文章嫩与,我們已經(jīng)了解了Nacos下載寝姿、安裝、基本概念划滋、Nacos做注冊中心饵筑、做配置中心的集成和使用,本篇文章我們來了解一下Nacos的集群和持久化配置处坪。

一根资、前言

如果nacos的服務停了,再打開稻薇,它的配置數(shù)據(jù)都還在嫂冻,所以Nacos具有持久化能力。那它是如何做到持久化的呢塞椎?

從Nacos官網(wǎng)我們知道桨仿,在單機模式時Nacos使用的是內(nèi)嵌數(shù)據(jù)庫 Derby(Apache Derby)實現(xiàn)數(shù)據(jù)存儲(就是自帶一個微數(shù)據(jù)庫)。0.7版本后增加了mysql集中式存儲數(shù)據(jù)案狠。

為什么要集中式存儲服傍?

實際生產(chǎn)時钱雷,我們不應只配置一個單點,為了保證高可用吹零,需要做到Nacos集群罩抗,這樣即便一個節(jié)點宕機了,其他節(jié)點也可持續(xù)提供服務灿椅;而Nacos持久化是為了防止配置文件數(shù)據(jù)的丟失以及保證多個節(jié)點能共用一份配置文件套蒂,解決數(shù)據(jù)存儲的一致性問題,就需要集中式存儲茫蛹。這就是持久化的cluster模式操刀,這就需要用到我們配置的外置數(shù)據(jù)源,目前Nacos僅支持Mysql數(shù)據(jù)庫婴洼,且版本要求:5.6.5+

二骨坑、Nacos持久化

本機環(huán)境:

  • macOS 版本 11.6.8
  • MySQL 8.0.30
  • JDK8
  • Nacos 2.3.0

1、初始化數(shù)據(jù)庫

Nacos的數(shù)據(jù)庫腳本文件在我們下載Nacos-server時的壓縮包中就有
進入nacos-server-2.3.0\nacos\conf目錄柬采,找到帶mysql的初始化文件:

本地新建一個庫欢唾,我這里命名為nacos ,該sql文件導入自己的mysql粉捻,然后執(zhí)行初始化腳本:


2礁遣、修改配置文件

進入nacos-server-2.3.0\nacos\conf目錄,打開application.properties杀迹,在文件底部添加數(shù)據(jù)源配置(庫名亡脸、密碼改成自己的):

db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=12345678

3押搪、備份原配置

登錄Nacos树酪,導出原來的配置文件。
修改數(shù)據(jù)庫配置之后大州,原配置自然就不在了续语,所以提前做好備份,后面可以直接導入厦画。
每個命名空間都要單獨導出:

4疮茄、重啟Nacos

重新啟動Nacos(注意這里仍然單機模式啟動,因為沒有進行集群配置根暑,默認集群啟動會報錯)

moon@moondeiMac bin % sh shutdown.sh
moon@moondeiMac bin % sh startup.sh -m standalone

重新登錄后發(fā)現(xiàn)配置全沒了力试。這時候再次新建的配置會發(fā)現(xiàn)存入我們的數(shù)據(jù)庫了。
也可導入之前的配置排嫌,按照原來的命名空間畸裳,重新創(chuàng)建。然后淳地,在對應的命名空間下導入原配置文件即可怖糊。

Tip:要搭建nacos集群的話帅容,必須要先配置其持久化

三、本地模擬Nacos集群配置

1伍伤、cluster.conf 文件配置

把 conf文件夾下 cluster.conf.example 復制一份 命名為 cluster.conf 并徘,每行配置成ip:port(配置3個或3個以上節(jié)點)


注意??:IP 盡量不使用locaolhost和 127.0.0.1 ,使用 通過ipconfig 查詢到的本地ip地址

注意??:從官網(wǎng)而知扰魂,Nacos2.0版本相比1.X新增了gRPC的通信方式麦乞,因此需要增加幾個端口。新增端口是在配置的主端口(server.port)基礎上劝评,進行一定偏移量自動生成路幸。所以端口時設置時注意避開,以免后面端口沖突付翁。

2简肴、application.properties文件修改

修改application.properties 文件,將上次單機版數(shù)據(jù)庫配置去掉百侧,放開集群配置:

### Default web server port:
server.port=8848
### Connect URL of DB:
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=數(shù)據(jù)庫連接的用戶名
db.password.0=密碼
spring.datasource.platform=mysql
##db.num=1
##db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
##db.user=root
##db.password=12345678

啟動nacos 服務砰识,訪問http://localhost:8848/nacos/驗證是否配置成功

image.png

通過后臺日志也能看到是否配置成功:

3、模擬多個nacos server

確保了上邊的單個nacos server沒有問題佣渴,我們復制nacos 服務文件夾辫狼,修改 server.port=8848 為 cluster.conf 文件中設置的其他端口,然后分別啟動noco1辛润、nacos2服務器

成功啟動后:

4膨处、nginx 集群配置

首先查看本機是否有:brew info nginx 沒有安裝一下:brew install nginx

顯示的信息有提到:在/usr/local/etc/nginx/nginx.conf配置文件nginx.conf配置文件中默認端口被配置為8080,從而使nginx運行時不需要加sudo砂竖。接下來打開并修改 nginx.conf 文件真椿,添加集群配置:

在nginx.conf配置文件中的http節(jié)點下,添加upstream節(jié)點乎澄,并在server節(jié)點中的location節(jié)點添加proxy_pass突硝,并配置為http:// + upstream節(jié)點名后啟動nginx

   upstream  nacos-server {
    server    localhost:8848;
    server    localhost:8858;
    server    localhost:8868;
   }
 
   #添加代理轉(zhuǎn)發(fā)
    server {
        listen       8080;
        server_name  localhost;
        location / {
            root   html;
            index  index.html index.htm;
            proxy_pass http://nacos-server;
        }

brew services start nginx(啟動nginx)
brew services restart nginx(重啟命令)

5、驗證服務集群

訪問http://localhost:8080/nacos/index.html驗證服務集群

好了置济,Nacos的持久化及Nacos集群配置就介紹到這里了解恰。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市浙于,隨后出現(xiàn)的幾起案子护盈,更是在濱河造成了極大的恐慌,老刑警劉巖羞酗,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件腐宋,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機脏款,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進店門围苫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人撤师,你說我怎么就攤上這事剂府。” “怎么了剃盾?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵腺占,是天一觀的道長。 經(jīng)常有香客問我痒谴,道長衰伯,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任积蔚,我火速辦了婚禮意鲸,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘尽爆。我一直安慰自己怎顾,他們只是感情好,可當我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布漱贱。 她就那樣靜靜地躺著槐雾,像睡著了一般。 火紅的嫁衣襯著肌膚如雪幅狮。 梳的紋絲不亂的頭發(fā)上募强,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天,我揣著相機與錄音崇摄,去河邊找鬼擎值。 笑死,一個胖子當著我的面吹牛配猫,可吹牛的內(nèi)容都是我干的幅恋。 我是一名探鬼主播,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼泵肄,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了淑翼?” 一聲冷哼從身側(cè)響起腐巢,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎玄括,沒想到半個月后冯丙,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年胃惜,在試婚紗的時候發(fā)現(xiàn)自己被綠了泞莉。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡船殉,死狀恐怖鲫趁,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情利虫,我是刑警寧澤挨厚,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站糠惫,受9級特大地震影響疫剃,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜硼讽,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一巢价、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧固阁,春花似錦蹄溉、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至赚爵,卻和暖如春棉胀,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背冀膝。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工唁奢, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人窝剖。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓麻掸,卻偏偏與公主長得像,于是被迫代替她去往敵國和親赐纱。 傳聞我的和親對象是個殘疾皇子脊奋,可洞房花燭夜當晚...
    茶點故事閱讀 42,722評論 2 345

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