NioEventLoopGroup # ÊÇÓÃÀ´´¦ÀíI/O²Ù×÷µÄ¶àÏß³ÌʼþÑ»·Æ÷ # Netty ÌṩÁËÐí¶à²»Í¬µÄ EventLoopGroupµÄʵÏÖÓÃÀ´´¦Àí²»Í¬µÄ´«Êä¡£ AbstractBootstrap # io.netty.bootstrap.AbstractBootstrap ChannelHandlerAdapter # io.netty.channel.ChannelHandlerAdapter ChannelHandler # io.netty.channel.ChannelHandler # handler ÖÐ×î¶¥²ãµÄ½Ó¿Ú SimpleChannelInboundHandler # io.netty.channel.SimpleChannelInboundHandler # Client¶ËHandler¼Ì³Ð # ½ÓÊÕµ½Êý¾Ýºó»á×Ô¶¯releaseµôÊý¾ÝÕ¼ÓõÄBytebuffer×ÊÔ´(×Ô¶¯µ÷ÓÃBytebuffer.release())¡£ ChannelInboundHandlerAdapter # io.netty.channel.ChannelInboundHandlerAdapter # Server¶ËHandler¼Ì³Ð # Õâ¸öÀàʵÏÖÁË ChannelInboundHandler ½Ó¿Ú # ÏÖÔÚ½ö½öÖ»ÐèÒª¼Ì³Ð ChannelInboundHandlerAdapter Àà¶ø²»ÊÇÄã×Ô¼ºÈ¥ÊµÏÖ½Ó¿Ú·½·¨ ChannelInboundHandler # io.netty.channel.ChannelInboundHandler # ChannelInboundHandler ½Ó¿ÚÌṩÁËÐí¶àʼþ´¦ÀíµÄ½Ó¿Ú·½·¨£¬È»ºóÄã¿ÉÒÔ¸²¸ÇÕâЩ·½·¨¡£ ByteToMessageDecoder # ChannelInboundHandler µÄÒ»¸öʵÏÖÀ࣬Ëû¿ÉÒÔÔÚ´¦ÀíÊý¾Ý²ð·ÖµÄÎÊÌâÉϱäµÃºÜ¼òµ¥ ReferenceCountUtil # io.netty.util.ReferenceCountUtil # ¾²Ì¬·½·¨ public static boolean release(Object msg); public static boolean release(Object msg, int decrement); ServerBootstrap # ·½·¨ option(ChannelOption.SO_BACKLOG,128); * ϵͳÄÚºË,TCPά»¤µÄÁ©¶ÓÁеij¤¶ÈµÄºÍ