Hello Netty

Introduction of Netty

Posted by Vincent on August 21, 2020

When Netty is still not existed

What is Netty

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

Netty是一款异步事件驱动网络应用程序框架,支持快速地开发可维护的高性能的面向协议的服务器和客户端

The benefit of Netty

  1. 解耦了业务和网络逻辑
  2. 可测试性
  3. 面向接口编程。为OIO和NIO抽象出通用的API,实现了改一行代码就能转换。
  4. 封装了Java NIO的复杂性
    1. Java NIO解决了每个请求都要new一个thread的痛点
    2. Netty封装了Java NIO,让它更易用。
  5. NIO数据结构,比Java的ByteBuffer更好用。
  6. 线程模型
  7. 性能比Java NIO好
  8. handler编排,流水线,能够处理以任意顺序到达的request。

Netty目前真实使用场景

历史

组件

组件关系图

Background

Evolution of application deployment

  1. C语言的套接字库
  2. Java的 java.net包
1
2
3
ServerSocket serverSocket = new ServerSocket(portNumber);
Socket clientSocket = serverSoocket.accept();

  1. 扩展 : 只能针对整个系统。
  2. 将复杂的单体应用拆分为小的可独立部署的微服务组

Benefit

  1. 封装了网络编程的复杂性。
  2. 定义了一种架构模型,使得业务逻辑与网络层解耦。
  3. 模块化 & 可复用性
  4. 可测试性