第一個坑:
在spring-cloud中的sidecar組件中,寫了一個node.js檔案,當利用sidecar組件把js註冊到eureka上時,sidecar服務總是提示UNKNOW狀態,經過多次尋找是因為sidecar註冊服務把nodejs中的狀態標識當做自己服務的狀態標識註冊到eureka上,而nodejs中寫的 status:up中up是小寫 所以導致問題。up一定要大寫才生效。
附上nodejs檔案如圖:
var http = require('http');var url = require('url');var path = require('path');//建立servervar server = http.createServer(function(req, res){//獲得請求中的路徑var pathname = url.parse(req.url).pathname;res.writeHead(200, {'Content-Type' : 'application/json; charset=utf-8'});//訪問 http://localhost:8060/,將會返回{"index":"歡迎來到首頁"}if(pathname === '/'){res.end(JSON.stringify({"index":"歡迎來到首頁"}));}//訪問 http://localhost:8060/health , 將會返回 {"status":"up"}else if(pathname === '/health.json'){res.end(JSON.stringify({ "status" : "UP" })); //此處的up一定要大寫才可以生效}//其他情況返回 404else {res.end("404");}});//建立監聽,並列印日誌server.listen(8060, function(){console.log('listening on localhost: 8060');});
第二個坑: 測試spring-cloud config中,我在一個工程中建立了兩個模組(server與client),他們繼承同一個父pom檔案。這時我在Client中設定好後,client啟動時不去server上載入配置。 原因:我把server的依賴
spring-cloud-config-server
加到了父pom中,而client依賴加在了client模組中的pom檔案中導致,client啟動時不去找server載入配置。這時需要把server的依賴放到server自己的pom檔案中,以避免影響client模組的依賴。