rocketmq 使用netty,停止时报错
2017-03-21 00:00
543 查看
摘要: The web application [] created a ThreadLocal with key of type ,but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
线上项目发布时,发现tomcat出现如图所示日志,于是想找到出现这个日志的原因。
通过google搜索日志内容,发现相关的结果很少,其中有两个比较靠谱
1)https://github.com/netty/netty/issues/2084
2)https://github.com/relayrides/pushy/issues/29
通过以上两个帖子,初步分析原因:项目依赖了rocketmq,rockmq依赖了netty,tomcat停止时,由于mq的event executor由于是异步销毁的,所以出现了第一个图中的日志。如果需要消除日志,可以在销毁时延时1秒来解决。
日志中的报错可以忽略,不会有影响。
消除报错日志测试
在项目中重写了rocketmq的类NettyRemotingClient,在shutdown方法的最后加上sleep 1s做测试,停止tomcat,发现原来存在的报错不见了。
线上项目发布时,发现tomcat出现如图所示日志,于是想找到出现这个日志的原因。
通过google搜索日志内容,发现相关的结果很少,其中有两个比较靠谱
1)https://github.com/netty/netty/issues/2084
2)https://github.com/relayrides/pushy/issues/29
通过以上两个帖子,初步分析原因:项目依赖了rocketmq,rockmq依赖了netty,tomcat停止时,由于mq的event executor由于是异步销毁的,所以出现了第一个图中的日志。如果需要消除日志,可以在销毁时延时1秒来解决。
日志中的报错可以忽略,不会有影响。
消除报错日志测试
在项目中重写了rocketmq的类NettyRemotingClient,在shutdown方法的最后加上sleep 1s做测试,停止tomcat,发现原来存在的报错不见了。
相关文章推荐
- netty学习之五 netty在rocketmq中的使用
- (翻译)停止使用糟糕的MBO
- 使用批处理设置、启动和停止服务
- 使用批处理设置、启动和停止服务
- 使用批处理设置、启动和停止服务
- 停止使用套接字:JXTA所带来的优势
- [转]使用批处理设置、启动和停止服务
- 让服务不再停止(在Windows Service中使用Timer的技巧)
- window.showModalDialog 使用父窗口脚本停止执行
- 使用批处理文件命令行方式快速启动和停止IIS、SqlServer
- AJAX使用POST提交是,readyState停止为1为解决
- 让服务不再停止(在Windows Service中使用Timer的技巧)
- QQ及MSN将停止使用 未经证实
- sybase 整库 备份 使用 dump load 以及启动 停止Sybase
- 本站已经停止使用,新的地址
- 联合国2008年将停止使用繁体字, 挺无奈的。
- 使用SHELL命令来停止或者运行服务---service
- UBUNTU下停止使用[Ctrl] [Alt] [Delete]
- [翻译]Popfly系列课程4 - 使用Popfly介绍面向对象理论 --- 仅以此文纪念已经停止运营的Microsoft Popfly