一、背景:
1、Dubbo服务正常注册到ZooKeeper
2、客户端调用Dubbo服务正常

二、原因:
Dubbo-Admin未配置分组信息

三、解决步骤:
1、dubbo.properties添加分组信息:/usr/local/src/tomcat7/webapps/dubbo-admin/WEB-INF
dubbo.registry.group=/dubbo/mygroup
2、dubbo-admin.xml添加分组信息:/usr/local/src/tomcat7/webapps/dubbo-admin/WEB-INF/classes/META-INF/spring
  1. <dubbo:registry group="${dubbo.registry.group}" address="${dubbo.registry.address}" check="false" file="false" />
3、重启tomcat

今天重新配置了下dubbo,结果发现管理控制台上没有显示可用的服务,由于前阵子刚配置的时候是没有问题的,于是开始逐步排查。

项目注册中心用的zookeeper集群,provider是采用jar包方式启动的,consumer在tomcat容器内运行,并且consumer已经可以消费到provider提供的服务了,说明注册中心已经里面已经有服务注册。通过zookeeper客户端连接到zk服务器上,也可以看到创建的服务节点

根目录下有paopao,zookeeper两个目录,其中paopao是根据配置中注册中心registry的group属性分组标识而创建的,zookeeper是zk默认的节点,paopao下面有两个已经注册的服务节点。

然后查看dubbo-admin的配置,dubbo的管理控制台是在单独的tomcat下运行的,安装及配置可以参考http://dubbo.io/Administrator+Guide-zh.htm,找到webapps/ROOT/WEB-INF/dubbo.properties文件,其内容如下:

[plain] view plain copy
  1. dubbo.registry.address=zookeeper://192.168.199.191:2181?backup=192.168.199.192:2181,192.168.199.193:2181
  2. dubbo.admin.root.password=Daniel
  3. dubbo.admin.guest.password=guest

猛地发现registry没有配置group分组!自己之前在生产者和消费者的配置文件中也没有显式指明分组,默认的group就为dubbo。现在由于在服务提供的配置文件中对registry显式指明了group分组,因此管理控制台的配置中如果没有声明group与provider、consumer的group一致,那么就找不到对应的服务。
于是修改dubbo.properties文件,添加注册中心分组:

[plain] view plain copy
  1. dubbo.registry.group=paopao

满怀着激动的心情重启了服务,结果发现管理台界面还是没有找到服务!然后上网查找但是无奈网上dubbo相关的文档和讨论真的太少了,后来经群里一个朋友的提醒,查看了${TOMCAT_HOME}/webapps/ROOT/WEB-INF/classes/META-INF/spring下的dubbo-admin.xml文件,dubbo管理控制台在启动的时候会加载该xml文件并读取里面的配置信息初始化dubbo和zookeeper,dubbo-admin.xml内容如下:

[html] view plain copy
  1. <beans xmlns="http://www.springframework.org/schema/beans"
  2. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xmlns:context="http://www.springframework.org/schema/context"
  4. xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
  5. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
  6. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
  7. http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
  8. <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
  9. <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
  10. <property name="ignoreResourceNotFound" value="true" />
  11. <property name="locations">
  12. <list>
  13. <value>/WEB-INF/dubbo.properties</value>
  14. <value>file://${user.home}/dubbo.properties</value>
  15. </list>
  16. </property>
  17. </bean>
  18. <dubbo:application name="dubbo-admin" />
  19. <dubbo:registry address="${dubbo.registry.address}" check="false" file="false" />
  20. <dubbo:reference id="registryService" interface="com.alibaba.dubbo.registry.RegistryService" check="false" />
  21. <bean id="configService" class="com.alibaba.dubbo.governance.service.impl.ConfigServiceImpl" />
  22. <bean id="consumerService" class="com.alibaba.dubbo.governance.service.impl.ConsumerServiceImpl" />
  23. <bean id="overrideService" class="com.alibaba.dubbo.governance.service.impl.OverrideServiceImpl" />
  24. <bean id="ownerService" class="com.alibaba.dubbo.governance.service.impl.OwnerServiceImpl" />
  25. <bean id="providerService" class="com.alibaba.dubbo.governance.service.impl.ProviderServiceImpl" />
  26. <bean id="routeService" class="com.alibaba.dubbo.governance.service.impl.RouteServiceImpl" />
  27. <bean id="userService" class="com.alibaba.dubbo.governance.service.impl.UserServiceImpl">
  28. <property name="rootPassword" value="${dubbo.admin.root.password}" />
  29. <property name="guestPassword" value="${dubbo.admin.guest.password}" />
  30. </bean>
  31. <bean id="governanceCache" class="com.alibaba.dubbo.governance.sync.RegistryServerSync" />
  32. </beans>

