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

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

二、问题分析:

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

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

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

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

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

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

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

  

原文地址:https://www.cnblogs.com/shuaiqing/p/9480679.html

时间: 2024-08-29 20:25:15

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

kubernetes集群traefik ingress实现同一命名空间不同微服务模块的访问

背景:kubernetes集群traefik ingress实现同一命名空间不同微服务模块的访问1.安装traefik ingresscat > traefik-ingress.yaml <<EOF kind: ClusterRoleapiVersion: rbac.authorization.k8s.io/v1metadata:name: traefik-ingress-controllerrules: apiGroups: ""resources: pods se

集群环境下定时任务调度问题与方案探讨

摘要 问题:从单机扩展到集群 方案一:不做改造,直接扩展 方案二:多处调度.一处执行 方案三:一处调度.一处执行 方案四:一处调度.多处执行 方案五:多处调度.多处执行 摘要 从改造工作量.可用性.负载均衡.资源利用等方面,简单介绍了几种集群环境下定时任务调度的方案. 问题:从单机扩展到集群 单机环境的定时任务很简单.无论是用比较原始的Timer,还是用自成体系的quartz.spring-scheduler,都可以轻松写意的实现功能. 但是,当应用水平扩展到集群环境下时, 定时任务会出现重复调

CAS服务器集群和客户端集群环境下的单点登录和单点注销解决方案

CAS的集群环境,包括CAS的客户应用是集群环境,以及CAS服务本身是集群环境这两种情况.在集群环境下使用CAS,要解决两个问题,一是单点退出(注销)时,CAS如何将退出请求正确转发到用户session所在的具体客户应用服务器,而不是转发到其他集群服务器上,二是解决CAS服务端集群环境下各种Ticket信息的共享. CAS集群部署 由于CAS Server是一个Web应用,因此可部署在Tomcat等容器中.直接部署CAS集群并使用负载均衡配置后,由于每次访问的CAS Server不固定,会发生通

Ubuntu14(64位) 集群环境下安装Hadoop2.4

经过前边的积累,今天终于实现了集群环境下部署Hadoop,并成功运行了官方的例子. 工作如下: 两台机器: NameNode:上网小本,3G内存,机器名:YP-X100e,IP:192.168.101.130. DataNode:虚拟机,Win7下载VMWare10中虚拟Ubuntu14,虚拟机器名:ph-v370,IP:192.168.101.110 确保可互相ping通,按照机器名和IP配置各自机器的/etc/hosts文件和/etc/hostname文件,我的hosts配置内容如下 127

集群中配置多台机器之间 SSH 免密码登录

集群中配置多台机器之间 SSH 免密码登录 问题描述 由于现在项目大多数由传统的单台机器部署,慢慢转变成多机器的集群化部署. 但是,这就涉及到机器间的 SSH 免密码互通问题. 当集群机器比较多的时候,如何能快速简洁地配置机器之间的免密码登录呢? 完美方案 1.分别查看集群的机器上,是否安装了 SSH,并且服务正常运行 ps -ef | grep ssh 2.如果步骤 1 检查后,确认没有安装 SSH,可以通过如下命令安装 SSH sudo apt-get install ssh 找到隐藏目录.

Dubbo集群-负载均衡

Dubbo集群-负载均衡 你需要一个dubbo-admin的压缩包 你需要将解压包放到tomcate文件下的webapps内(修改E:\tomcat-apache\apache-tomcat-7.0.64\webapps\dubbo-admin\WEB-INF\dubbo.properties中zookeeper地址) 你需要再zookeeper服务启动的情况下,启动tomcate(tomcate/bin/startup.bar) 登录localhost:8080/dubbo-admin 访问页

基于HBase Hadoop 分布式集群环境下的MapReduce程序开发

HBase分布式集群环境搭建成功后,连续4.5天实验客户端Map/Reduce程序开发,这方面的代码网上多得是,写个测试代码非常容易,可是真正运行起来可说是历经挫折.下面就是我最终调通并让程序在集群上运行起来的一些经验教训. 一.首先说一下我的环境: 1,集群的环境配置请见这篇博文. 2,开发客户机环境:操作系统是CentOS6.5,JDK版本是1.7.0-60,开发工具是Eclipse(原始安装是从google的ADT网站下载的ADT专用开发环境,后来加装了Java企业开发的工具,启动Flas

分布式集群环境下,如何实现session共享三(环境搭建)

这是分布式集群环境下,如何实现session共享系列的第三篇.在上一篇:分布式集群环境下,如何实现session共享二(项目开发)中,准备好了一个通过原生态的servlet操作session的案例.本篇需要搭建相关的环境,包括:tomcat.nginx.redis. 1.通过两个tomcat搭建集群:tomcat_1.tomcat_2 2.通过nginx实现负载均衡 3.通过redis存储session 1.安装tomcat 1.1.tomcat_1 上传tomcat_1到服务器192.168.

Redis集群环境下的键值空间监听事件实现方案

一直想记录工作中遇到的问题和解决的方法,奈何没有找到一方乐土,最近经常反思,是否需要记录平时的点滴,后台还是决定下定决心记录一些,以便以后用到的时候找不着,实现这样的一个功能主要也是业务所需要的. 需求:要求统计所有会员在线人数,并根据会员在线状态同步改变人数. 之前用户登录使用session去控制,那么可以通过session进行在线用户人数统计,后来实现无状态不在依赖session作为用户在线的标准,使用Redis替换了Session,那么用户直接退出也好做,但是会存在用户直接关闭页面的情况,

集群中配置多台计算机之间ssh无密码登录的一种简便方法

当我们在配置多台计算,使之可以相互使用无密码登录-ssh,之前都是一台一台的配置,现在一台A上添加B,然后在另一台B上再次添加A,这样使得 authorized_keys中的内容相同,但时并不是完全相同,比如添加顺序.如果超过2台,这种配置就相当复杂了,而且容易出错.后来,在网上看到 了一种简单的配置,所有机器只需配置一遍即可. 1.安装ssh.  sudo apt-get install ssh. 安装完成后会在~目录(当前用户主目录,即这里的/home/xuhui)下产生一个隐藏文件夹.ss