為什么要搭建nacos高可用集群
nacos可以作為注冊中心和配置中心,屬於服務間通信和服務啟動加載配置的關鍵組件,因此在生產環境中使用必須
保證nacos的高可用。針對nacos的高可用主要是搭建nacos集群,以及對持久層(nacos默認使用的是一個內嵌數據庫Derby,
我們可以使用Mysql)實現高可用,當然本文不對Mysql高可用做介紹。
端口定義
nacos默認的端口是8848,准備搭建三個節點:
nacos-1, 8848
nacos-2, 8849
nacos-3, 8850
配置Mysql持久化
nacos/conf
找到application.properties,vi進行編輯
主要就是配置mysql的地址等信息,然后將nacos包復制三份,分別命名為nacos-1,nacos-2,nacos-3,並將nacos-2和nacos-3
的端口分別修改為8849和8850。
另外,mysql數據庫中需要建一個nacos庫和相關表,建表語句也在conf下面——nacos-mysql.sql
在mysql建好nacos庫之后,把這些語句拿到mysql執行就好了
配置nacos集群
將nacos-[123]這三個包里面的cluster.conf.example重命名為cluster.conf,並在里面添加如下配置:
# ip:port
127.0.0.1:8848
127.0.0.1:8849
127.0.0.1:8850
當然,我這里是把三個節點都部署到一台機器上了,所以ip直接就是127.0.0.1。
接下來就是依次啟動三個節點:sh startup.sh,不過這里我遇到了內存不足的問題,因為我使用的是阿里雲1核心1G的配置,
在啟動第二個節點的時候就報內存不足了:
解決方案是可通過JVM調優參數去限制nacos占用的內存和棧數,我暫時沒搞這個。
效果
不過即使只啟動了一個節點也是可以看到效果的
可以在nacos dashboard的集群管理里面看到所有的節點,包含未啟動但是在cluster.conf中已經配置了的節點。