Netty在Spring启动中

2019-09-26  本文已影响0人  anyly
1. 该启动方式无需单独开线程启动netty,dubbo的NettyService就是此方式
  public static void main(String[] args) {
        ServerBootstrap serverBootstrap = new ServerBootstrap();
        // boos接受新连接线程,主要负责创建新连接(从dubbo copy 过来)
        NioEventLoopGroup boos = new NioEventLoopGroup(1,
                new DefaultThreadFactory("NettyServerBoss", true));
        // worker负责读取数据的线程,主要用于读取数据以及业务逻辑处理(从dubbo copy 过来)
        NioEventLoopGroup worker = new NioEventLoopGroup(10,
                new DefaultThreadFactory("NettyServerWorker", true));
        try {
            serverBootstrap
                    .group(boos, worker)
                    .channel(NioServerSocketChannel.class)
                    .childHandler(new SimpleServiceChannelInitializer());

            ChannelFuture channelFuture = serverBootstrap.bind(10086);
            channelFuture.syncUninterruptibly();
            channelFuture.channel();
          //该启动方式为了阻塞主线程
            Thread.sleep(200000);
        } catch (Exception e) {

        } finally {
            boos.shutdownGracefully();
            worker.shutdownGracefully();
        }

    }
上一篇下一篇

猜你喜欢

热点阅读