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

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

本節詳細探討如何搭建一個生產可用的Nacos集羣。討論的內容主要包括:使用MySQL做爲存儲持久化數據,以及如何搭建Nacos集羣。mysql

安裝MySQL數據庫

生產環境需使用MySQL做爲後端存儲,所以須要搭建MySQL。生產中,MySQL建議至少主備模式,高可用MySQL更佳。nginx

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

注意:Nacos支持的MySQL版本爲:5.6.5+sql

導入初始化腳本

找到 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.1 8848
127.0.0.1 8849
127.0.0.1 8850

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

server.port=8848

分別改成:app

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/

乾貨分享

乾貨分享

相關文章
相關標籤/搜索