Spring Cloud 系列之 Alibaba Nacos 注冊中心(二)

本篇文章為系列文章,未讀第一集的同學(xué)請猛戳這里:Spring Cloud 系列之 Alibaba Nacos 注冊中心(一)

本篇文章講解 Nacos 注冊中心集群環(huán)境搭建传黄。


Nacos 集群環(huán)境搭建

集群模式跟我們平時進(jìn)行擴容是一樣的,可以通過 Nginx 轉(zhuǎn)發(fā)到多個節(jié)點,如下圖:

如果為了方便省事,可以使用直連 ip 模式声旺,配置中按如下編寫即可:

spring:
  # 配置 Nacos 注冊中心
  cloud:
    nacos:
      discovery:
        enabled: true # 如果不想使用 Nacos 進(jìn)行服務(wù)注冊和發(fā)現(xiàn),設(shè)置為 false 即可
        server-addr: 192.168.10.101:8848,192.168.10.102:8848,192.168.10.103:8848 # Nacos 服務(wù)器地址

PS:如果只是為了學(xué)習(xí)的話直接在本地啟動 3 個實例段只,通過修改端口的方式即可腮猖。本文使用三臺服務(wù)器的方式帶大家搭建環(huán)境,其實這種方式反而更簡單赞枕。

環(huán)境準(zhǔn)備

Nacos 單節(jié)點澈缺,也就是我們剛才使用的 standalone 模式,默認(rèn)使用嵌入式數(shù)據(jù)庫實現(xiàn)數(shù)據(jù)的存儲炕婶,不方便觀察數(shù)據(jù)存儲的基本情況姐赡,0.7 版本以后增加了支持 MySQL 數(shù)據(jù)源能力。集群搭建的時候我們需要將 Nacos 對接 Mysql 進(jìn)行數(shù)據(jù)存儲柠掂。如果要搭建高可用的集群環(huán)境项滑,至少要滿足以下條件:

  • JDK 1.8+;
  • Maven 3.2.x+涯贞;
  • MySQL 5.6.5+(生產(chǎn)使用建議至少主備模式杖们,或者采用高可用數(shù)據(jù)庫);
  • 3個或3個以上Nacos節(jié)點才能構(gòu)成集群肩狂。

下載源碼或者安裝包

可以通過源碼和發(fā)行包兩種方式來獲取 Nacos摘完。

源碼方式

從 Github 上下載源碼方式。

git clone https://github.com/alibaba/nacos.git
cd nacos/
mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U  
ls -al distribution/target/

// change the $version to your actual path
cd distribution/target/nacos-server-$version/nacos/bin

發(fā)行包方式

您可以從 https://github.com/alibaba/nacos/releases 下載最新穩(wěn)定版本的 nacos-server 包傻谁。

配置集群配置文件

將安裝包解壓孝治。

tar -zxvf nacos-server-1.2.1.tar.gz -C /usr/local/ # 解壓文件至 local 目錄

在 Nacos 的解壓目錄 nacos/conf 目錄下,復(fù)制配置文件 cluster.conf.example 并重命名為 cluster.conf审磁,每行配置成 ip:port谈飒。(請配置3個或3個以上節(jié)點)

192.168.10.101:8848
192.168.10.102:8848
192.168.10.103:8848

配置 MySQL 數(shù)據(jù)庫

Nacos 在 0.7 版本之前,默認(rèn)使用的是嵌入式數(shù)據(jù)庫 Apache Derby 來存儲數(shù)據(jù)(內(nèi)嵌的數(shù)據(jù)庫會隨著 Nacos 一起啟動态蒂,無需額外安裝)杭措;0.7 版本及以后,增加了對 MySQL 數(shù)據(jù)源的支持钾恢。

MySQL數(shù)據(jù)源

環(huán)境要求:MySQL 5.6.5+(生產(chǎn)使用建議至少主備模式手素,或者采用高可用數(shù)據(jù)庫);

初始化 MySQL 數(shù)據(jù)庫

創(chuàng)建數(shù)據(jù)庫 nacos_config瘩蚪。

SQL源文件地址:https://github.com/alibaba/nacos/blob/master/distribution/conf/nacos-mysql.sql 泉懦,或者在 nacos-server 解壓目錄 conf 下,找到 nacos-mysql.sql 文件疹瘦,運行該文件崩哩,結(jié)果如下:

