Cobar AsynchronousCloseException

简介:

Cobar在测试的时候看到日志里会报很多如下的错误:

java.nio.channels.AsynchronousCloseException

atjava.nio.channels.spi.AbstractInterruptibleChannel.end

at sun.nio.ch.SocketChannelImpl.read

atcom.alibaba.cobar.net.AbstractConnection.read

at com.alibaba.cobar.net.NIOReactor$R.read

at com.alibaba.cobar.net.NIOReactor$R.run

at java.lang.Thread.run(Thread.java:722)

看一眼代码很容易看出WARNING的原因:Cobar的IO模型是reactor式的,采用Java的NIO

首先是Reader线程

Object att = key.attachment();

if (att != null&& key.isValid()) {

int readyOps = key.readyOps();

if((readyOps & SelectionKey.OP_READ) != 0) {

read((NIOConnection) att);

} elseif((readyOps & SelectionKey.OP_WRITE) != 0) {

write((NIOConnection) att);

} else{

key.cancel();

}

} else {

key.cancel();

}

再看后端Channel的close:

private void mysqlClose() {

try {

if (out != null){

out.write(QuitPacket.QUIT);

out.flush();

}

} catch (IOException e) {

LOGGER.error(toString(), e);

} finally {

try {

socket.close();

} catch (Throwable e) {

LOGGER.error(toString(), e);

}

}

}

Reader线程在从Socket读取的时候不是同步的,因此后端Channel关闭的时候Reader可能正在读取,换句话说,Reader会有一定概率从一个已经关闭的socket读取数据,因此报出这个异常,不过并不会影响实际业务,因为这个数据并不会被处理到;并且在Reader加同步会严重影响到系统的吞吐量,因此这个WARNING是可以忽略的.



本文转自MIKE老毕 51CTO博客,原文链接:http://blog.51cto.com/boylook/1300024,如需转载请自行联系原作者

相关文章
|
存储 Linux
Linux 配置 multipath 多路径
通常 Linux 主机挂载存储盘时,每次重启后对应的 /dev/sd* 都会变,而且不好辨识! 这时可以通过 multipath 多路径来绑定磁盘!
|
7月前
|
监控 前端开发 JavaScript
《得物商品详情页前端性能优化实战》
得物商品详情页前端性能优化实战:针对社区化、高图质、弱网低端机等挑战,通过BFF聚合、SSR流式渲染、图片视频极致压缩、虚拟列表等手段,实现LCP从4.5s→1.2s,TBT下降86%,转化率+9.6%。
|
7月前
|
缓存 监控 前端开发
前端性能优化实战:如何大幅减少应用加载时间?
本文系统讲解前端性能优化实战,涵盖代码分割、懒加载、CDN加速、HTTP/2/3、资源预加载、Brotli压缩、Tree Shaking等核心策略,并结合Lighthouse等工具持续监控。从构建、传输、渲染三维度提升加载速度,助你显著降低FCP/LCP,打造秒开流畅体验。(239字)
473 1
|
7月前
|
人工智能 自然语言处理 算法
AI搜索时代的可见度革命:GEO优化中除Json-LD外的核心方法论
在AI重塑搜索生态的当下,传统SEO正被生成式引擎优化(GEO)取代。本文系统阐述Geo专家于磊首创的“两大核心+四轮驱动”方法论——以人性化内容与交叉验证为根基,通过深度践行EEAT、结构化重构、AI化关键词演进及精准文献引用,助力企业突破Json-LD技术局限,在ChatGPT、Google AI Overviews等平台实现AI可见度与商业转化双跃升。(239字)
479 2
|
设计模式 人工智能 API
​​混合检索技术:如何提升AI智能体50%的响应效率?​
本文深入解析检索增强智能体技术,探讨其三大集成模式(工具模式、预检索模式与混合模式),结合实战代码讲解RAG组件链构建、上下文压缩、混合检索等关键技术,并提供多步检索工作流与知识库自更新机制设计,助力高效智能体系统开发。
970 1
|
7月前
|
人工智能 供应链 监控
开发wms系统该具备那些专业能力 低代码实现专业wms系统优势
2026年,WMS已跃升为串联供应链全环节的核心基础设施。本文从定义、技术、功能、行业适配、案例及趋势六大维度,系统解析专业WMS如何通过AI、IoT、低代码等技术实现库存精准管控、作业提效、成本优化与全链协同,助力企业深度数字化转型。
|
机器学习/深度学习 缓存 自然语言处理
30_情感分析变体详解:从极性到细粒度 - 深度解析与教学
情感分析(Sentiment Analysis),又称意见挖掘(Opinion Mining),是自然语言处理(NLP)领域的核心任务之一,旨在自动识别和提取文本中的情感信息。随着社交媒体的普及和用户生成内容的爆炸式增长,情感分析技术在商业决策、舆情监测、产品开发等领域发挥着越来越重要的作用。
917 1
|
开发者 索引 Python
从命名约定到特殊方法,Python下划线符号的妙用!
下划线(`_`)是Python开发者日常接触的重要符号,其含义和应用场景多样。本文全面解析了Python中下划线的不同用法,包括单下划线作为临时变量、国际化翻译函数、交互式解释器特殊变量;单下划线前缀表示保护成员;单下划线后缀避免关键字冲突;双下划线前缀触发名称改写;双下划线前后缀定义特殊方法等。此外,还介绍了数字分隔符、模式匹配通配符等新特性,并总结了下划线使用的最佳实践与常见问题解答。通过本文,读者可深入了解下划线在Python中的多重角色及其设计哲学。
894 2
|
人工智能 安全 前端开发
千星计划如何解决平台出入金难题?3大杠杆+1套风控闭环
千星计划通过三大杠杆和一套风控闭环解决平台出入金难题。核心是平衡用户提现需求与企业现金流压力,规避资金池风险。收益链设计采用动态分账,实时结算订单利润,避免资金池压力;支付闭环绑定真实交易,确保资金自循环;提现规则绑定任务,阶梯解锁,确保现金流用于增长;AI风控拦截异常订单,复活机制过滤无效用户。该模式轻资产运作,将出入金压力转化为增长动力。
|
存储
子网划分问题(实战超详解)_主机分配地址
本文详细介绍了子网划分的核心思想及步骤,通过实例演示如何根据所需主机数量借位生成子网,并确定每个子网的网络地址、广播地址及可用 IP 范围。以一个自治系统的具体需求为例,展示了子网划分的实际应用过程。
1546 13