springboot 集成dubbo问题
一、背景
基于springboot 2.3.5.RELEASE 和 dubbo-spring-boot-starter 2.7.5 的版本开发,用来总结自己的技术栈。在启动过程中遇到一些问题,故借此文章总结记录一下自己的解决思路。
二、问题集合
1、 java.lang.IllegalStateException: No registry config found or it's not a valid config! The registry config is: <dubbo:registry valid="false" prefix="dubbo.registry" />
对于这些含有 ...Config的问题,一般都跟配置有关。解决思路如下:
1)、项目紧迫的情况下可以直接百度报错的提示,看看前辈总结的经验(问题不是你的专属)。
2)、根据报错提示,点击 checkRegistry(AbstractInterfaceConfig.java:177) ,如下图所示,找到 registryConfig.isValid() ,打上断点,开启debugger,发现 RegistryConfig 这个类的属性为空,继续点击AbstractConfig 可以看到dubbo的配置方式:
dubbo-spring-boot-starter 2.7.5 高版本不在以 spring.dubbo为前缀,改成直接以 dubbo为前缀的配置,如下所示
spring.dubbo.registry.id = gc-dubbo-registry 改为 dubbo.registry.id = gc-dubbo-registry
2)、java.lang.IllegalStateException: Invalid name="org.apache.dubbo.config.ApplicationConfig#0" contains illegal character, only digit, letter, '-', '_' or '.' is legal.
方案:还是跟配置有关,注意相关dubbo的配置方式。比如:
dubbo.application.name=your-need-name
dubbo.application.id=xxx
链接: 混合配置导致的Invalid name="org.apache.dubbo.config.ApplicationConfig#0"问题 #6202
3)、KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss
解决方案:
A、查看zookeeper的机子是否可以连接,连接超时等情况。具体可以参考 zookeeper连接异常处理
B、dubbo版本与zookeeper版本问题或者项目少引入 zookeeper的依赖包。此处涉及的完整包如下:
<!-- https://mvnrepository.com/artifact/org.apache.dubbo/dubbo-spring-boot-starter --><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-spring-boot-starter</artifactId><version>2.7.5</version></dependency><!-- https://mvnrepository.com/artifact/org.apache.curator/curator-framework --><dependency><groupId>org.apache.curator</groupId><artifactId>curator-framework</artifactId><version>4.2.0</version></dependency><!-- dubbo所需其他依赖 使用alibaba的dubbo则不需要 --><dependency><groupId>org.apache.curator</groupId><artifactId>curator-recipes</artifactId><version>4.2.0</version></dependency><!-- zookeeper依赖 --><dependency><groupId>com.101tec</groupId><artifactId>zkclient</artifactId><version>0.7</version><exclusions><exclusion><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId></exclusion></exclusions></dependency>
4)、其他问题
java.lang.NoClassDefFoundError: org/apache/curator/framework/recipes/cache/TreeCacheListener
少了 curator-recipes 这个包
<!-- dubbo所需其他依赖 使用alibaba的dubbo则不需要 --><dependency><groupId>org.apache.curator</groupId><artifactId>curator-recipes</artifactId><version>4.2.0</version></dependency>
org.apache.zookeeper.KeeperException$UnimplementedException: KeeperErrorCode = Unimplemented for /dubbo/com.allen.dubbo.api.CostService/providers/dubbo%3A%2F%2F10.0.0.104%3A30003%2Fcom.allen.dubbo.api.CostService%3Fanyhost%3Dtrue%26application%3Dgc-dubbo-provider%26deprecated%3Dfalse%26dubbo%3D2.0.2%26dynamic%3Dtrue%26generic%3Dfalse%26interface%3Dcom.allen.dubbo.api.CostService%26methods%3Dadd%26pid%3D20708%26release%3D2.7.5%26side%3Dprovider%26timeout%3D10000%26timestamp%3D1617239293620
按着 3) 的包可以解决此问题
项目地址:https://github.com/krycai/gc-framework/tree/master/gc-dubbo
springboot 集成dubbo问题相关推荐
- SpringBoot集成Dubbo
#博学谷IT学习技术支持# 文章目录 1. 构建SpringBoot环境 1.1 创建一个dubbo-parent项目 1.2 引入依赖坐标 2. Linux 环境配置 2.1 安装docker 2. ...
- Dubbo——SpringBoot集成Dubbo(@Autowired和@Reference的区别、Dubbo的服务治理)
Dubbo--原生API实现远程调用_Strine的博客-CSDN博客 在上一篇文章中我们讲了如何使用原生API发起远程调用,显然这种方式肯定是非常麻烦的,因此我们这里就讲如何使用SpringBoot ...
- SpringBoot集成Dubbo框架
1. Dubbo框架 Dubbo框架是一个高性能.重量轻.基于java的RPC框架.Dubbo提供了三个关键功能,包括基于接口的远程调用.容错和负载平衡,以及自动服务注册和发现.Dubbo可以和Spr ...
- 【dubbo】springboot集成dubbo框架
1. dubbo介绍 dubbo是一款开源rpc框架,提供rpc调用诸多组件.支持服务注册与发现.服务负载均衡.服务容错.服务降级处理.服务失败尝试机制.服务监控等组件. 当我们项目拆分成微服务时,A ...
- SpringBoot集成Dubbo+Zookeeper
目录 Spring版本 dubbo_zookeeper负责定义接口 dubbo_provider 服务提供者 dubbo_consumer服务使用者 Spring版本 不知道为啥,新创建的Spring ...
- springboot 集成dubbo
一.引入相关依赖 pom.xml <!-- dubbo --> <dependency> <groupId>com.alibaba</groupId> ...
- SpringBoot与Dubbo的集成
简介 Dubbo 是一个分布式服务框架,致力于提供高性能和透明化的 RPC 远程服务调用方案,以 及 SOA 服务治理方案.简单的说,dubbo 就是个服务框架,如果没有分布式的需求,其实 是不需要用 ...
- 【SpringBoot整合Dubbo和Zookeeper】
本笔记内容为狂神说SpringBoot集成Dubbo和Zookeeper部分 目录 一.Dubbo dubbo基本概念 调用关系说明 二.Dubbo环境搭建 三.Window下安装zookeeper ...
- dubbo web工程示例_dubbo实战之二:与SpringBoot集成
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类和汇总,及配套源码,涉及Java.Docker.Kubernetes.DevO ...
最新文章
- 转载一篇开源http服务器(C语言)
- MySql中有哪些存储引擎
- Angular自学笔记(?)DI提供者
- 从零开始实现ASP.NET Core MVC的插件式开发(三) - 如何在运行时启用组件
- Codeforces Round #630 (Div. 2) F. Independent Set 树形dp
- [渝粤教育] 广东-国家-开放大学 21秋期末考试中国近现代史纲要(A)10881k1 (2)
- 实践实战:在PoC中的Oracle 12c优化器参数推荐(含PPT)
- 深入理解JVM读书笔记--Class文件结构
- 奇葩错误SLF4J: Failed to load class org.slf4j。。的修复
- dnf mysql密码多少_DNF 台服数据库密码加密算法
- Java异常处理之异常类继承层次
- 万用表的使用方法 (图解)
- ireport 使用list数据源
- ArcGIS山体坡度、坡向分析
- Linux 安装molten
- 隐藏在发表的宏基因组文章背后故事,如何发掘和学习
- 简单三步搭建公司内部论坛:安装部署Discuz 1-2
- 如何调换计算机桌面壁纸,怎样让电脑自动更换桌面背景
- 服务容错 - Hystrix
- allegro如何通过dra文件生产psm文件
热门文章
- java 用映射写工厂类_java23种设计模式——三、工厂模式
- 无法打开物理文件 XXX.mdf。操作系统错误 5:5(拒绝访问。)的解决办法
- 网站测试之死链接测试
- C++多线程:condition_variable
- FFmpeg显卡版编译安装
- 最近被吞噬星空动漫吸引,那就愉快的爬取一下小说看看吧!----Python爬虫
- 每日科技新闻速递 2022/08/19
- centos7+sendmail+dovecot配置邮件服务
- 红眼病患者有很多注意事项,尤其是在饮食上
- GetDlgItem、SendMessage、SetWindowText、GetWindowText、IsWindowVisible、ShowWindow、IsWindowEnabled按钮控件操作