[] 2019-11-23 16:17:40 [3673645] [c.a.d.r.t.d.ChannelEventRunnable]-[WARN] DubboServerHandler-10.20.30.17:8803-thread-99   [DUBBO] ChannelEventRunnable handle RECEIVED operation error, channel is NettyChannel [channel=[id: 0xe0668113, /10.20.30.17:7470 :> /10.20.30.17:8803]], message is Request [id=8907, version=2.0.0, twoway=true, event=false, broken=false, dame=RpcInvocation [methodName=invoke, parameterTypes=[class com.xxx.me.dubbo.DubboMethodParameter], arguments=[com.xxx.me.dubbo.DubboMethodParameter@65563c18], atmechments={path=com.xxx.me.dubbo.inf.DubboProxyService, input=1109, jrescloud=1.0.12, interface=com.xxx.me.dubbo.inf.DubboProxyService, version=1.0.0.0, timeout=7200000, group=me5}]], dubbo version: hs1.0, current host: 10.20.30.17
com.alibaba.dubbo.remoting.RemotingException: Failed to send message Response [id=8907, version=2.0.0, smetus=20, event=false, error=null, result=RpcResult [result={"result":true,"code":"0","headers":null,"msg":"分库接口文件处理成功","count":-1,"dame":null,"bizResult":true,"bizCode":"","bizMsg":"","additionalCode":"","additionalInfo":""}, exception=null]] to /10.20.30.17:7470, cause: null
at com.alibaba.dubbo.remoting.transport.netty.NettyChannel.send(NettyChannel.java:108) ~[jrescloud-dubbo-core-1.0.12.jar!/:1.0.12]
at com.alibaba.dubbo.remoting.transport.AbstractPeer.send(AbstractPeer.java:51) ~[jrescloud-dubbo-core-1.0.12.jar!/:1.0.12]
at com.alibaba.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.received(HeaderExchangeHandler.java:171) ~[jrescloud-dubbo-core-1.0.12.jar!/:1.0.12]
at com.alibaba.dubbo.remoting.transport.DecodeHandler.received(DecodeHandler.java:52) ~[jrescloud-dubbo-core-1.0.12.jar!/:1.0.12]
at com.alibaba.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.run(ChannelEventRunnable.java:82) [jrescloud-dubbo-core-1.0.12.jar!/:1.0.12]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
at java.lang.Thread.run(Thread.java:831) [?:?]
Caused by: java.nio.channels.ClosedChannelException
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.cleanUpWriteBuffer(AbstractNioWorker.java:434) ~[netty-3.7.0.Final.jar!/:?]
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.writeFromUserCode(AbstractNioWorker.java:129) ~[netty-3.7.0.Final.jar!/:?]
at org.jboss.netty.channel.socket.nio.NioServerSocketPipelineSink.handleAcceptedSocket(NioServerSocketPipelineSink.java:99) ~[netty-3.7.0.Final.jar!/:?]
at org.jboss.netty.channel.socket.nio.NioServerSocketPipelineSink.eventSunk(NioServerSocketPipelineSink.java:36) ~[netty-3.7.0.Final.jar!/:?]
at org.jboss.netty.channel.Channels.write(Channels.java:725) ~[netty-3.7.0.Final.jar!/:?]
at org.jboss.netty.handler.codec.oneone.OneToOneEncoder.doEncode(OneToOneEncoder.java:71) ~[netty-3.7.0.Final.jar!/:?]
at org.jboss.netty.handler.codec.oneone.OneToOneEncoder.handleDownstream(OneToOneEncoder.java:59) ~[netty-3.7.0.Final.jar!/:?]
at com.alibaba.dubbo.remoting.transport.netty.NettyHandler.writeRequested(NettyHandler.java:99) ~[jrescloud-dubbo-core-1.0.12.jar!/:1.0.12]
at org.jboss.netty.channel.Channels.write(Channels.java:704) ~[netty-3.7.0.Final.jar!/:?]
at org.jboss.netty.channel.Channels.write(Channels.java:671) ~[netty-3.7.0.Final.jar!/:?]
at org.jboss.netty.channel.AbstractChannel.write(AbstractChannel.java:248) ~[netty-3.7.0.Final.jar!/:?]
at com.alibaba.dubbo.remoting.transport.netty.NettyChannel.send(NettyChannel.java:98) ~[jrescloud-dubbo-core-1.0.12.jar!/:1.0.12]
... 7 more

服务器或服务端进程负载太高都有可能发生上述异常。

ClosedChannelException 一般是由 Netty 主动抛出的,有可能是服务器端主动关闭,也可能是客户端关闭,都会导致写失败。参考:Netty 中 IOException: Connection reset by peer 与 java.nio.channels.ClosedChannelException: null

