Linux Nacos2.2.0版本叢集搭建,常見報錯問題解決

2023-06-22 15:00:12

準備:

叢集設定圖:

  • 官方的:

  •  

    本次搭建叢集設定圖:

開始搭建:

  • 修改nacos的組態檔「application.properties,cluster.conf.example」這些檔案都在`nacos/conf/`中
  • 本地資料庫的sql指令碼程式碼也在conf設定目錄下面,」mysql-schema.sql「,在自己的資料庫中建立一個nacos資料庫,然後匯入官方準備好的sql指令碼即可;小插曲:也不知道是不是真的2.幾版本不能用分割線做資料庫名,一開始我使用的是"nacos_conf",一直報錯,試了一下「nacos」就好了;
  • application.properties修改內容:
server.port=自定義埠號
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://ip地址:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=****

埠需要注意:在Nacos2.0以後,相對於之前的版本增加了gRPC的通訊方式;如下圖,這次搭建的nacos叢集暴露埠號:"8010,9010,9011","8020,9020,9021","8030,9030,9031"卻記埠號地址一定不要寫錯了或者暴露埠號衝突了;否則會導致啟動叢集失敗,或者導致3個nacos啟動只能啟動2個;常見報錯方式:Error creating bean with name ‘grpcSdkServer‘

  • cluster.conf.example修改,拷貝一份改名為cluster.conf
  • 這裡的"ip:port"也需要注意,如果是雲伺服器,一定使用內網ip作為IP地址寫這裡,埠號對應叢集的三個埠號;否則會報錯,一般性錯誤:Error creating bean with name‘memoryMonitor;這個錯誤會有很多情況,有時候是資料庫地址,有時是你的ip寫錯了,等很多情況,視情況而定
127.0.0.1:8010
127.0.0.1:8020
127.0.0.1:8030

#切記這裡除了這三個IP地址和埠號外,在啟動成功之後存取改地址的nacos之後還會自動生成一個ip+埠號,這個不必管

啟動:

  • 把寫的nacos,拷貝2份,一共3個nacos,按上述步驟修改其它兩份;
  • 最後注意:如果是雲伺服器,一定開啟相對應的埠號;
  • 直接切換到"nacos/bin/"目錄,使用命令`./startup.sh`啟動三臺nacos即可;

小插曲:

如果你的伺服器cpu和記憶體等設定不行,那最好別按我上述方式直接啟動,不然你的伺服器會宕機;

  • 叢集和單機的記憶體消耗是天壤之別:且看下圖

 使用vim開啟startup.sh啟動指令碼,你會看到如上圖的內容;單機啟動會佔用512mb的記憶體,而叢集上來一臺就是2g起步;不注意會害慘你;

修改如下圖:

 參考上述單機設定的佔用記憶體,修改就可以了;起始還是囊中羞澀不然我就買臺好點的伺服器了,哈哈哈哈

nginx修改nginx.conf檔案

#自定義設定,搭建的nacos叢集,做負載均衡
     upstream cluster {
           server ip:8010;
          server ip:8020;
          server ip:8030;
      }
  
      server {
          listen  8888;
          server_name localhost;
  
          location / {
                  proxy_pass http://cluster;
          }
      

這裡的ip寫成自己伺服器的公網ip;

在次強調,一定要去設定伺服器的埠號,不然你存取不到;