最近在看RuoYi的分布式微服務(wù)架構(gòu)權(quán)限管理系統(tǒng),RuoYi的注冊(cè)中心和配置中心都是采用alibaba的nacos殿遂,本文主要介紹使用Windows10 電腦安裝 nacos 1.3.2 以及啟動(dòng)nacos中遇到的一些問(wèn)題以及解決方法乙各。
一耳峦、下載nacos安裝程序
1.1 下載nacos
按照nacos官網(wǎng)的快速開(kāi)始手冊(cè),下載nacos的方式有2種驶乾,第一種下載編譯后壓縮包的nacos循签,第二種方式,直接在github上下載源程序风科,然后編譯生成最終可執(zhí)行的程序乞旦。
本次主要是安裝nacos,沒(méi)有選擇難度稍微較高的源程序編譯的方式故痊,直接選擇下載已經(jīng)編譯后的程序包玖姑,從 nacos最新穩(wěn)定版本列表 下載 nacos-server-$version.zip
包,這個(gè)過(guò)程比較簡(jiǎn)單豫领,選擇最新版本nacos-server-1.3.2.zip
下載等恐。
編譯后的壓縮包有兩種壓縮方式备蚓,一種是zip壓縮文件后綴,另外一種是tar.gz的壓縮文件后綴二跋,如果在Windows操作系統(tǒng)上流昏,建議下載zip結(jié)尾的程序包,直接解壓即可谚鄙,tar.gz后綴的文件使用7zip解壓2次才算解壓完成刁绒,通常在linux等操作系統(tǒng)更方便解壓知市。除此之外,解壓后的內(nèi)容沒(méi)有其他的差異娘赴,大家可以放心使用奢入。
1.2 啟動(dòng)nacos
nacos提供兩個(gè)啟動(dòng)腳本,分別是startup.cmd
和startup.sh
关顷;由于使用Windows 操作系統(tǒng)武福,選擇直接執(zhí)行startup.cmd
文件捉片,在nacos快速開(kāi)始手冊(cè)中茄厘,建議雙擊startup.cmd
或者在命令窗口使用cmd startup.cmd
的方式,在這里使用cmd命令窗口,執(zhí)行startup.cmd
命令赔蒲。
建議:使用雙擊方式也可以啟動(dòng)nacos舞虱,但是如果命令啟動(dòng)過(guò)程中出現(xiàn)錯(cuò)誤,命令窗口會(huì)一閃而過(guò)损趋,還需要通過(guò)查看日志才能知道出現(xiàn)哪些錯(cuò)誤
技巧:在這里跟大家說(shuō)一個(gè)小的技巧椅寺,在cmd窗口中如何快速到達(dá)指定文件目錄返帕,只需要指定的文件目錄的文件導(dǎo)航窗口輸入
cmd
回車即可。
可以看到在cmd的文件目錄直接到達(dá)指定的文件目錄畸冲,避免不斷的編寫cd命令
二邑闲、出現(xiàn)問(wèn)題列表
在執(zhí)行啟動(dòng)命令的時(shí)候梧油,大坑、小坑不斷的出現(xiàn)褪子,本章節(jié)主要通過(guò)羅列出現(xiàn)的問(wèn)題骗村,最后放出最優(yōu)的解決方法胚股。
2.1 小坑:在命令行執(zhí)行 cmd startup.cmd
沒(méi)有反應(yīng)
在nacos官網(wǎng)文檔中,Windows操作系統(tǒng)啟動(dòng)nacos的命令
cmd startup.cmd
問(wèn)題現(xiàn)象:
不知是否因?yàn)槭莣in10的原因缨伊,建議阿里的相關(guān)程序員能夠看到這,完善快速手冊(cè)枷恕,避免小白踩坑谭胚。
解決方法:
直接在cmd中輸入startup.cmd
回車即可
2.2 大坑: 啟動(dòng)失敗漏益,提示java.io.IOException: java.lang.IllegalArgumentException: db.num is null
問(wèn)題現(xiàn)象:
控制臺(tái)中出現(xiàn)db.num is null
的錯(cuò)誤提示信息
解決方法:
參考nacos的issues中找到了解決辦法绰疤,需要在啟動(dòng)時(shí)舞终,指定啟動(dòng)的模式
如果是非單機(jī)模式啟動(dòng) 默認(rèn)使用mysql作為外置數(shù)據(jù)庫(kù),此時(shí)需要到conf/application.properties內(nèi)添加mysql的相關(guān)配置參數(shù)余爆。否則就會(huì)去找jdbc.properties夸盟,兩者都沒(méi)有,那相當(dāng)于依賴沒(méi)有啟動(dòng)成功桩砰,自然就啟動(dòng)不起來(lái)亚隅。
解決方法是啟動(dòng)時(shí)加上 -p embedded 使用derby + jraft的內(nèi)嵌數(shù)據(jù)庫(kù)庶溶,或者-m standalone啟動(dòng)單機(jī)模式
修改啟動(dòng)代碼,可以在下面的代碼中任選其一進(jìn)行執(zhí)行行疏,在這里直接選擇了單機(jī)模式套像。
# 使用derby +jraft的內(nèi)嵌數(shù)據(jù)庫(kù)啟動(dòng)集群模式
startup.cmd -p embedded
# 使用 -m standalone 啟動(dòng)單機(jī)模式
startup.cmd -m standalone
2.3 大大坑:使用mysql數(shù)據(jù)庫(kù)的集群模式凉夯,提示java.net.UnknownHostException
使用mysql數(shù)據(jù)庫(kù)啟動(dòng)集群模式采幌,需要將相關(guān)的sql腳本在數(shù)據(jù)庫(kù)中進(jìn)行執(zhí)行
第一步:創(chuàng)建數(shù)據(jù)庫(kù):nacos
第二步:創(chuàng)建相關(guān)表震桶,可以執(zhí)行腳本conf/nacos-mysql.sql
蹲姐,創(chuàng)建相關(guān)表以及導(dǎo)入相關(guān)數(shù)據(jù)
第三步:修改配置文件,修改conf/application.properties
忙厌,將 Config Module Related Configurations 注釋的內(nèi)容釋放
#*************** Config Module Related Configurations ***************#
### If use MySQL as datasource:
spring.datasource.platform=mysql
### Count of DB:
db.num=1
### Connect URL of DB:
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=root
db.password=123456
第四步:執(zhí)行startup.cmd
問(wèn)題出現(xiàn)了江咳,在命令窗口中歼指,出現(xiàn)了錯(cuò)誤,提示java.net.UnknownHostException: jmenv.tbsite.net
解決方法
復(fù)制conf/cluster.conf.example 到conf/cluster.conf 設(shè)置ip和端口 重啟服務(wù)
修改代碼如下:
#it is ip
#example
127.0.0.1:8847
終于看到成功啟動(dòng)的標(biāo)識(shí)了
三、驗(yàn)證一下
nacos啟動(dòng)成功后挟阻,會(huì)啟用一個(gè)web程序附鸽,默認(rèn)端口號(hào)為:8848(珠穆拉瑪封的高度,還是阿里會(huì)找端口號(hào))挪拟,可以修改conf/application.properties 中的server.port
設(shè)定自定義的端口號(hào)击你,直接訪問(wèn) http://localhost:8848/nacos/
使用用戶名:nacos丁侄,密碼:nacos可登陸系統(tǒng)
如果使用單機(jī)模式的情況,節(jié)點(diǎn)列表中只有一個(gè)節(jié)點(diǎn)IP石景,截圖中節(jié)點(diǎn)為啟動(dòng)集群模式,修改conf/cluster.conf后揪荣,啟動(dòng)nacos往史,節(jié)點(diǎn)列表中會(huì)出現(xiàn)一個(gè)down的節(jié)點(diǎn)
這是因?yàn)樵摴?jié)點(diǎn)沒(méi)有啟動(dòng)椎例,只需要將nacos文件夾復(fù)制一份,修改conf/application.properties的server.port
脖祈,使用相同方式啟動(dòng)即可刷晋。
四掏秩、總結(jié)
在安裝nacos遇到的問(wèn)題荆姆,都可以在度娘中找到答案,由于nacos的不斷更新邮破,使用新版本的nacos遇到的問(wèn)題仆救,最好到nacos的github主頁(yè)中issue搜索,基本上都可以找到解決辦法摧莽,如果在度娘和github上都無(wú)法找到解決辦法顿痪,需要我們深入nacos的源碼蚁袭,查看具體原因。