可以看到,该文件竟然默认是没有registry的group属性的,因此只在dubbo.properties中添加分组配置根本不起作用。于是修改dubbo-admin.xml文件中的<dubbo:registry>项为:

[html] view plain copy
  1. <dubbo:registry group="${dubbo.registry.group}" address="${dubbo.registry.address}" check="false" file="false" />

保存后重启tomcat实例,发现已经注册的服务提供者和消费者信息,一切OK!

下面把provider和consumer的主要配置信息也贴出来供大家参考:

provider.xml:

[html] view plain copy
  1. <!-- 提供方应用信息,用于计算依赖关系 -->
  2. <dubbo:application name="paopao-provider"  />
  3. <!-- 使用zookeeper注册中心暴露服务地址 -->
  4. <dubbo:registry group="paopao" address="zookeeper://192.168.199.191:2181?backup=192.168.199.192:2181,192.168.199.193:2181"/>
  5. <!-- 监控中心配置,从注册中心发现监控中心地址 -->
  6. <dubbo:monitor protocol="registry"/>
  7. <!-- 用dubbo协议在20880端口暴露服务 -->
  8. <dubbo:protocol name="dubbo" port="20880" />
  9. <!-- 扫描注解包路径,多个包用逗号分隔,不填pacakge表示扫描当前ApplicationContext中所有的类 -->
  10. <dubbo:annotation package="com.zhilin.paopao.provider.service"/>

consumer.xml:

[plain] view plain copy
  1. <pre name="code" class="html">  <!-- 消费方应用名,用于计算依赖关系,不是匹配条件,不要与提供方一样 -->
  2. <dubbo:application name="consumer-of-app"  />
  3. <!-- 使用zookeeper注册中心暴露发现服务地址 -->
  4. <dubbo:registry group="paopao" address="zookeeper://192.168.199.191:2181?backup=192.168.199.192:2181,192.168.199.193:2181"/>
  5.   <!-- 监控中心配置,从注册中心发现监控中心地址 -->
  6.   <dubbo:monitor protocol="registry"/>
  7. <!-- 生成远程服务代理 -->
  8. <dubbo:reference version="1.0.0" id="userService" interface="com.zhilin.paopao.service.UserService" />