application.properties 配置

修改 nacos/conf/application.properties 文件的以下內(nèi)容。

最終修改結(jié)果如下:

#*************** Config Module Related Configurations ***************#
### If user MySQL as datasource:
# 指定數(shù)據(jù)源為 MySQL
spring.datasource.platform=mysql

### Count of DB:
# 數(shù)據(jù)庫實例數(shù)量
db.num=1

# 數(shù)據(jù)庫連接信息,如果是 MySQL 8.0+ 版本需要添加 serverTimezone=Asia/Shanghai
### Connect URL of DB:
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&serverTimezone=Asia/Shanghai
db.user=root
db.password=1234

如果你和我一樣使用的是 MySQL 8.0+ 版本邓嘹,那么啟動 Nacos 時肯定會報錯酣栈。莫慌,在 Nacos 安裝目錄下新建 plugins/mysql 文件夾汹押,并放入 8.0+ 版本的 mysql-connector-java-8.0.xx.jar钉嘹,重啟 Nacos 即可,啟動時會提示更換了 MySQL 的 driver-class 類鲸阻。

啟動服務(wù)器

Linux/Unix/Mac

在 Nacos 的解壓目錄 nacos/bin 目錄下啟動。

啟動命令(在沒有參數(shù)模式缨睡,是集群模式):

sh startup.sh

查看啟動記錄

可通過 /nacos/logs/nacos.log(詳細(xì)日志)或 /nacos/conf/start.out(啟動記錄)的輸出內(nèi)容查看是否啟動成功鸟悴。

查看命令:

tail -f /usr/local/nacos/logs/start.out

啟動成功輸出結(jié)果:

2020-04-29 22:47:56,204 INFO Nacos is starting...

2020-04-29 22:47:56,556 INFO Nacos logs files: /usr/local/nacos/logs/

2020-04-29 22:47:56,556 INFO Nacos conf files: /usr/local/nacos/conf/

2020-04-29 22:47:56,556 INFO Nacos data files: /usr/local/nacos/data/

2020-04-29 22:47:56,556 INFO Nacos started successfully in cluster mode.

訪問

訪問以下鏈接,默認(rèn)用戶名/密碼是 nacos/nacos :

關(guān)閉服務(wù)器

Linux/Unix/Mac

sh shutdown.sh

測試

直連 ip 模式

商品服務(wù) application. yml 配置文件奖年。

server:
  port: 7070 # 端口

spring:
  application:
    name: product-service # 應(yīng)用名稱
  # 配置 Nacos 注冊中心
  cloud:
    nacos:
      discovery:
        enabled: true # 如果不想使用 Nacos 進(jìn)行服務(wù)注冊和發(fā)現(xiàn)细诸,設(shè)置為 false 即可
        server-addr: 192.168.10.101:8848,192.168.10.102:8848,192.168.10.103:8848 # Nacos 服務(wù)器地址,集群版直連 ip 模式

訂單服務(wù) application. yml 配置文件陋守。

server:
  port: 9090 # 端口

spring:
  application:
    name: order-service # 應(yīng)用名稱
  # 配置 Nacos 注冊中心
  cloud:
    nacos:
      discovery:
        enabled: true # 如果不想使用 Nacos 進(jìn)行服務(wù)注冊和發(fā)現(xiàn)震贵,設(shè)置為 false 即可
        server-addr: 192.168.10.101:8848,192.168.10.102:8848,192.168.10.103:8848 # Nacos 服務(wù)器地址,集群版直連 ip 模式

啟動 Nacos 集群水评,從下圖可以看到集群節(jié)點共有三個猩系,其中 192.168.10.101:8848leader

通過服務(wù)列表可以看到服務(wù)已注冊至 Nacos中燥。

訪問:http://localhost:9090/order/1 結(jié)果如下:

Nginx 轉(zhuǎn)發(fā)

再啟動一臺服務(wù)器 192.168.10.100寇甸,安裝 Nginx,配置代理轉(zhuǎn)發(fā)規(guī)則疗涉。

upstream nacos {
    server 192.168.10.101:8848;
    server 192.168.10.102:8848;
    server 192.168.10.103:8848;
}

商品服務(wù) application. yml 配置文件拿霉。

server:
  port: 7070 # 端口

