启动引导类Bootstrap模块

目录

 

启动引导类Bootstrap模块

1)服务器启动引导类ServerBootstrap 

      1) group :设置线程组模型,Reactor线程模型对比EventLoopGroup

      2)channel:设置channel通道类型NioServerSocketChannel、OioServerSocketChannel

      3)  ***** option: 作用于每个新建立的channel,设置TCP连接中的一些参数,如下

      4)childOption: 作用于被accept之后的连接

      5) childHandler: 用于对每个通道里面的数据处理

 2、客户端启动引导类Bootstrap

            1)remoteAddress: 服务端地址

            2)handler:和服务端通信的处理器


启动引导类Bootstrap模块

大系统都有一个启动的引导类  启动的主流程 在里面加配置参数读取配置文件等 

    Netty启动引导类Bootstrap作用和tcp通道参数设置

    参考:  https://blog.csdn.net/QH_JAVA/article/details/78383543

1)服务器启动引导类ServerBootstrap 

      1) group :设置线程组模型,Reactor线程模型对比EventLoopGroup

                   1)单线程         一个接待员

                   2)多线程         一个接待员     多个服务生

                   3)主从线程     多个接待员      多个服务生

单线程 ):

多线程):

主从线程):

 

参考:https://blog.csdn.net/QH_JAVA/article/details/78443646

 

      2)channel:设置channel通道类型NioServerSocketChannel、OioServerSocketChannel

           建立文件通道的类型

      3)  ***** option: 作用于每个新建立的channel,设置TCP连接中的一些参数,如下

        ChannelOption.SO_BACKLOG: 存放已完成三次握手的请求的等待队列的最大长度;

        Linux服务器TCP连接底层知识:

              syn queue:半连接队列,洪水攻击,tcp_max_syn_backlog

 

              accept queue:全连接队列(等待), net.core.somaxconn

 

 系统默认的somaxconn参数要足够大 ,如果backlog(等待队列)比somaxconn大,则会优先用后者

                            https://github.com/netty/netty/blob/4.1/common/src/main/java/io/netty/util/NetUtil.java#L250

 ChannelOption.TCP_NODELAY: 为了解决Nagle的算法问题,默认是false,

要求高实时性,有数据时马上发送,就将该选项设置为true关闭Nagle算法;如果要减少发送次数,就设置为false,会累积一定大小后再发送;

 

 知识拓展:https://baike.baidu.com/item/Nagle%E7%AE%97%E6%B3%95/5645172

                                    https://www.2cto.com/article/201309/241096.html

4)childOption: 作用于被accept之后的连接

5) childHandler: 用于对每个通道里面的数据处理

 2、客户端启动引导类Bootstrap

            1)remoteAddress: 服务端地址

            2)handler:和服务端通信的处理器

猜你喜欢

转载自blog.csdn.net/qq_29235677/article/details/89068356
今日推荐