加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – Akka警告“太多HashedWheelTimer实例”

发布时间:2020-12-16 18:50:41 所属栏目:安全 来源:网络整理
导读:当我的基于Akka 1.2的应用程序尝试使用超过500个左右的网格节点时,我收到以下警告: Jan 05,2012 1:36:43 PM org.jboss.netty.util.internal.SharedResourceMisuseDetectorWARNING: You are creating too many HashedWheelTimer instances. HashedWheelTimer
当我的基于Akka 1.2的应用程序尝试使用超过500个左右的网格节点时,我收到以下警告:

Jan 05,2012 1:36:43 PM org.jboss.netty.util.internal.SharedResourceMisuseDetector
WARNING: You are creating too many HashedWheelTimer instances.  
HashedWheelTimer is a shared resource that must be reused across the application,so that only a few instances are created.

我将更深入地研究Akka代码,以找出HashedWheelTimer的使用位置以及我应该做些什么来避免创建太多的.虽然我正在这样做,但我想我会在这里发布警告以防专家中的一位专家可能能给我一两个可能缩小并加速搜索的指针,好吗?

使用Akka 1.3-RC6,我得到以下异常:

Jan 12,2012 1:24:38 PM org.jboss.netty.util.HashedWheelTimer
WARNING: An exception was thrown by TimerTask.
org.jboss.netty.channel.ChannelException: Failed to open a socket.
    at org.jboss.netty.channel.socket.nio.NioClientSocketChannel.newSocket(NioClientSocketChannel.java:49)
    at org.jboss.netty.channel.socket.nio.NioClientSocketChannel.<init>(NioClientSocketChannel.java:83)
    at org.jboss.netty.channel.socket.nio.NioClientSocketChannelFactory.newChannel(NioClientSocketChannelFactory.java:139)
    at org.jboss.netty.channel.socket.nio.NioClientSocketChannelFactory.newChannel(NioClientSocketChannelFactory.java:86)
    at org.jboss.netty.bootstrap.ClientBootstrap.connect(ClientBootstrap.java:218)
    at org.jboss.netty.bootstrap.ClientBootstrap.connect(ClientBootstrap.java:188)
    at akka.remote.netty.ActiveRemoteClient.connect(NettyRemoteSupport.scala:470)
    at akka.remote.netty.ActiveRemoteClientHandler$$anonfun$channelClosed$1$$anon$4.run(NettyRemoteSupport.scala:599)
    at org.jboss.netty.util.HashedWheelTimer$HashedWheelTimeout.expire(HashedWheelTimer.java:519)
    at org.jboss.netty.util.HashedWheelTimer$Worker.notifyExpiredTimeouts(HashedWheelTimer.java:440)
    at org.jboss.netty.util.HashedWheelTimer$Worker.run(HashedWheelTimer.java:379)
    at java.lang.Thread.run(Thread.java:722)
Caused by: java.net.SocketException: Too many open files
    at sun.nio.ch.Net.socket0(Native Method)
    at sun.nio.ch.Net.socket(Net.java:323)
    at sun.nio.ch.Net.socket(Net.java:316)
    at sun.nio.ch.SocketChannelImpl.<init>(SocketChannelImpl.java:101)
    at sun.nio.ch.SelectorProviderImpl.openSocketChannel(SelectorProviderImpl.java:60)
    at java.nio.channels.SocketChannel.open(SocketChannel.java:142)
    at org.jboss.netty.channel.socket.nio.NioClientSocketChannel.newSocket(NioClientSocketChannel.java:47)
    ... 11 more

解决方法

已在Akka 2.0-M1中修复,我现在已将修复程序向后移植到1.3,它将在下一个RC中.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读