.千山. 2017-07-17 16:17 采纳率: 0%
浏览 3708
已结题

Netty4.1运行一段时间后监听端口收不到请求

项目用的Netty4.1编写, 情况是运行一段时间后,监听端口就接收不到前端请求,大概过1分钟自动又恢复,貌似运行越久这种状况出现的越是频繁。上线时并发测试还挺不错的。就是这个问题折腾到现在反复重现,求救大神。

关键代码如下:

 EventLoopGroup bossGroup = new NioEventLoopGroup();        //定义一个线程组,这个线程组的作用是用来接收客户端的连接
        EventLoopGroup workerGroup = new NioEventLoopGroup();   //定义一个线程组,这个线程组用来处理业务逻辑
        final EventExecutorGroup e2=new DefaultEventExecutorGroup(32);
        try 
        {
            ServerBootstrap b = new ServerBootstrap();  //定义一个ServerBootstarp类,这个类用来初始化netty服务器

            //将两个线程组绑定到ServerBootstarp中,channel使用的模式为非阻塞模式
            b.group(bossGroup, workerGroup);
            b.channel(NioServerSocketChannel.class);
            b.childHandler(new ChannelInitializer<SocketChannel>() 
            {
                int i = 0;
                @Override
                //当有连接接入的时候会调用这个方法
                public void initChannel(SocketChannel ch) throws Exception
                {
                    //server端发送的是httpResponse,所以要使用HttpResponseEncoder进行编码,将HttpResponse转化为ByteBuffer
                    ch.pipeline().addLast(new HttpResponseEncoder());
                    //server端接收到的是httpRequest,所以要使用HttpRequestDecoder进行解码,将HttpRequset解码为ByteBuffer
                    ch.pipeline().addLast(new HttpRequestDecoder());
                    //处理接收HTTP报文不全的特殊设置
                    ch.pipeline().addLast("aggregator", new HttpObjectAggregator(3200));
                    //收到客户端的连接之后就调用HttpServerInboundHandler来处理
                    //ch.pipeline().addLast(new HttpServerInboundHandler());
                    ch.pipeline().addLast(e2,new HttpServerInboundHandler());
                }
            });

            b.option(ChannelOption.SO_BACKLOG, 1024);
            b.childOption(ChannelOption.CONNECT_TIMEOUT_MILLIS,30);
            b.childOption(ChannelOption.SO_KEEPALIVE, false);

            ChannelFuture f = b.bind(port).sync();  //和套接字的绑定类似,监听班底的port端口
            f.channel().closeFuture().sync();   //等待结束
  • 写回答

2条回答 默认 最新

  • zqbnqsdsmd 2018-08-02 16:05
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的