项目场景:
SpringBoot在使用Dubbo框架对分布式服务进行调用
问题描述
在项目业务中为了解耦,使用Dubbo调用服务,在项目启动时报错Dubbo超时,并且三次调用都超时
dubbo:
application:
name: shopping_cart_service
registry:
address: zookeeper://192.168.66.100
port: 2181
timeout: 10000
protocol:
name: dubbo
port: -1
scan:
base-packages: com.sanjin.shopping_cart_service.service
原因分析:
首先检查Dubbo的配置服务,检查是否配置超时时间,发现只配置了注册到zk的超时时间,并没有配置生产者和服务者的超时时间
分别在Dubbo的服务提供者和消费者添加超时时间
producer:
timeout: 30000
customer:
timeout: 30000
解决方案:
在添加超时时间后启动项目
报新错
找到了服务调用超时的原因:
在调用生产者方法时,需要连接redis,连接失败,重启redis服务,检查连接,重启项目,问题解决
总结
遇到bug时不要慌,仔细阅读日志找到问题所在,解决问题。