前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【SpringBoot系列】如何解决Dubbo中生产者未启动,消费者启动报错

【SpringBoot系列】如何解决Dubbo中生产者未启动,消费者启动报错

作者头像
林老师带你学编程
发布2019-05-25 23:50:01
1.6K0
发布2019-05-25 23:50:01
举报
文章被收录于专栏:强仔仔强仔仔强仔仔

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://cloud.tencent.com/developer/article/1434168

今天遇到一个巨坑的问题,就是这个问题导致测试环境的服务都出现500错误。不知道大家有没有遇到过,服务消费者先启动,服务提供者后启动,导致消费者中@Reference实例化的对象都是null的。这也是为什么将代码部署到测试环境所有接口都报500错误的原因,到目前为止还是有点不清楚原因,为什么web项目就可以,SpringBoot项目就不行。后面因为项目时间原因也没有深究原因,就这么不了了之了,目前猜测可能是dubbo没有实时去同步zookeeper,所以后期注册的服务就发现不了了。

问题说清楚了,现在我们来说一说具体的解决方法,一个是在配置文件中添加相应的注解,可是后面发现没作用,但是网络上说可以,因为没有亲自检测过,所以我这边就不贴出来了。还有一种就是今天要介绍的方法了,在配置类中添加如下的信息就可以了,代码如下所示:

/**
 * 消费者配置不主动监督zookeeper服务
 *
 * @return
 */
@Bean
public ConsumerConfig consumerConfig() {
   ConsumerConfig consumerConfig = new ConsumerConfig();
   consumerConfig.setCheck(false);
   consumerConfig.setTimeout(20000);
   return consumerConfig;
}

这样就可以了,不管是服务提供者还是服务消费者谁先启动,都可以通过@Reference实例化的对象。加上这个之后,测试环境终于没有出现500的null指针错误了。这边还有一点需要注意的是:很多时候服务提供者既是服务消费者,所以都得加上上面给出的代码。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年08月12日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档