zoukankan      html  css  js  c++  java
  • Netty源码分析——准备

    之前在工作中应用过netty,现在有一次用到,彻底的总结一下源码,加深理解。

    Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients.

    这是Netty官网介绍的Netty框架,netty框架的优势这里不过多介绍,用过netty的自然知道,本系列针对对netty有个应用经验的开发人员

    学习netty框架源码,需要几个前提

    • Java基础
    • Socket网络编程经验,最好明白nio原理
    • 多线程基础
    • 常用设计模式

    由于netty框架系统庞大,不可能直接从头到尾梳理,为了更好的学习和理解,我将netty拆分成了几个子流程。Netty系统设计的代码紧凑,重用性高,因此代码有些地方不太容易理解,即使拆分成几个子流程,流程之间的前后关联因为是非常紧密的。遇到不太明白的地方可以暂时跳过,重要把握主体脉络,最终融会贯通。

    我会从一个简单的服务器端代码,开始介绍。代码如下

     1 public class NettyServer {
     2 
     3     public static void main(String[] args) {
     4 
     5         EventLoopGroup boss = new NioEventLoopGroup(1);
     6         EventLoopGroup worker = new NioEventLoopGroup();
     7 
     8         try {   
     9             ServerBootstrap serverBootstrap = new ServerBootstrap()
    10                     .group(boss, worker)
    11                     .channel(NioServerSocketChannel.class)
    12                     .childHandler(new ChannelInitializer<SocketChannel>() {
    13 
    14                         @Override
    15                         protected void initChannel(SocketChannel ch) throws Exception {
    16                             ch.pipeline().addLast(new ServerHandler());
    17                         }
    18                     });
    19                 
    20 
    21             ChannelFuture channelFuture = serverBootstrap.bind(6666).sync();
    22             channelFuture.channel().closeFuture().sync();
    23 
    24         } catch (Exception e) {
    25             // TODO Auto-generated catch block
    26             e.printStackTrace();
    27         } finally {
    28             boss.shutdownGracefully();
    29             worker.shutdownGracefully();
    30         }
    31 
    32     }
    33 }

    不废话了,开始啃。
    具体子流程包括:

    后面详细讲解每一个子流程。

  • 相关阅读:
    js中常用的算法排序
    bootstrap Table的使用方法
    js中的继承
    js函数的节流与防抖
    along.js
    Vue组件通讯
    前端性能优化
    Vue路由学习心得
    Vue 2.0 路由全局守卫
    【前端】自适应布局方法总结
  • 原文地址:https://www.cnblogs.com/chirsli/p/12539347.html
Copyright © 2011-2022 走看看