主要错误信息:

dubbo:com.alibaba.dubbo.rpc.RpcException: Failed to invoke the method...

Caused by: com.alibaba.dubbo.remoting.RemotingException: message can not send, because channel is closed .

com.alibaba.dubbo.remoting.TimeoutException: Waiting server-side response timeout.

MySQL版本:8.0.15

Eclipse版本: 2018-12 (4.10.0)

dubbox版本:2.8.4

zookeeper版本:3.4.6

近期使用dubbox、zookeeper搭建一个项目时主要出现上述问题。

一开始定位最简单的BUG(timeout),以为是设置的timeout时间不够(默认1000ms),后来设置将超时时间加长为60000ms。

<dubbo:provider delay="-1" timeout="60000" retries="0"/>

发现还是timeout,判断不是超时问题。

后续又检查了linux的网络地址,类的序列化都没有问题。

用一个小的不涉及查询的demo测试了下,发现可以正常访问及返回。

说明网络地址没问题,检查了类都进行了序列化。

考虑是调用方法中的查询操作有问题导致超时。

于是测试查询,发送无法正常返回数据。

初步定位问题出现在dao层。

考虑可能是jdbc驱动版本、xml文件语句等问题。

首先检查简单的,容易测试问题,将xml中的sql语句,直接放入Navicat运行发现正常。

考虑可能是驱动版本等问题。

于是先编写了一个测试案例,测试dao中需要使用的方法,发现无法正常运行。

并且弹出too many connection提升,修改了my.ini中最大连接数。

修改后再次运行,又弹出validateConnection false,原始druid版本为1.0.16,后来根据网上的建议换成了1.0.15版本。

修改后再次运行,又弹出creater connection fiail jdbc.url:localhost:3306....

考虑可能是驱动版本问题,查询以前正常项目所用jdbc版本为8.0.11,修改jdbc驱动为8.0.11

修改对应驱动配置:jdbc.driver=com.mysql.cj.jdbc.Driver(老版本驱动无需加cj,问题项目版本jdbc驱动为5.xx.xx)

修改后再次测试,运行正常,结果可以正常返回。

最后测试原有项目,运行正常。

问题原因:MySQL版本过新,较老的驱动无法正常运行,以及MySQL的一些配置问题。

本次寻找BUG总结:

这次寻找问题的过程中,一开始思路上就出现了问题。

最开始试图找到和自己所遇问题一样,可以直接生搬硬套解决问题的方案。

这种思想是不可取的,每个人所遇的问题由于平台环境等因素存在差异性。

没有找出问题出现的原因,只是单纯的按部就班,不一定能解决问题。

正确的做法应该是编写小的demo或测试,定位问题出在哪里,一步步缩小问题范围,然后针对性的寻找和分析问题。

再借助搜索引擎这样才能事半功倍。

寻找问题时应该先尝试解决容易解决的问题,如果比较同意解决的问题不是最终BUG在逐步去解决复杂的问题。

