1. 程式人生 > >Spring Cloud Alibaba系列教程-03-搭建生產可用的Nacos叢集

Spring Cloud Alibaba系列教程-03-搭建生產可用的Nacos叢集

Spring Cloud Alibaba系列教程-01-Nacos安裝與啟停 一節, 已搭建一個單例項Nacos——它使用內嵌資料庫Derby,這顯然不適用於生產。

本節詳細探討如何搭建一個生產可用的Nacos叢集。討論的內容主要包括:使用MySQL作為儲存持久化資料,以及如何搭建Nacos叢集。

安裝MySQL資料庫

生產環境需使用MySQL作為後端儲存,因此需要搭建MySQL。生產中,MySQL建議至少主備模式,高可用MySQL更佳。

高可用MySQL的搭建可參考:https://blog.csdn.net/jx_jy/article/details/80165584

注意:Nacos支援的MySQL版本為:5.6.5+

匯入初始化指令碼

找到 conf/nacos-mysql.sql ,將其匯入到資料庫中。

配置資料庫連線

找到 conf/application.properties ,新增如下內容:

# 表明用MySQL作為後端儲存
spring.datasource.platform=mysql
db.num=1

# MySQL JDBC地址
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
# 資料庫賬號
db.user=nacos
# 資料庫密碼
db.password=nacos

部署架構圖

下圖是來自Nacos官方的部署架構圖:

Nacos叢集

主機規劃

節點
127.0.0.18848
127.0.0.18849
127.0.0.18850

複製三份Nacos安裝包,將 conf/application.properties 中的

server.port=8848

分別改為:

server.port=8848
server.port=8849
server.port=8850

開始搭建

  • 找到 conf/cluster.conf.example ,將其改名為 conf/cluster.conf ,並將內容改為類似如下,即:以ip:埠 的形式列出Nacos叢集中所有例項的地址列表:

    # ip:port
    127.0.0.1:8848
    127.0.0.1:8849
    127.0.0.1:8850
    
  • 啟動所有Nacos例項

配置代理伺服器

  • 安裝NGINX並啟動

  • 為NGINX新增如下配置(對於Linux作業系統,如在安裝NGINX時未自定義目錄,則可在 /etc/nginx/conf.d 新建檔案,命名為 nacos.conf ,內容如下;同時刪除 default.conf即可):

    upstream nacos {
      server 127.0.0.1:8848;
      server 127.0.0.1:8849;
      server 127.0.0.1:8850;
    }
    
    server {
      listen 80;
      server_name  localhost;
      location /nacos/ {
        proxy_pass http://nacos/nacos/;
      }
    }
    

測試

訪問 http://localhost/nacos 可看到Nacos的登入頁,登入後即可正常使用Nacos。

優化&最佳實踐

  • 實際專案中,建議為Nacos繫結一個域名,這樣即使未來有遷移Nacos的需求,客戶端也無需修改配置;
  • 本文為了演示方便,將所有Nacos例項都部署在了一臺機器中;實際專案中,請將Nacos部署在不同機器中,從而實現更好的容災與隔離

參考文件

https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html

本文首發

http://www.itmuch.com/spring-cloud-alibaba/03-nacos-ha/

乾貨分享