Nacos在Linux系統(CentOS7)上的部署與設置開機啓動

  • 本文主要講述Nacos在Linux系統上的部署與設置開機啓動,其中Nacos以0.9.0版本(nacos-server-0.9.0.tar.gz)爲例,

下載地址:鏈接:https://pan.baidu.com/s/1WlsV_n7eJXMWZVCWyAXCzw  提取碼:hfxc 

環境準備:

  • 64 bit OS Linux/Unix/Mac,推薦使用Linux系統;
  • 64 bit JDK 1.8+;
  • 集羣需要依賴mysql (版本5.6.5+),單機可不必
  • 將安裝包上傳至/usr/local/nacos目錄

執行解壓,如下:

tar -xvf nacos-server-0.9.0.tar.gz

如圖:

  • 修改配置文件,支持mysql(選配,單機可跨過此步驟)

在0.7版本之前,在單機模式時nacos使用嵌入式數據庫實現數據的存儲,不方便觀察數據存儲的基本情況。0.7版本增加了支持mysql數據源能力,具體的操作步驟:

1.安裝數據庫,版本要求:5.6.5+
2.初始化mysql數據庫
3.修改nacos/conf/application.properties文件,增加支持mysql數據源配置(目前只支持mysql),添加mysql數據源的url、用戶名和密碼。

spring.datasource.platform=mysql

db.num=1
db.url.0=jdbc:mysql://121.52.33.213:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=123456

注:

  1. 這個的application.properties指nacos的解壓目錄nacos/的conf目錄下的application.properties文件
  2. 這裏的db具體配置根據自身情況而變

再以單機模式啓動nacos,nacos所有寫嵌入式數據庫的數據都寫到了mysql

  • 開機自啓動
vim /lib/systemd/system/nacos.service

 添加如下:

[Unit]
Description=nacos
After=network.target
 
[Service]
Type=forking
ExecStart=/usr/local/nacos/nacos/bin/startup.sh -m standalone
ExecReload=/usr/local/nacos/nacos/bin/shutdown.sh
ExecStop=/usr/local/nacos/nacos/bin/shutdown.sh
PrivateTmp=true
 
[Install]  
WantedBy=multi-user.target

保存退出後,執行以下命令

systemctl daemon-reload
systemctl enable nacos.service
systemctl start nacos.service
  • 驗證是否安裝成功(注:防火牆要開啓8848端口方可訪問

瀏覽器登陸:http://127.0.0.0:8848/nacos,用戶名:nacos,密碼nacos,如下即安裝成功

  • 踩坑-----------------------------------------------------------------------------------------------------------------------------

按照官方文檔的啓動方式,windows系統下可以實現正常啓動,但是在linux下出現了上述的情況,啓動失敗,拋出的異常如下:

2019-01-18 20:39:21,965 ERROR read cluster conf fail
 
java.io.FileNotFoundException: /home/test/nacos/conf/cluster.conf (No such file or directory)
	at java.io.FileInputStream.open0(Native Method)
	at java.io.FileInputStream.open(FileInputStream.java:195)
	at java.io.FileInputStream.<init>(FileInputStream.java:138)
	at com.alibaba.nacos.common.util.SystemUtils.readClusterConf(SystemUtils.java:157)
	at com.alibaba.nacos.core.listener.StartingSpringApplicationRunListener.logClusterConf(StartingSpringApplicationRunListener.java:129)
	at com.alibaba.nacos.core.listener.StartingSpringApplicationRunListener.contextPrepared(StartingSpringApplicationRunListener.java:79)
	at org.springframework.boot.SpringApplicationRunListeners.contextPrepared(SpringApplicationRunListeners.java:60)
	at org.springframework.boot.SpringApplication.prepareContext(SpringApplication.java:391)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:331)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1277)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1265)
	at com.alibaba.nacos.Nacos.main(Nacos.java:31)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48)
	at org.springframework.boot.loader.Launcher.launch(Launcher.java:87)
	at org.springframework.boot.loader.Launcher.launch(Launcher.java:50)
	at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:51)
2019-01-18 20:39:22,980 INFO Nacos is starting...
 
2019-01-18 20:39:23,980 INFO Nacos is starting...
 
2019-01-18 20:39:24,999 INFO Nacos is starting...
 
2019-01-18 20:39:26,000 INFO Nacos is starting...

由於啓動的默認由cluster改成了standalone單機啓動模式,但是啓動仍然是集羣模式啓動,並且拋出上述找不到cluster.conf文件。

將官方的啓動命令

sh startup.sh -m standalone

替換爲

bash startup.sh -m standalone
nohup bash startup.sh -m standalone      #後臺啓動

原因是:bash與sh是有區別的,兩者是不同的命令,且bash是sh的增強版,而"[[]]"是bash腳本中的命令,因此在執行時,使用sh命令會報錯。因而是因爲startup.sh文件中的[[ ]] 的問題,sh命令並不能識別,只有bash才行;

另外一種辦法是將dash啓動改爲bash啓動(ubuntu默認採用dash,也是導致整個問題的原因!),方法如下:

查看與使用

先用命令ls -l /bin/sh 看看

結果是: /bin/sh -> dash

我們會發現Ubuntu默認採用的是 dash

如果要修改默認的sh,可以採用命令

sudo dpkg-reconfigure dash

然後選擇【否】

成功後再執行ls -l /bin/sh 看看

結果是: /bin/sh -> bash

修改成功!

當然我們也可以使用

sudo dpkg-reconfigure dash

把sh修改回去

設置後即可啓動。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章