Dubbo_异常_服务注册运行正常但是Dubbo-Admin看不到服务(亲测可用)的更多相关文章

  1. Dubbo_异常_服务注册运行正常但是Dubbo-Admin看不到服务

    出自:https://www.cnblogs.com/gossip/p/6021698.html 一.背景: 1.Dubbo服务正常注册到ZooKeeper 2.客户端调用Dubbo服务正常 二.原因 ...

  2. 服务注册发现Eureka之一:Spring Cloud Eureka的服务注册与发现

    Spring Cloud简介 Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中的配置管理.服务发现.断路器.智能路由.微代理.控制总线.全局锁 ...

  3. 服务注册发现consul之五:Consul移除失效服务的正确姿势

    spring cloud微服务不定期会出现网络请求失败的错误.于是看了下后台日志,发现有几个请求会报如下的异常: Caused by: feign.RetryableException: Connec ...

  4. centos7无GUI运行selenium chromedriver 亲测可用!

    1. 安装chrome 首先安装google的epel源 vi /etc/yum.repos.d/google.repo [google] name=Google-x86_64 baseurl=htt ...

  5. Navicat15最新版本破解 亲测可用!!!(Navicat Premium 注册出现 No All Pattern Found! File Already Patched)

    1.下载Navicat Premium官网https://www.navicat.com.cn/下载最新版本下载安装 2.本人网盘链接:https://pan.baidu.com/s/1ncSaxId ...

  6. windows下的java项目打jar分别编写在windows与linux下运行的脚本( 本人亲测可用!)

    前言: 最近公司做了一个工具,要将这个工具打包成一个可运行的程序,编写start.bat和start.sh在windows和linux下都可以运行. 在网上找了很多资料,最后终于找到一个可靠的资料,记 ...

  7. Redis服务监控之RedisLive安装部署(亲测可用)

    一.Redis服务安装部署 1.redis安装(linux系统) 下载 https://redis.io/ 安装依赖 yum install gcc tcl 解压.编译.安装(make & m ...

  8. centos安装服务参考博客,亲测可用

    centos 安装nginx参考 日志log报错 nginx -c /etc/nginx/nginx.conf https://blog.csdn.net/weixin_41004350/articl ...

  9. C++使用http请求,亲测可用,VS2008编译运行通过

    int CMyFunctionsDlg::request(char* hostname, char* api, char* parameters) { WSADATA WsaData; WSAStar ...

随机推荐

  1. iScroll4下表单元素聚焦及键盘的异常问题

    本文是zawa同事写的一篇博文,相信很多在webapp开发中的同学使用iscroll4会遇到的该问题,问过zawa兄的建议,在这里分享给大家,希望能帮助到各位~ 原文地址:http://www.zaw ...

  2. CETV面试总结

    在通过CETV的网上笔试之后,我收到了面试通知,我纠结片刻,就买了第二天去广州的高铁,虽然感觉自己硬件方面的知识已经快忘完了,但还是想去一下,起码是一种经历.对一个路痴和知识储备不足的我来讲,这一切都 ...

  3. 中国移动测试大会 PPT 和视频

    PPT网盘链接:http://pan.baidu.com/s/1c0prdoG优酷专辑:http://v.youku.com/v_show/id_XMTI5NjExNjIwOA==.html?f=25 ...

  4. js中的冒泡排序以及实现一个数组中得最到最大的数字小例

    这其实是一个很简单的js就可以实现,当然一般情况就是利用for循环,从第一个跟第二个开始比较,根据大小交互位置,思路很简单. 也就是js中的冒泡排序 冒泡排序 时间复杂度为O(n^2),有两个优点: ...

  5. Unity自动构建

    Jenkins/Hudson Jenkins的前身是Hudson(Sun开发),2010年从Hudson分支出来.由于Sun被Oracle收购,Oracle声称拥有Hudson的商标所有权,Hudso ...

  6. 搞netty

    开始搞netty了 查了下资料 在使用NIO 的时候,最好不要配置 SO_LINGER,假设设置了该參数,在 close的时候如缓冲区有数据待写出,会抛出 IOException. // 在netty ...

  7. java 22 - 12 多线程之解决线程安全问题的实现方式1

    从上一章知道了多线程存在着线程安全问题,那么,如何解决线程安全问题呢? 导致出现问题的原因: A:是否是多线程环境 B:是否有共享数据 C:是否有多条语句操作共享数据 上一章的程序,上面那3条都具备, ...

  8. HTML 学习笔记 JavaScript (DOM)

    一 DOM 简介 通过HTML DOM 可以访问JavaScript 文档的所有元素 当网页被加载的时候,浏览器会创建页面的文档对象模型 HTML DOM 模型被构造成对象的树 HTML DOM 树 ...

  9. 程序流程的控制之条件分支(Delphi)

    if语句主要来检测一个条件,并根据这个条件是True或者False来执行一段代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 var   I: Integer ...

  10. VS2010/VS2013怎么复制项目/拷贝项目/克隆项目

    本文以vs2013为例,讲述了如何复制项目.vs2008,vs2010,vs2012等版本应操作类似 vs中的项目位于解决方案中,简单的复制粘贴是不能实现项目复制的 一.准备 原项目名称:test 目 ...