dubbo集群服务下一台服务挂了对服务调用的影响

Posted talk less and do more!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了dubbo集群服务下一台服务挂了对服务调用的影响相关的知识,希望对你有一定的参考价值。

一、问题描述:项目中2台dubbo服务给移动端提供查询接口,移动端反应说查询时而很快(秒刷),时而很慢(4-5秒)。

二、问题分析:

  1、问题猜想:网络不稳定原因导致,但是切换公司wifi和手机4G,问题依旧存在。说明问题不是网络原因导致

  2、因为服务提供者中有记录服务响应时间日志,打开2台服务提供者的日志,发现有一台不会打印最新日志,而所有的服务调用都在另一台,检查发现一台dubbo服务已经挂了(mark可能是问题原因)。

     继续分析正常使用的dubbo服务的响应日志发现。。响应时间都在200ms左右,从这可以看出服务响应也是没问题的。那是什么原因导致时快时慢的呢。

     既然正常服务调用没问题,那一定是集群环境中调用出问题了,想到一开始发现的一台dubbo服务已经挂了(zookeeper注册中心依然有这台服务的注册信息),而在集群负载均衡时,Dubbo缺省为random随机调用,当请求到挂了的provider时,会先执行重试,

     然后再选择集群中正常的provider提供的服务,这样经过重试再选择provider必然会耗时

     验证结果也印证了以上猜测:当访问快的时候,日志很快打印,而在访问慢的时候,后台日志也间隔几秒才打印,其中耗时都在重试和再选择服务上。

三、问题解决:把挂了的dubbo服务启动起来,问题没有再出现

 

  


以上是关于dubbo集群服务下一台服务挂了对服务调用的影响的主要内容,如果未能解决你的问题,请参考以下文章

Dubbo HA 高可用

分布于集群

妹妹问我:Dubbo集群容错负载均衡

妹妹问我:Dubbo集群容错负载均衡

Dubbo服务集群

java 部署springweb项目到两台服务器上,防止其中一台服务器挂了,另一台服务器顶上。