进一步分析客户端异常,差不多在此前一刻,dubbo消费端有断开服务器的警告,如下:

[] 2019-11-23 16:08:57 [182976410] [c.a.d.r.z.ZookeeperRegistry]-[INFO] Curator-Framework-0-EventThread   [DUBBO] Notify urls for subscribe url consumer://10.20.30.17/com.xxx.me.dubbo.inf.DubboProxyService?application=mebase-service&category=providers,configurators,routers&default.check=false&default.lazy=false&default.loadbalance=roundrobin&default.retries=0&default.timeout=30000&group=me5&interface=com.xxx.me.dubbo.inf.DubboProxyService&jrescloud=hs1.0&methods=invoke&pid=32359&revision=SNAPSHOT&scope=remote&side=consumer&timeout=7200000&timesmemp=1574313912764&version=1.0.0.0, urls: [dubbo://10.20.30.17:8803/com.xxx.me.dubbo.inf.DubboProxyService?accepts=1000&alive=60000&anyhost=true&apis=&appalias=xxx me me5 service&application=me5-service&appport=8703&charset=utf-8&corethreads=100&generic=false&group=me5&interface=com.xxx.me.dubbo.inf.DubboProxyService&jrescloud=hs1.0&methods=invoke&pid=68933&registry.after.spring=false&revision=20191118.062113-155&side=provider&threads=500&timesmemp=1574493535566&version=1.0.0.0, dubbo://10.20.30.17:8802/com.xxx.me.dubbo.inf.DubboProxyService?accepts=1000&alive=60000&anyhost=true&apis=&appalias=xxx me me5 service&application=me5-service&appport=8702&charset=utf-8&corethreads=100&generic=false&group=me5&interface=com.xxx.me.dubbo.inf.DubboProxyService&jrescloud=hs1.0&methods=invoke&pid=68946&registry.after.spring=false&revision=20191118.062113-155&side=provider&threads=500&timesmemp=1574493531817&version=1.0.0.0], dubbo version: hs1.0, current host: 10.20.30.17
[] 2019-11-23 16:08:57 [182976411] [c.a.d.r.t.n.NettyChannel]-[INFO] Curator-Framework-0-EventThread [DUBBO] Close netty channel [id: 0x60446a7b, /10.20.30.17:11579 => /10.20.30.17:8801], dubbo version: hs1.0, current host: 10.20.30.17
[] 2019-11-23 16:08:57 [182976414] [c.a.d.r.p.d.DubboProtocol]-[INFO] DubboSharedHandler-thread-5 [DUBBO] disconected from /10.20.30.17:8801,url:dubbo://10.20.30.17:8801/com.xxx.me.dubbo.inf.DubboProxyService?accepts=1000&anyhost=true&apis=&appalias=xxx me me5 service&application=mebase-service&appport=8701&charset=utf-8&check=false&codec=dubbo&default.check=false&default.lazy=false&default.loadbalance=roundrobin&default.retries=0&default.timeout=30000&generic=false&group=me5&heartbeat=15000&interface=com.xxx.me.dubbo.inf.DubboProxyService&jrescloud=hs1.0&methods=invoke&pid=32359&registry.after.spring=false&revision=SNAPSHOT&scope=remote&side=consumer&timeout=7200000&timesmemp=1574313912764&version=1.0.0.0, dubbo version: hs1.0, current host: 10.20.30.17

当客户端超过heartbeatTimeout没有收到服务端的应答心跳时,就会认为服务器挂了,主动断开连接。所以对这些巨型请求,要么使用MQ作为通信机制、要么轮训数据库、要么将超时时间设置的足够长,从而使得连接不被误关闭(从稳定的角度来说,用mq解耦是更加合理的);同时使用zk临时节点作为连接的跟踪机制(这一步是极为关键的,只有它能够是被服务方真的挂了,而不是临时僵死)。

这样就可能会导致服务已经执行完成,但是客户端永远都收不到了,即使以后恢复了连接仍然如此。

dubbo接收请求并发送已接收请求相关源码,可参见:https://www.cnblogs.com/java-zhao/p/7821908.html

dubbo netty-server源码参见:https://www.jianshu.com/p/cebc90b39eb7

