Netty是用于Java的高性能IO工具包。 Netty是开源的,所以你可以自由使用它,甚至可以为它做出贡献。 本Netty教程将解释Netty如何工作,以及如何开始使用Netty。 本教程不会涵盖Netty的每一个细节。
Netty介绍
Netty是一款NIO客户端服务器框架,可以快速轻松地开发协议服务器和客户端等网络应用程序。 它极大地简化并简化了TCP和UDP套接字服务器等网络编程。
'快速和简单'并不意味着由此产生的应用程序将受到可维护性或性能问题的困扰。 Netty的设计经验非常丰富,包括FTP,SMTP,HTTP以及各种基于二进制和基于文本的传统协议等。 因此,Netty成功地找到了一种方法来实现轻松的开发。
特征
1、适用于各种传输类型的统一API - 阻塞和非阻塞套接字
2、基于灵活和可扩展的事件模型,可以清晰地分离问题
3、高度可定制的线程模型 - 单线程,一个或多个线程池,如SEDA
4、支持无连接数据报套(自3.1以来)
Netty的优势
一般情况下,与使用标准Java实现相同,Netty使构建可伸缩,强大的网络应用程序变得更容易。 Netty还包含一些操作系统特定的优化,例如在Linux上使用EPOLL等。
Netty工具
Netty包含一套令人印象深刻的IO工具。 其中一些工具是:
HTTP服务器
HTTPS服务器
WebSocket服务器
TCP服务器
UDP服务器
Netty包含的不仅仅是这些,同时Netty也在不断增加。
使用Netty的IO工具很容易启动HTTP服务器,WebSocket服务器等。它只需要几行代码。
Netty运行嵌入式
Netty运行嵌入在您自己的Java应用程序中。 这意味着您使用main()方法创建一个带有类的Java应用程序,并在该应用程序内创建Netty服务器之一。 这与Java EE服务器不同,在这种服务器中,服务器拥有自己的主方法,并以某种方式从磁盘加载代码。
Netty运行嵌入式意味着您可以使用Netty创建非常灵活的体系结构。 您不会被迫使用Java EE为您提供的模型。 Netty完全独立于Java EE规范。
了解Netty很重要
尽管Netty很容易使用,但有必要了解Netty如何在内部工作。 Netty使用单线程并发模型,并且围绕非阻塞IO设计。 这导致与实施Java EE应用程序时相比,编程模型明显不同。
閱讀更多 Java高級開發工程師 的文章