spring:
  application:
    name: product-service # 應(yīng)用名稱
  # 配置 Nacos 注冊中心
  cloud:
    nacos:
      discovery:
        enabled: true # 如果不想使用 Nacos 進(jìn)行服務(wù)注冊和發(fā)現(xiàn),設(shè)置為 false 即可
        server-addr: 192.168.10.100:80 # Nacos 服務(wù)器地址咱扣,集群版 Nginx 轉(zhuǎn)發(fā)

訂單服務(wù) application. yml 配置文件绽淘。

server:
  port: 9090 # 端口

spring:
  application:
    name: order-service # 應(yīng)用名稱
  # 配置 Nacos 注冊中心
  cloud:
    nacos:
      discovery:
        enabled: true # 如果不想使用 Nacos 進(jìn)行服務(wù)注冊和發(fā)現(xiàn),設(shè)置為 false 即可
        server-addr: 192.168.10.100:80 # Nacos 服務(wù)器地址闹伪,集群版 Nginx 轉(zhuǎn)發(fā)

啟動 Nacos 集群沪铭,從下圖可以看到集群節(jié)點共有三個,其中 192.168.10.101:8848leader偏瓤。

通過服務(wù)列表可以看到服務(wù)已注冊至 Nacos伦意。

訪問:http://localhost:9090/order/1 結(jié)果如下:

至此 Nacos 注冊中心所有的知識點就講解結(jié)束了。

本文采用 知識共享「署名-非商業(yè)性使用-禁止演繹 4.0 國際」許可協(xié)議硼补。

大家可以通過 分類 查看更多關(guān)于 Spring Cloud 的文章驮肉。


?? 您的點贊轉(zhuǎn)發(fā)是對我最大的支持。

?? 關(guān)注公眾號 哈嘍沃德先生「文檔 + 視頻」每篇文章都配有專門視頻講解已骇,學(xué)習(xí)更輕松噢 ~


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末离钝,一起剝皮案震驚了整個濱河市票编,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌卵渴,老刑警劉巖慧域,帶你破解...
    沈念sama閱讀 219,539評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異浪读,居然都是意外死亡昔榴,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評論 3 396
  • 文/潘曉璐 我一進(jìn)店門碘橘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來互订,“玉大人,你說我怎么就攤上這事痘拆⊙銮荩” “怎么了?”我有些...
    開封第一講書人閱讀 165,871評論 0 356
  • 文/不壞的土叔 我叫張陵纺蛆,是天一觀的道長吐葵。 經(jīng)常有香客問我,道長桥氏,這世上最難降的妖魔是什么温峭? 我笑而不...
    開封第一講書人閱讀 58,963評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮字支,結(jié)果婚禮上诚镰,老公的妹妹穿的比我還像新娘。我一直安慰自己祥款,他們只是感情好清笨,可當(dāng)我...
    茶點故事閱讀 67,984評論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著刃跛,像睡著了一般抠艾。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上桨昙,一...
    開封第一講書人閱讀 51,763評論 1 307
  • 那天检号,我揣著相機與錄音,去河邊找鬼蛙酪。 笑死齐苛,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的桂塞。 我是一名探鬼主播凹蜂,決...
    沈念sama閱讀 40,468評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了玛痊?” 一聲冷哼從身側(cè)響起汰瘫,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎擂煞,沒想到半個月后混弥,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,850評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡对省,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,002評論 3 338
  • 正文 我和宋清朗相戀三年蝗拿,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蒿涎。...
    茶點故事閱讀 40,144評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡哀托,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出同仆,到底是詐尸還是另有隱情,我是刑警寧澤裙品,帶...
    沈念sama閱讀 35,823評論 5 346
  • 正文 年R本政府宣布俗批,位于F島的核電站,受9級特大地震影響市怎,放射性物質(zhì)發(fā)生泄漏岁忘。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,483評論 3 331
  • 文/蒙蒙 一区匠、第九天 我趴在偏房一處隱蔽的房頂上張望干像。 院中可真熱鬧,春花似錦驰弄、人聲如沸麻汰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽五鲫。三九已至,卻和暖如春岔擂,著一層夾襖步出監(jiān)牢的瞬間位喂,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評論 1 272
  • 我被黑心中介騙來泰國打工乱灵, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留塑崖,地道東北人。 一個月前我還...
    沈念sama閱讀 48,415評論 3 373
  • 正文 我出身青樓痛倚,卻偏偏與公主長得像规婆,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,092評論 2 355