dubbox、zookeeper BUG记录的更多相关文章

  1. 【bug记录】OS Lab3 踩坑记

    OS Lab3 踩坑记 Lab3在之前Lab2的基础上,增加了进程建立.调度和中断异常处理.其中测试包括进程建立以及进程调度部分. 由于是第一次做bug记录,而且是调试完bug后再做的记录,所以导致记 ...

  2. 微信小程序bug记录与解决

    微信小程序bug记录 textarea textarea在模拟器上没有padding,可是在真机上会自带padding,而且在外部改不了,并且在安卓和IOS上padding还不一样 第一张图是在开发工 ...

  3. BUG 记录:移位运算与扩展欧几里得算法

    BUG 记录:移位运算与扩展欧几里得算法 起因 上个月就开始打算用C++写一个ECC的轮子(为什么?折磨自己呗!),奈何自己水平有点差,拖到现在才算写完底层的大数运算.在实现欧几里得算法的时候,我开始 ...

  4. ArcGIS 10.1 BUG记录

    声明:笔者使用ARCGIS 10.1 XXX版,YYY版可能没有此处描写的问题 1. 关于注册数据库 发布启用FA的服务,需要为数据库进行ArcGIS Server注册,若通过ArcMap执行注册,会 ...

  5. 前端bug记录---不定时更新

    在项目的开发中难免遇到各种各样的bug,我觉得还是有必要记录一下的,方便日后查询. safari window resize  为满足日常轮播需求,做一个符合当前业务的轮播插件,其中需要考虑windo ...

  6. bug记录-setTimeout、setInterval之IOS7

    本篇文章主要讲查找并分析bug的思路,相关的函数不是本文的重点. 众所周知,setTimeout和setInterval是用来做延迟调用以及周期性调用的方法,他们支持的参数都差不多. setTimeo ...

  7. CDH:5.14.0 中 Hive BUG记录

    CDH5.14.0使用的HIVE版本: 自建表log: +----------------------------------------------------+--+ | createtab_st ...

  8. 【bug记录】OS Lab4 踩坑记

    OS Lab4 踩坑记 Lab4在之前Lab3的基础上,增加了系统调用,难度增加了很多.而且加上注释不详细,开玩笑的指导书,自己做起来困难较大.也遇到了大大小小的bug,调试了一整天. 本文记录笔者在 ...

  9. 前端bug记录

    记录一下前端入门时期遇到的一些bug. 1.同步.异步问题 背景:Javascript语言的执行环境是单线程.即一次只能完成一个任务.若有多个任务则需排队逐个执行——前一个任务完成,再执行后一个任务. ...

随机推荐

  1. Codeforces Round #704 (Div. 2), problem: (C) Maximum width还是要多学习

    Problem - C - Codeforces 看清题目要求, 最重要部分在第二段. 大佬最后给出的代码果然简单, 思路简单化, 未必非要把答案在一个大括号里全部完成, 两个指针同时跑,中间加了一堆 ...

  2. go的调度

    操作系统根据资源访问权限的不同,体系架构可以分为用户空间和内核空间:内核空间主要操作访问CPU资源,IO资源,内存资源等硬件资源,为应用程序提供最基本的基础资源:用户空间是上层应用程序的固定活动空间, ...

  3. ionic系列教程 2 ---- 安装

    开发平台注意点首先,我们需要注意构建Ionic App需要的最低配置:Ionic只支持iOS6 +和Android 4.0 + ,(虽然2.3可以工作,但会有点卡).但是,Android设备众多,可能 ...

  4. 关于C++类定义中不能声明该类对象,而Java中可以的原因

    相信接触过C++的人,在学习Java的过程当中,会遇到这样一个问题:在Java中常常会在类定义中声明一个该类的对象(例如Person类定义中声明一些叫parents之类的Person对象),但是在C+ ...

  5. Vue3 setup详解

    setup执行的时机 在beforeCreate之前执行(一次),此时组件对象还没创建: this是undefined,不能通过this来访问data/computed/methods/props: ...

  6. XCTF练习题---MISC---hong

    XCTF练习题---MISC---hong flag:BCTF{cute&fat_cats_does_not_like_drinking} 解题步骤: 1.观察题目,下载附件 2.下载文件后发 ...

  7. Bugku CTF练习题---MISC---这是一张单纯的图片

    Bugku CTF练习题---MISC---这是一张单纯的图片 flag:key{you are right} 解题步骤: 1.观察题目,下载附件 2.打开以后发现是一张图片,修改文件扩展名,查看属性 ...

  8. 解析数仓OLAP函数:ROLLUP、CUBE、GROUPING SETS

    摘要:GaussDB(DWS) ROLLUP,CUBE,GROUPING SETS等OLAP函数的原理解析. 本文分享自华为云社区<GaussDB(DWS) OLAP函数浅析>,作者: D ...

  9. 1.5 Linux中大量使用脚本语言,而不是C语言!

    说到在 Linux 下的编程,很多人会想到用C语言,Linux 的内核.shell.基础命令程序,也的确是用C语言编写的,这首先证明了一点,C语言很强很通用. 到目前为止,C语言依然垄断着计算机工业中 ...

  10. 图文详解:小白也能看懂的 Kubernetes

    Kubernetes 这个单词来自于希腊语,含义是舵手或领航员 .其词根是 governor 和 cybernetic.K8s 是它的缩写,用 8 字替代了"ubernete". ...