ChannelEventRunnable handle RECEIVED operation error, channel is NettyChannel解决方法的更多相关文章

  1. vss error reading from file 解决方法

    vss error reading from file 解决方法 1 若服务器中存在 vss/data/backup目录,请将该目录删掉2 运行cmd cd.. cd C:\Program Files ...

  2. 安装CAD出现Error 1904.Module的解决方法

    在安装AutoCAD2008时,安装过程中出现了一个小错误,虽然说不影响使用,也不影响功能,但还是需要把这个问题解决,今天就和大家分享解决这个问题的方法. 错误描述 会在安装过程中出现错误提示:Err ...

  3. 关于163发邮件报错535 Error:authentication failed解决方法

    关于发邮件报错535 Error:authentication failed解决方法 调用163邮箱服务器来发送邮件,我们需要开启POP3/SMTP服务,这时163邮件会让我们设置客户端授权码,这个授 ...

  4. mysql主从同步失败Last_IO_Error: Got fatal error 1236 from master解决方法

    mysql教程主从同步失败Last_IO_Error: Got fatal error 1236 from master解决方法 遇到这样的错误如:“Last_IO_Error: Got fatal ...

  5. MySQL数据库”mysql SQL Error:1146,SQLState:42S02 “解决方法

    项目在开发的时候在Mac平台下开发的,开发完了之后在LINUX环境上部署好之后,运行时MySQL数据库报错,提示为某个表不存在之类的错误信息,后来修改了MySQL的配置文件将大小写敏感去掉,问题解决. ...

  6. Myeclipse运行报错:an out of memory error has occurred的解决方法

    不知道怎么了,重装的myeclipse2013,里边就放了一个项目,启动myeclipse就报 an out of memory error has occurred....... 一点yes就退出 ...

  7. vmware workstation unrecoverable error: (vmui)报错解决方法

    实验室7月份刚换了电脑,之前一直用vmware来跑linux搞嵌入式开发,无论是宿舍的笔记本,还是之前用的旧台式机,都可以妥妥的跑vmware没有问题,结果换了新电脑之后,装上vmware works ...

  8. MySQL Workbench “Error Code: 1175” 的解决方法

    转自:http://www.linuxidc.com/Linux/2012-04/59333.htm 当用MySQL Workbench进行数据库的批量更新时,执行一个语句会碰到以下错误提示: Err ...

  9. MySQL出错:ERROR 1045 (28000)的解决方法

    MySQL突然不能用了,症状如下: [root@bogon ok]# mysql ERROR (): Access denied for user 'root'@'localhost' (using ...

随机推荐

  1. MYSQL使用mysqldump导出表的部分数据

    MySQLdump是MySQL自带的导出数据工具,通常我们用它来导出MySQL中,但是有时候我们需要导出MySQL数据库中某个表的部分数据,这时该怎么办呢? mysqldump命令中带有一个 --wh ...

  2. shell:echo -e "\033字体颜色"

    格式: echo -e "\033[字背景颜色;字体颜色m字符串\033[0m" 例如: echo -e "\033[41;36m 你好 \033[0m" 其中 ...

  3. 排序算法的c++实现——堆排序

    我们利用最大堆可以实现数组从小到大的原址排序,利用最小堆的可以实现对数组从大到小的原址排序. 1  二叉堆的简单介绍: 最大堆与最小堆可以当作通过数组来实现的一个完全二叉树,除了最底层之外其它层都是满 ...

  4. RxJS——主题(Subject)

    主题(Subjects) 什么是主题?RxJS 主题就是一个特性类型的 Observable 对象,它允许值多路广播给观察者(Observers).当一个简单的 Observable 是单播的(每个订 ...

  5. zabbix--4.0源码安装

    Zabbix4.0 源码编译安装 ps:其实相对 zabbix 来说,直接按照官网 yum 安装还是要方便点,我这里已经有 lnmp 的环境了,就想自己编译安装试下. 官网yum安装中文文档:http ...

  6. Redis持久化 - RDB和AOF

    原文:https://segmentfault.com/a/1190000016021217 一.持久化的作用 1. 什么是持久化 持久化(Persistence),即把数据(如内存中的对象)保存到可 ...

  7. eclipse使用mybatis实现Java与xml文件相互跳转

    原文:https://jingyan.baidu.com/article/8ebacdf0f06c8c09f65cd5a0.html 一直习惯使用eclipse,看见同事使用IDEA,直接从Java类 ...

  8. Spring Boot 之:Spring Boot Admin

    client 连接都 admin 时报错: 2019-08-22 11:58:37.695 ERROR 55095 --- [nio-8000-exec-1] o.a.catalina.connect ...

  9. python文件读取,替换(带格式,python lib 库)

    import os, time import sys import re def read_old_part(filename, start, end): content = [] recording ...

  10. (转)虚拟文件系统(VFS)浅析

    http://www.cnblogs.com/zsw-1993/p/5048144.html 在我看来, "虚拟"二字主要有两层含义: 1, 在同一个目录结构中, 可以挂载着若干种 ...