dubbo服务注册问题 调用服务超时

本文解析了Dubbo中出现的超时异常问题,并详细解释了如何正确配置注册中心地址来避免此类问题的发生。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

异常栈信息如下

Caused by: com.alibaba.dubbo.remoting.TimeoutException: Waiting server-side response timeout. start time: 2015-03-10 13:50:56.132, end time: 2015-03-10 13:51:06.139, client elapsed: 6 ms, server elapsed: 10001 ms, timeout: 10000 ms, request: Request [id=4, version=2.0.0, twoway=true, event=false, broken=false, data=RpcInvocation [methodName=subscribe, parameterTypes=[class com.alibaba.dubbo.common.URL, interface com.alibaba.dubbo.registry.NotifyListener], arguments=[consumer://10.0.30.38/com.alibaba.dubbo.registry.RegistryService?application=taxi-web&callbacks=10000&connect.timeout=10000&dubbo=2.5.3&interface=com.alibaba.dubbo.registry.RegistryService&lazy=true&methods=register,subscribe,unregister,unsubscribe,lookup&pid=20040&reconnect=false&sticky=true&subscribe.1.callback=true&timeout=10000&timestamp=1425966635807&unsubscribe.1.callback=false, com.alibaba.dubbo.registry.integration.RegistryDirectory@4b53aea8], attachments={sys_callback_arg-1=1263775400, path=com.alibaba.dubbo.registry.RegistryService, interface=com.alibaba.dubbo.registry.RegistryService, timeout=10000, version=0.0.0}]], channel: 10.0.30.38:0 -> /10.0.50.150:2181
at com.alibaba.dubbo.remoting.exchange.support.DefaultFuture.get(DefaultFuture.java:107)
at com.alibaba.dubbo.remoting.exchange.support.DefaultFuture.get(DefaultFuture.java:84)
at com.alibaba.dubbo.rpc.protocol.dubbo.DubboInvoker.doInvoke(DubboInvoker.java:96)
at com.alibaba.dubbo.rpc.protocol.AbstractInvoker.invoke(AbstractInvoker.java:144)
at com.alibaba.dubbo.rpc.protocol.dubbo.filter.FutureFilter.invoke(FutureFilter.java:53)
at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)
at com.alibaba.dubbo.monitor.support.MonitorFilter.invoke(MonitorFilter.java:75)
at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)
at com.alibaba.dubbo.rpc.filter.ConsumerContextFilter.invoke(ConsumerContextFilter.java:48)
at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91)
at com.alibaba.dubbo.rpc.listener.ListenerInvokerWrapper.invoke(ListenerInvokerWrapper.java:74)
at com.alibaba.dubbo.rpc.protocol.InvokerWrapper.invoke(InvokerWrapper.java:53)
at com.alibaba.dubbo.rpc.cluster.support.FailoverClusterInvoker.doInvoke(FailoverClusterInvoker.java:77)
… 85 more

看到这个错误不知道什么原因,注册中心用zookeeper, 最后发现properties文件里配置的注册中心地址一定是要带协议的,比如应该配置为:zookeeper://10.0.50.150:2181,而不是10.0.50.150:2181。

properties配置为10.0.50.150:2181会带来问题,因为没有配置注册中心协议,所以默认就是dubbo,这样这个地址其实变为了:dubbo://10.0.50.150:2181,dubbo会认为注册中心地址是一个dubbo服务,但其实10.0.50.150:2181运行的是一个zookeeper服务,根本不是dubbo服务,内部报错,然后注册时应用等待超时。

使用代码发布时 也一定要设置协议

       DUBBO_APPLICATION.setName(Config.getString("bdcsc2.explorer.application.name"));
       DUBBO_REGISTRY.setProtocol("zookeeper"); //注意该处
       DUBBO_REGISTRY.setAddress(ExConfig.ZK_CLUSTER_ADDRESS);

转载于:https://my.oschina.net/lichao100/blog/774863

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值