Netty简介与入门

netty简介

Netty是由JBOSS提供的基于Java NIO的开源框架,Netty提供异步非阻塞、事件驱动、高性能、高可靠、高可定制性的网络应用程序和工具,可用于开发服务端和客户端。

netty 可以实现:

  • HTTP服务器
  • FTP服务器
  • UDP服务器
  • RPC服务器
  • WebSocket服务器
  • Redis的Proxy服务器
  • MySQL的Proxy服务器

传统HTTP服务器的实现

  • 1、创建一个ServerSocket,监听并绑定一个端口
  • 2、一系列客户端来请求这个端口
  • 3、服务器使用Accept,获得一个来自客户端的Socket连接对象
  • 4、启动一个新线程处理连接
    • 4.1、读Socket,得到字节流
    • 4.2、解码协议,得到Http请求对象
    • 4.3、处理Http请求,得到一个结果,封装成一个HttpResponse对象
    • 4.4、编码协议,将结果序列化字节流 写Socket,将字节流发给客户端
  • 5、继续循环步骤 3

HTTP服务器之所以称为HTTP服务器,是因为编码解码协议是HTTP协议。如果协议是Redis协议,那它就成了Redis服务器,如果协议是WebSocket,那它就成了WebSocket服务器,等等。
使用Netty你就可以定制编解码协议,实现自己的特定协议的服务器

原生JDK存在的问题:

  • 1、API复杂
  • 2、要对多线程很熟悉:因为NIO涉及到Reactor模式
  • 3、高可用的话:需要出路断连重连、半包读写、失败缓存等问题
  • 4、JDK NIO的bug

为什么选择Netty

  • API使用简单,更容易上手,开发门槛低
  • 功能强大,预置了多种编解码功能,支持多种主流协议
  • 定制能力高,可以通过ChannelHandler对通信框架进行灵活地拓展
  • 高性能,与目前多种NIO主流框架相比,Netty综合性能最高
  • 高稳定性,解决了JDK NIO的BUG
  • 经历了大规模的商业应用考验,质量和可靠性都有很好的验证
发布了61 篇原创文章 · 获赞 38 · 访问量 6万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 技术黑板 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览