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
- 解耦了业务和网络逻辑
- 可测试性
- 面向接口编程。为OIO和NIO抽象出通用的API,实现了改一行代码就能转换。
- 封装了Java NIO的复杂性
- Java NIO解决了每个请求都要new一个thread的痛点
- Netty封装了Java NIO,让它更易用。
- NIO数据结构,比Java的ByteBuffer更好用。
- 线程模型
- 性能比Java NIO好
- handler编排,流水线,能够处理以任意顺序到达的request。
Netty目前真实使用场景
历史
组件
组件关系图
Background
Evolution of application deployment
- C语言的套接字库
- Java的 java.net包
1
2
3
ServerSocket serverSocket = new ServerSocket(portNumber);
Socket clientSocket = serverSoocket.accept();
- 扩展 : 只能针对整个系统。
- 将复杂的单体应用拆分为小的可独立部署的微服务组
Benefit
- 封装了网络编程的复杂性。
- 定义了一种架构模型,使得业务逻辑与网络层解耦。
- 模块化 & 可复用性
- 可测试性