org.jboss.netty 突然停止服务

发布于 2024-12-21 20:25:18 字数 666 浏览 0 评论 0原文

我正在使用 org.jboss.netty 编写游戏服务器。老实说,这是我第一次编写 TCP/IP 应用程序。

Netty 突然停止在处理程序中调用我的函数。我尝试添加以下行来启动空闲连接:

LINE 1 TO PIPELINE :    pipeline.addLast("timeout", new IdleStateHandler(idleTimer, 82 , 0, 0));

LINES TO HANDLER :   
    public void channelIdle(ChannelHandlerContext ctx, IdleStateEvent e) throws Exception {
                    super.channelIdle(ctx, e);        
                        ctx.getChannel().close();
                }

我仍然面临同样的问题。

在这个游戏服务器中,我有定时任务(有单独的执行线程池),例如每 3 秒向 1800 个客户端发送消息。这会是一个问题吗?你有遇到过这样的问题吗?

我想定期向客户端推送数据可能是问题所在。因为当我们在 netty 中使用线程池时,缓慢的连接或糟糕的网络可能会导致发送队列过长,从而影响池中的可用线程数。你怎么认为 ?

I am coding a game server using org.jboss.netty. To be honest this is my first time I am coding TCP/IP application.

Netty suddenly stops calling my functions in handler. I tried adding the following lines to kick idle connections:

LINE 1 TO PIPELINE :    pipeline.addLast("timeout", new IdleStateHandler(idleTimer, 82 , 0, 0));

LINES TO HANDLER :   
    public void channelIdle(ChannelHandlerContext ctx, IdleStateEvent e) throws Exception {
                    super.channelIdle(ctx, e);        
                        ctx.getChannel().close();
                }

Still I am facing the same problem.

In this game server, I have timed tasks (have seperate executerthread pool), forexample every 3 seconds it sends message to 1800 clients. Can this be a problem ? Have you ever faced this kind of problem ?

I suppose pushing data to clients periodically may be the problem. Because as we use thread pool in netty , slow connections or bad network may cause long send queues thus effecting available thread count in pool. What do you think ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

当梦初醒 2024-12-28 20:25:18

您确定没有以某种方式阻止 ioworker 线程吗?我会采取一些线程转储来确定。

jstack <pid>

Are you sure you not block the ioworker thread somehow ? I would take some thread-dumps to be sure.

jstack <pid>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文