天天看點

gateway nacos注冊服務_微服務系列之Nacos注冊中心(二)

本篇文章為系列文章,未讀第一集的同學請猛戳這裡:微服務系列之Nacos注冊中心(一)

本篇文章講解 Nacos 注冊中心叢集環境搭建。

Nacos 叢集環境搭建

  叢集模式跟我們平時進行擴容是一樣的,可以通過 Nginx 轉發到多個節點,如下圖:

gateway nacos注冊服務_微服務系列之Nacos注冊中心(二)

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

 spring:   # 配置 Nacos 注冊中心   cloud:     nacos:       discovery:         enabled: true # 如果不想使用 Nacos 進行服務注冊和發現,設定為 false 即可         server-addr: 192.168.10.101:8848,192.168.10.102:8848,192.168.10.103:8848 # Nacos 伺服器位址
           

  PS:如果隻是為了學習的話直接在本地啟動 3 個執行個體,通過修改端口的方式即可。本文使用三台伺服器的方式帶大家搭建環境,其實這種方式反而更簡單。

環境準備

  Nacos 單節點,也就是我們剛才使用的 standalone 模式,預設使用嵌入式資料庫實作資料的存儲,不友善觀察資料存儲的基本情況,0.7 版本以後增加了支援 MySQL 資料源能力。叢集搭建的時候我們需要将 Nacos 對接 Mysql 進行資料存儲。如果要搭建高可用的叢集環境,至少要滿足以下條件:

  • JDK 1.8+;
  • Maven 3.2.x+;
  • MySQL 5.6.5+(生産使用建議至少主備模式,或者采用高可用資料庫);
  • 3個或3個以上Nacos節點才能構成叢集。

下載下傳源碼或者安裝包

  可以通過源碼和發行包兩種方式來擷取 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
           

發行包方式

  您可以從 https://github.com/alibaba/nacos/releases 下載下傳最新穩定版本的 nacos-server 包。

配置叢集配置檔案

  将安裝包解壓。

 tar -zxvf nacos-server-1.2.1.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
           

配置 MySQL 資料庫

  Nacos 在 0.7 版本之前,預設使用的是嵌入式資料庫 Apache Derby 來存儲資料(内嵌的資料庫會随着 Nacos 一起啟動,無需額外安裝);0.7 版本及以後,增加了對 MySQL 資料源的支援。

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 檔案,運作該檔案,結果如下:

gateway nacos注冊服務_微服務系列之Nacos注冊中心(二)

application.properties 配置

  修改 nacos/conf/application.properties 檔案的以下内容。

gateway nacos注冊服務_微服務系列之Nacos注冊中心(二)

  最終修改結果如下:

 #*************** 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 類。
gateway nacos注冊服務_微服務系列之Nacos注冊中心(二)

啟動伺服器

Linux/Unix/Mac

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

  啟動指令(在沒有參數模式,是叢集模式):

 sh startup.sh
           

檢視啟動記錄

  可通過 /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.
           

通路

  通路以下連結,預設使用者名/密碼是 nacos/nacos :

  • http://192.168.10.101:8848/nacos/
  • http://192.168.10.102:8848/nacos/
  • http://192.168.10.103:8848/nacos/
gateway nacos注冊服務_微服務系列之Nacos注冊中心(二)

關閉伺服器

Linux/Unix/Mac

sh shutdown.sh
           

測試

直連 ip 模式

  商品服務 application. yml 配置檔案。

server:  port: 7070 # 端口spring:  application:    name: product-service # 應用名稱  # 配置 Nacos 注冊中心  cloud:    nacos:      discovery:        enabled: true # 如果不想使用 Nacos 進行服務注冊和發現,設定為 false 即可        server-addr: 192.168.10.101:8848,192.168.10.102:8848,192.168.10.103:8848 # Nacos 伺服器位址,叢集版直連 ip 模式
           

  訂單服務 application. yml 配置檔案。

server:  port: 9090 # 端口spring:  application:    name: order-service # 應用名稱  # 配置 Nacos 注冊中心  cloud:    nacos:      discovery:        enabled: true # 如果不想使用 Nacos 進行服務注冊和發現,設定為 false 即可        server-addr: 192.168.10.101:8848,192.168.10.102:8848,192.168.10.103:8848 # Nacos 伺服器位址,叢集版直連 ip 模式
           

  啟動 Nacos 叢集,從下圖可以看到叢集節點共有三個,其中 192.168.10.101:8848 為 leader。

gateway nacos注冊服務_微服務系列之Nacos注冊中心(二)

  通過服務清單可以看到服務已注冊至 Nacos。

gateway nacos注冊服務_微服務系列之Nacos注冊中心(二)
gateway nacos注冊服務_微服務系列之Nacos注冊中心(二)

  通路:http://localhost:9090/order/1 結果如下:

gateway nacos注冊服務_微服務系列之Nacos注冊中心(二)

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;}
           
gateway nacos注冊服務_微服務系列之Nacos注冊中心(二)

  商品服務 application. yml 配置檔案。

server:  port: 7070 # 端口spring:  application:    name: product-service # 應用名稱  # 配置 Nacos 注冊中心  cloud:    nacos:      discovery:        enabled: true # 如果不想使用 Nacos 進行服務注冊和發現,設定為 false 即可        server-addr: 192.168.10.100:80 # Nacos 伺服器位址,叢集版 Nginx 轉發
           

  訂單服務 application. yml 配置檔案。

server:  port: 9090 # 端口spring:  application:    name: order-service # 應用名稱  # 配置 Nacos 注冊中心  cloud:    nacos:      discovery:        enabled: true # 如果不想使用 Nacos 進行服務注冊和發現,設定為 false 即可        server-addr: 192.168.10.100:80 # Nacos 伺服器位址,叢集版 Nginx 轉發
           

  啟動 Nacos 叢集,從下圖可以看到叢集節點共有三個,其中 192.168.10.101:8848 為 leader。

gateway nacos注冊服務_微服務系列之Nacos注冊中心(二)

  通過服務清單可以看到服務已注冊至 Nacos。

gateway nacos注冊服務_微服務系列之Nacos注冊中心(二)

  通路:http://localhost:9090/order/1 結果如下:

gateway nacos注冊服務_微服務系列之Nacos注冊中心(二)

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

gateway nacos注冊服務_微服務系列之Nacos注冊中心(二)

您的 點贊 和 轉發 是對我最大的支援。

掃描下方二維碼關注 哈喽沃德先生「文檔 + 視訊」每篇文章都配有專門視訊講解,學習更輕松噢 ~

gateway nacos注冊服務_微服務系列之Nacos注冊中心(二)
gateway nacos注冊服務_微服務系列之Nacos注冊中心(二)

繼續閱讀