编程语言
首页 > 编程语言> > 一、netty源码分析之概述

一、netty源码分析之概述

作者:互联网

作为Java程序员,netty大家应该都或多或少的接触过。netty作为一个异步事件驱动的网络框架被广泛使用。我们从netty的官网的一张图上可以看到netty有哪些特点:
netty
netty的核心能力有三点:

在这三种核心能力的基础上,扩展出了对多种协议和传输服务的支持。
当然netty的优点不仅仅如此,后面我们将会通过源码的方式来分析netty到底有哪些优势。接下来的文章已经默认了大家熟悉netty的基本使用。

这里先贴出来一段最简单的netty创建服务端的代码(摘自netty官网https://netty.io/wiki/user-guide-for-4.x.html),接下来的分析都是基于接下来的这段代码:

EventLoopGroup bossGroup = new NioEventLoopGroup(); // (1)
        EventLoopGroup workerGroup = new NioEventLoopGroup();
        try {
            ServerBootstrap b = new ServerBootstrap(); // (2)
            b.group(bossGroup, workerGroup)
             .channel(NioServerSocketChannel.class) // (3)
             .childHandler(new ChannelInitializer<SocketChannel>() { // (4)
                 @Override
                 public void initChannel(SocketChannel ch) throws Exception {
                     ch.pipeline().addLast(new DiscardServerHandler());
                 }
             })
             .option(ChannelOption.SO_BACKLOG, 128)          // (5)
             .childOption(ChannelOption.SO_KEEPALIVE, true); // (6)
    
            // Bind and start to accept incoming connections.
            ChannelFuture f = b.bind(port).sync(); // (7)
    
            // Wait until the server socket is closed.
            // In this example, this does not happen, but you can do that to gracefully
            // shut down your server.
            f.channel().closeFuture().sync();
        } finally {
            workerGroup.shutdownGracefully();
            bossGroup.shutdownGracefully();
        }

接下来的源码分析是基于netty的4.1.39.Final版本。

标签:netty,接下来,workerGroup,bossGroup,源码,概述,new
来源: https://blog.csdn.net/feijianke666/article/details/100558950