Netty(0)概述

前言

学习了Java NIO的使用,了解了三个组件的作用
新开一个分类,开始学习Netty框架

NIO的缺点

  1. 类库和API繁琐,使用麻烦:Buffer、Channel、Selector的使用太复杂了,前面写一个简单的聊天都需要一环套一环,初始化许多类
  2. 开发工作量和难度较大,前面的学习仅仅实现了一个理想情况下的聊天,面对许多现实的情况:客户端断连重连、网络闪断、半包读写,处理的很困难
  3. 开发需要其他的知识,例如Java多线程并发等
  4. NIO存在一些bug:Epoll bug,Selector空轮询

Netty的说明

Netty官网
Netty is a NIO client server framework which enables quick and easy development of network applications such as protocol servers and clients. It greatly simplifies and streamlines network programming such as TCP and UDP socket server
在这里插入图片描述
这是官网上的图,明确的表现了Netty

  • Core(核心):Zore-Copy零拷贝;常用API;可扩展事件模块
  • 支持协议:HTTP(WebSocket)、SSL、压缩、大数据量传输等
  • 传输服务:Socket与Datagram(TCP/UDP)、HTTP Tunnel(Http隧道)、In-VM Pipe

Netty框架是基于NIO实现的,先在有Netty 3.x 、4.x,5.x被废弃了(复杂、有bug),现在常用的是Netty 4.1.x

Netty的优点

  • 优雅的API:适用各种传输通道的统一API,基于灵活和扩展的事件模型,高度可定制的线程模型
  • 使用方便,有详细记录的Javadoc,对其他的依赖较小,Netty 4.x可以支持JDK 6
  • 高性能,吞吐量高,延迟低,系统开销小
  • 安全性高:SSL、StartTLS安全协议
  • 社区活跃,更新快
发布了95 篇原创文章 · 获赞 25 · 访问量 4186

猜你喜欢

转载自blog.csdn.net/key_768/article/details/104732759