第一个坑:
在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');
//创建server
var 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一定要大写才可以生效
}
//其他情况返回 404
else {
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模块的依赖。