解决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种方式更加直接方便,更好。
相关推荐
Dubbo 错误 IP 及 IP 乱入问题解决方法 在 Dubbo 框架中,服务注册在 Zookeeper 中,但是注册的 IP 不是本地的 IP,这将导致 Consumer 无法找到 Provider,无法访问服务。今天,我们将分享解决 Dubbo 错误 IP 及 IP...
dubbo注册中心服务ip和实际服务提供者ip不一致问题 网上收集的资料
这个项目的核心是创建一个高效、可扩展的分布式系统,其中SpringBoot作为基础框架,Dubbo作为服务治理组件,而Zookeeper则作为服务注册与发现的中心节点。 **SpringBoot** 是一个由Pivotal团队开发的Java框架,用于...
本教程将详细阐述如何将 Dubbo 服务注册到 Eureka 平台上,以实现服务的发现与治理。 Dubbo 是一个高性能、轻量级的开源 Java RPC 框架,它提供了服务治理、远程调用、集群容错、负载均衡等功能。Eureka 是 Netflix...
Dubbo无法访问远程Zookeeper已注册服务的问题解决方案 在使用Dubbo框架时,可能会遇到无法访问远程Zookeeper已注册服务的问题。今天,我们将分享一篇关于Dubbo无法访问远程Zookeeper已注册服务的问题解决方案。 ...
Dubbo 服务注册与发现 本文档旨在讲解 Dubbo 服务注册与发现的相关知识点,涵盖了分布式...Dubbo 服务注册与发现是分布式系统架构中的一种重要机制,它可以使得服务提供者和服务消费者之间的调用变得更加灵活和高效。
Dubbo作为微服务架构中的关键组件,其主要功能包括服务注册与发现、负载均衡、容错机制、监控和管理等。Dubbo-api服务则是这个框架中实现业务逻辑的部分,它定义了服务的接口,并提供了服务的实现。开发者可以通过...
通过这个系统,运维人员可以在服务出现问题时,得到及时的预警,从而快速定位和解决问题,提升系统的整体稳定性。同时,这种独立部署、代码0入侵的设计,使得监控系统易于集成到现有的Dubbo应用中,对原有架构影响极...
在dubbo服务运行过程中,上传正确的java代码文件,自动编译生成class并注册到dubbo zk 中,可以正常dubbo invoke来调用。整个过程服务不用重启。我写了个框架并命名为D-Unit。
解决dubbo启动报错,加载失败问题。
主要功能包括服务注册、服务发现、负载均衡、故障隔离等,确保服务间的通信稳定可靠。 2. 注册中心类型:Dubbo支持多种注册中心,如Zookeeper、Eureka、Consul等。其中,Zookeeper是最常见的选择,它的强一致性与高...
这个文件包含了所有Dubbo框架特有的XML标签定义,比如服务提供方`<dubbo:service>`、服务消费者`<dubbo:reference>`、应用配置`<dubbo:application>`、注册中心`<dubbo:registry>`等等。通过在`dubbo.xml`配置文件的...
本文将详细介绍如何将Dubbo与Spring Boot整合,主要涉及三种方式:通过application.yml配置、XML配置以及使用API。 1. application.yml 配置方式 Spring Boot支持使用YAML或Properties格式的配置文件。在`...
本文将重点探讨Dubbo与Spring Cloud这两种流行的微服务框架,在服务注册与发现方面的差异与特点。 #### 微服务定义及其特性 微服务架构是一种将大型应用分解为多个小型、自治的服务的开发方法。这些服务围绕具体的...
dubbo.xsd文件,用于解决dubbo配置报错。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。...
其中,服务注册中心是整个Dubbo生态系统中的关键组件,它负责维护服务提供者和消费者之间的关系,使得服务消费者能够找到并调用服务提供者。 在本示例中,我们使用的是Dubbo 2.8.4版本的注册中心。这个版本引入了对...
Dubbo服务提供者的启动方式是分布式系统开发中的关键一环,它涉及到服务的注册、发现、配置管理等多个方面。在本文中,我们将深入探讨Dubbo服务提供者常见的启动方法,并结合源码分析其工作原理。 首先,Dubbo服务...
Dubbo是一款由阿里巴巴开源的高性能、轻量级的服务治理框架,它致力于提供一套完整的服务治理解决方案,包括服务注册、服务发现、服务调用、负载均衡、熔断机制等核心功能,是分布式微服务架构中的重要组件。...
在Dubbo这个高性能、轻量级的开源Java RPC框架中,服务运行的三种方式是其核心功能之一,它们分别是:本地存根(Local Stub)、远程代理(Remote Proxy)以及缓存代理(Cache Proxy)。理解这三种方式对于优化服务...
dubbo注册客户端,客户端管理工具,dubbo-admin是Dubbo RPC框架的“管理端”,可以对注册的服务(provider)和服务调用方(comsumer)进行服务治理,包括路由、监控、配置等功能;