概述
笔者之前在云主机上启动codis,这次是在本地启动。dashboard,proxy,fe都成功启动之后,打开 fe 的页面,点击最左侧自己创建的product_name,却发现页面显示残缺不全
再看fe的控制台日志,发现报错
http : proxy error : dial tcp : lookup cnsz22vla888.novalocal on 127.0.1.1:53 : no such host
但是我的proxy明明是启动成功的,讲真的这个错误困扰了一天。我一直觉得解决问题最好的方式就是——今天不管了,第二天再看。。。。
那好,就算是第二天,也得解决啊。首先看一下异常是什么时候抛出来的,发现页面上单机左侧的”codis-wujiang”的时候,会触发
$scope.selectCodisInstance = function (selected) {
if ($scope.codis_name == selected) {
return;
}
$scope.resetOverview();
$scope.codis_name = selected;
var url = concatUrl("/topom", selected);
$http.get(url).then(function (resp) {
if ($scope.codis_name != selected) {
return;
}
var overview = resp.data;
$scope.codis_addr = overview.model.admin_addr;
$scope.codis_coord_name = "[" + overview.config.coordinator_name.charAt(0).toUpperCase() + overview.config.coordinator_name.slice(1) + "]";
$scope.codis_coord_addr = overview.config.coordinator_addr;
$scope.updateStats(overview.stats);
});
}
这里$http.get(url)之后直接就跳到方法外了。
回想一下fe的启动参数,fe是不依赖于proxy的,除了自己启动之后的监听端口是18090之外,就只有一个指定的从codis.json中读取数据。里面刚好就有异常中报的 cnsz22vla888.novalocal
//codis.json
[
{
"name": "codis-wujiang",
"dashboard": "cnsz22vla888.novalocal:18080"
}
]
在centOS中,codis.json是通过下面的命令来生成的:(笔者注:这个文件只需要生成一次)
./bin/codis-admin --dashboard-list --zookeeper=*.*.*.* | tee ./conf/codis.json
在ubuntu中,我偷了个懒,直接把原来centOS中成功启动的codis.json复制过来。。。。。立刻想到,如果fe无法找到dashboard,后续的操作都无法进行。dashboard是codis集群的管理工具,支持proxy和server的添加、删除、数据迁移,所有对集群的操作必须通过dashboard。
dashboard的启动文件dashboard.toml中指定的admin地址是:
# Set bind address for admin(rpc), tcp only.
admin_addr = "0.0.0.0:18080"
后来我手动对codis.json文件作了修改,改成
//codis.json
[
{
"name": "codis-wujiang",
"dashboard": "0.0.0.0:18080"
}
]
然后重启fe,发现一切都可以正常工作了。
说明
如有转载,请注明出处:
http://blog.csdn.net/antony9118/article/details/75732016
最后
以上就是超级棒棒糖为你收集整理的Codis proxy error : dial tcp : lookup cnsz22vla888.novalocal on 127.0.1.1:53 : no such host的全部内容,希望文章能够帮你解决Codis proxy error : dial tcp : lookup cnsz22vla888.novalocal on 127.0.1.1:53 : no such host所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复