微服務架構系列之Nacos集羣環境搭建

上回咱們說到了《微服務架構系列之Nacos 配置核心概念》,此次咱們講講Nacos 集羣環境搭建。
集羣模式跟咱們平時進行擴容是同樣的,能夠經過 Nginx 轉發到多個節點,以下圖:
若是爲了方便省事,可使用直連 ip 模式,配置中按以下編寫便可:
spring: # 配置 Nacos 配置中心 cloud: nacos: config: enabled: true # 若是不想使用 Nacos 進行配置管理,設置爲 false 便可 server-addr: 192.168.10.101:8848,192.168.10.102:8848,192.168.10.103:8848 # Nacos 服務器地址
PS:若是隻是爲了學習的話直接在本地啓動 3 個實例,經過修改端口的方式便可。本文使用三臺服務器的方式帶你們搭建環境,其實這種方式反而更簡單。
 

1、環境準備

Nacos 單節點,也就是咱們剛纔使用的 standalone 模式,默認使用嵌入式數據庫實現數據的存儲,不方便觀察數據存儲的基本狀況,0.7 版本之後增長了支持 MySQL 數據源能力。集羣搭建的時候咱們須要將 Nacos 對接 Mysql 進行數據存儲。若是要搭建高可用的集羣環境,至少要知足如下條件:
  • JDK 1.8+;
  • Maven 3.2.x+;
  • MySQL 5.6.5+(生產使用建議至少主備模式,或者採用高可用數據庫);
  • 3個或3個以上Nacos節點才能構成集羣。

 

2、下載源碼或者安裝包

能夠經過源碼和發行包兩種方式來獲取 Nacos。
一、源碼方式
從 Github 上下載源碼方式。
it 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

 

 
二、發行包方式
您能夠從 https://github.com/alibaba/nacos/releases 下載最新穩定版本的 nacos-server 包。
 

3、配置集羣配置文件

將安裝包解壓。
tar -zxvf nacos-server-1.3.0.tar.gz -C /usr/local/ # 解壓文件至 local 目錄
在 Nacos 的解壓目錄 nacos/conf 目錄下,複製配置文件 cluster.conf.example 並重命名爲 cluster.conf,每行配置成 ip:port。(請配置3個或3個以上節點)
192.168.10.101:8848
192.168.10.102:8848
192.168.10.103:8848

 

 

4、配置 MySQL 數據庫

Nacos 在0.7版本以前,默認使用的是嵌入式數據庫Apache Derby來存儲數據(內嵌的數據庫會隨着 Nacos 一塊兒啓動,無需額外安裝);0.7版本及之後,增長了對MySQL數據源的支持。
 

5、MySQL數據源

環境要求:MySQL 5.6.5+(生產使用建議至少主備模式,或者採用高可用數據庫);
一、初始化 MySQL 數據庫
建立數據庫 nacos_config
SQL源文件地址:https://github.com/alibaba/nacos/blob/master/distribution/conf/nacos-mysql.sql ,或者在 nacos-server 解壓目錄 conf 下,找到 nacos-mysql.sql 文件,運行該文件,結果以下:
二、application.properties 配置
修改 nacos/conf/application.properties 文件的如下內容。
最終修改結果以下:
#*************** Config Module Related Configurations ***************#
### If user MySQL as datasource:
# 指定數據源爲 MySQL
spring.datasource.platform=mysql

### Count of DB:
# 數據庫實例數量
db.num=1

# 數據庫鏈接信息,若是是 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 類。
 

6、啓動服務器

Linux/Unix/Mac
在 Nacos 的解壓目錄 nacos/bin 目錄下啓動。
啓動命令(在沒有參數模式,是集羣模式):
sh startup.sh
 

7、查看啓動記錄

可經過 /nacos/logs/nacos.log(詳細日誌)或 /nacos/conf/start.out(啓動記錄)的輸出內容查看是否啓動成功。
查看命令:
tail -f /usr/local/nacos/logs/start.out

 

 
啓動成功輸出結果:
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.

 

 

8、訪問

訪問如下連接,默認用戶名/密碼是 nacos/nacos :
  • http://192.168.10.101:8848/nacos/
  • http://192.168.10.102:8848/nacos/
  • http://192.168.10.103:8848/nacos/
 
從下圖能夠看到集羣節點共有三個,其中 192.168.10.101:8848leader
 

9、關閉服務器

Linux/Unix/Mac
sh shutdown.sh
 

10、測試

一、直連 ip 模式
發佈配置
選擇 配置管理配置列表 頁面,點擊最右側 + 按鈕新建配置。
Data ID: product-service.yaml
Group: DEFAULT_GROUP
Configuration format: YAML
Configuration content: project.name: SpringCloudAlibaba
                       project.org: Aliababa

 

 
獲取配置
bootstrap.yml
server:
  port: 7070 # 端口

spring:
  application:
    name: product-service # 應用名稱
  cloud:
    nacos:
      config:
        enabled: true # 若是不想使用 Nacos 進行配置管理,設置爲 false 便可
        server-addr: 192.168.10.101:8848,192.168.10.102:8848,192.168.10.103:8848 # Nacos 服務器地址,集羣版直連 ip 模式
        group: DEFAULT_GROUP # 組,默認爲 DEFAULT_GROUP
        file-extension: yaml # 配置內容的數據格式,默認爲 properties
 
使用以前的控制層代碼,訪問:http://localhost:7070/config 結果以下:
 
二、Nginx 轉發
再啓動一臺服務器 192.168.10.100,安裝 Nginx,配置代理轉發規則。
upstream nacos {
    server 192.168.10.101:8848;
    server 192.168.10.102:8848;
    server 192.168.10.103:8848;
}

 


 
三、獲取配置
bootstrap.yml
server:
  port: 7070 # 端口

spring:
  application:
    name: product-service # 應用名稱
  cloud:
    nacos:
      config:
        enabled: true # 若是不想使用 Nacos 進行配置管理,設置爲 false 便可
        server-addr: 192.168.10.100:80 # Nacos 服務器地址,集羣版 Nginx 轉發
        group: DEFAULT_GROUP # 組,默認爲 DEFAULT_GROUP
        file-extension: yaml # 配置內容的數據格式,默認爲 properties

 


 
使用以前的控制層代碼,訪問:http://localhost:7070/config 結果以下:
至此 Nacos 配置中心全部的知識點就講解結束了,做者爲 哈嘍沃德先生,感謝關注 哈嘍沃德先生公衆號。獲取微服務架構視頻教程,請點:spring全家桶微服務架構
相關文章
相關標籤/搜索