MyException - 我的反常网
当时方位:我的反常网» 软件架构规划 » 处理dubbo注册zookepper服务IP乱入有关问题的三种方

处理dubbo注册zookepper服务IP乱入有关问题的三种方法

www.bsjylc692.com  网友共享于:2018-06-06  阅读:0次
处理dubbo注册zookepper服务IP乱入问题的三种方法

处理dubbo注册zookepper服务IP乱入问题的三种方法

最近做一个项目引入了dubbo+zookepper的分布式服务办理结构。在运用的发布的时分呈现一个怪问题。zookepper服务是起在开发服务器192.168.23.180上。本机起运用服务供给者注册到192.168.23.180上的dubbo服务能够注册成功,用dubbo-admin看也是本机的IP:10.1.24.20。本机起的客户端程序也能够正常调用。可是服务供给者发布到192.168.23.180服务器上去就不行了。发布到服务器上注册的服务地址就变成了124.232.132.94:20883,这个地址顾客根本就找不到,所以老是报衔接超时。按道理来说应该是192.168.23.180是服务供给者的地址才对。开端以为是代码里写了一个124.232.132.94这样的地址,搜了一遍没有找到。搜了一遍服务器的装备也没有这样一个地址。这个地址不知道是从哪里来的。应为服务供给者和zookepper在一台机器上,将服务供给者的注册地址改成127.0.0.1,发现仍是相同的注册上去后就变成了124.232.132.94。所以置疑是不是服务器上做了地址转发什么的。
上网找了一些材料发现原来是因为服务器上配了DNS的问题。
通过测验处理办法有以下几个:
1、去掉服务器上的DNS装备
找到服务器上的/etc/resolv.conf 将DNS装备去掉或装备成8.8.8.8或配成192.168.23.180这样这台服务器的DNS不可用。
参阅装备如下
#nameserver 222.246.129.80
#nameserver 59.51.78.210
#nameserver 8.8.8.8
nameserver 192.168.23.180
#search localdomain
服务发动的时分会报一个"不知道的称号或服务"的过错,可是没关系,服务能够正常发动。也能够正常注册到zookepper,注册的地址也是实在的服务器地址。客户端能够正常拜访。

2、在工程duboo注册服务装备文件里指定IP
把办理操控台中dubbo/webapps/ROOT/WEB-INF/dubbo.properties文件中参加dubbo.protocol.host=192.168.23.180,然后在Dubbo服务的dubbo装备文件<dubbo:protocol
 name="dubbo" port="20883"  />中参加 host="192.168.23.180",在Dubbo顾客端参加<dubbo:protocol host="192.168.0.123" />的装备。然后重启Dubbo办理员操控台、中止顾客端,中止服务供给端,发动服务供给端,再发动顾客端。
参阅装备如下:
服务供给者provider.xml
<!-- 用dubbo协议在20880端口露出服务 -->
<dubbo:protocol name="dubbo" host="192.168.23.180" port="20883" />
顾客consumer.xml
<dubbo:protocol host="192.168.23.180" />
装备完了后在dubbo-admin操控台能够看到服务供给者注册到zookepper上的dobbo服务已经是正常的192.168.23.180。顾客显现的仍是consumer://124.232.132.94/***** 但不影响调用。

3、在服务器上/etc/hosts,上装备主机名和注册服务的IP。如:192.168.23.180 host2
没有装备之前ping 主机名host2 回来的是124.232.132.94
ping host2
PING host2 (124.232.132.94) 56(84) bytes of data.
64 bytes from 124.232.132.94: icmp_seq=1 ttl=55 time=5.67 ms
在/etc/hosts里装备IP和主机名192.168.23.180 host2 后ping主机名host2回来 192.168.23.180
ping host2
PING host2 (192.168.23.180) 56(84) bytes of data.
64 bytes from host2 (192.168.23.180): icmp_seq=1 ttl=64 time=0.024 ms
装备完后,服务注册IP地址正常,顾客能够正常拜访。

以上三种方法都能够处理问题,可是第3种方法愈加直接便利,更好。
 

文章谈论

软件开发程序过错反常ExceptionCopyright © 2009-2015 MyException 版权所有