本篇文章為系列文章,未讀第一集的同學(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 :
- http://192.168.10.101:8848/nacos/
- http://192.168.10.102:8848/nacos/
- http://192.168.10.103:8848/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:8848
為 leader
。
通過服務(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:8848
為 leader
偏瓤。
通過服務(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í)更輕松噢 ~