Docker 部署之坑爹dubbo

1 篇文章 0 订阅
1 篇文章 0 订阅

公司最近用docker来部署项目和远程发布。其中遇到了很多坑爹问题很奇怪。。现在就算能正常部署了依然没有搞清楚。先叙述问题吧。

首先是发布消费者所以消费者第一个遇到问题

问题如下:
1.如果docker启动不用–network host则直接zookeeper not connect
2.如果docker某些jdk版本用了–network host则直接报java.net.UnknownHostException: vos-app-t55: System error

第一个问题:pom 在zkclient连接我用了com.101tec 版本只要升级到0.11最高级就是无法连接后面是机缘巧合我回退到0.7版本就连接上了。这个我没有找具体原因但是并不是每个版本docker都会报这个问题。我本地docker版本是19.03.12服务器是18.0.3.0。我自己本人是没有想到docker容器会受到不同版本的影响但是事实就是如此
第二个问题:这个问题并不是每个内嵌的jdk也会遇到但是绝大部分都会遇到我自己用centeros+openjdk就是没有遇到这个问题但是线上大部分jdk都是会遇到这个问题。

生产者部署问题
1.生产者注册到zookeeper是容器的ip
2.正确注册到zookeeper容器ip也正常telnet也telnet通但是就是无法连接

第一个问题:-e DUBBO_IP_TO_REGISTRY=ipXXXX需要在启动容器上添加该指令他可以让注册到zookeeper的ip正确的指向你所需要的ip这个一般都是主机的ip
第二个问题:这个问题并不是每个版本的docker都会遇到就是注册到zookeeper里面的信息是正确的能ping通也可以telnet但是就是无法访问后来也是查阅了相关信息添加了-e DUBBO_PORT_TO_BIND=20880指令以后终于可以成功让消费者连上了。

总结:docker不是jvm。。他不是每个镜像在docker跑都是一样,如果真的要在发布中用上最好有专业的运维不然这些坑会浪费很多时间

后续–
后面发现原来查询慢是宿主没有设置nameserver 导致docker里面的dns转换特别慢。导致链接外部的服务特别慢导致超时!!可以为主机设置nameserver 或者 docker run -it --dns xx.xx.xx.xx xxxxxxxx 为启动命令添加–dns xx.xx.xx.xx 来设置容器里面dns这样就可以正常访问

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值