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

Spring Cloud Alibaba系列教程-01-Nacos安裝與啟停( http://www.itmuch.com/spring-cloud-alibaba/01-nacos-install/ ) 一節,

已搭建一個單實例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官方的部署架構圖:

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

主機規劃

節點端口127.0.0.18848127.0.0.18849127.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實例

配置代理服務器

1 安裝NGINX並啟動

2 為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。

優化&最佳實踐

1 實際項目中,建議為Nacos綁定一個域名,這樣即使未來有遷移Nacos的需求,客戶端也無需修改配置;

2 本文為了演示方便,將所有Nacos實例都部署在了一臺機器中;實際項目中,請將Nacos部署在不同機器中,從而實現更好的容災與隔離

參考文檔

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

乾貨分享

最近將個人學習筆記整理成冊,使用PDF分享。關注我,回覆如下代碼,即可獲得百度盤地址,無套路領取!

  • 001:《Java併發與高併發解決方案》學習筆記;
  • 002:《深入JVM內核——原理、診斷與優化》學習筆記;
  • 003:《Java面試寶典》
  • 004:《Docker開源書》
  • 005:《Kubernetes開源書》
  • 006:《DDD速成(領域驅動設計速成)》


分享到:


相關文章: