Netty网络编程(初识)

Netty简单介绍

核心架构图(现在还看不是很懂): netty

Netty是由JBOSS提供的一个java开源框架。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。

也就是说,Netty 是一个基于NIO的客户、服务器端编程框架,使用Netty 可以确保你快速和简单的开发出一个网络应用,例如实现了某种协议的客户,服务端应用。Netty相当简化和流线化了网络应用的编程开发过程,例如,TCP和UDP的socket服务开发。

“快速”和“简单”并不用产生维护性或性能上的问题。Netty 是一个吸收了多种协议的实现经验,这些协议包括FTP,SMTP,HTTP,各种二进制,文本协议,并经过相当精心设计的项目,最终,Netty 成功的找到了一种方式,在保证易于开发的同时还保证了其应用的性能,稳定性和伸缩性。

Netty特点

设计 针对多种传输类型的统一接口 - 阻塞和非阻塞

简单但更强大的线程模型

真正的无连接的数据报套接字支持

链接逻辑支持复用

易用性 大量的 Javadoc 和 代码实例

除了在 JDK 1.6 + 额外的限制。(一些特征是只支持在Java 1.7 +。可选的功能可能有额外的限制。)

性能

比核心 Java API 更好的吞吐量,较低的延时

资源消耗更少,这个得益于共享池和重用

减少内存拷贝

健壮性

消除由于慢,快,或重载连接产生的 OutOfMemoryError

消除经常发现在 NIO 在高速网络中的应用中的不公平的读/写比

安全 完整的 SSL / TLS 和 StartTLS 的支持

行在受限的环境例如 Applet 或 OSGI

社区 发布的更早和更频繁

社区驱动

自我理解

要说到netty,就要从IO说起。

在JDK1.5之前,只用IO这种流。所有的数据请求都只能以同步阻塞的形式运行,当服务端运行到接收客户端发来的消息代码时,就会出现阻塞的情况。

在JDK1.5之后,就出现了NIO(No-Blocking-IO)这种非阻塞的流,就可以实现同步非阻塞的运行

在JDK1.7之后,出现了NIO2.0,也就是俗称的AIO(Asyc-No-Blocking-IO),异步非阻塞流。

但是在Netty中还是使用NIO作为流。使用Netty时,首先要知道管道(Pipeline),通道(Channel),选择器(Selector),处理程序(Handler)的概念,所有的消息都是以NIO的通道进行传输,然后对管道进行控制,选择器来选择执行,实际的处理全部在处理程序中响应。

Netty不仅可以作为网络通讯,还有其他的很多用途,但是最主要的用途还是使用在网络通讯中。

这里只作为个人入门的一些了解。

下一节将会为大家带来Netty的一个聊天的例子。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SoXiaTea

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值