netty的基本了解

1 netty介绍
支持成千上万的并发的客户端,以较低的交互来换取更大的吞吐量和可用性。
面向对象的一个基本原则:通过抽象来隐藏背后的复杂性。

谁在用netty
包括facebook 和Instagram以及流行 开源项目如 Infinispan, HornetQ, Vert.x, Apache Cassandra 和 Elasticsearch 等,都利用其强大的对于网络抽象的核心代码。
Netty 也不断提高了其应用的范围和灵活性,比如已经实现了的协议就有 FTP, SMTP, HTTP, WebSocket 和 SPDY 以及其他二进制和基于文本的协议。

2 Netty 技术和方法的特点
(1)设计
针对多种传输类型的统一接口 - 阻塞和非阻塞
简单但更强大的线程模型
真正的无连接的数据报套接字支持
链接逻辑支持复用
(2)易用性
大量的 Javadoc 和 代码实例
除了在 JDK 1.6 + 额外的限制。(一些特征是只支持在Java 1.7 +。可选的功能可能有额外的限制。)
(3)性能
比核心 Java API 更好的吞吐量,较低的延时
资源消耗更少,这个得益于共享池和重用
减少内存拷贝
(4)健壮性
消除由于慢,快,或重载连接产生的 OutOfMemoryError
消除经常发现在 NIO 在高速网络中的应用中的不公平的读/写比
(5)安全
完整的 SSL / TLS 和 StartTLS 的支持
运行在受限的环境例如 Applet 或 OSGI
(6)社区
发布的更早和更频繁
社区驱动

3 异步和事件驱动
所有的网络应用程序需要被设计为可扩展性,可以被界定为“一个系统,网络能力,或过程中能够处理越来越多的工作方式或可扩大到容纳增长的能力”
Netty 帮助您利用非阻塞 I/O 完成这一目标,通常称为“异步 I/O”
异步:即为非同步事件。eg:发送电子邮件,可能得到或者得不到任何回应,或者当你发送一个可能会收到的消息或者没有任何回应的消息。异步事件也可以有一个有序的关系。
eg:你通常不会收到一个问题的答案直到提出一个问题,但是,你并没有阻住同时一些其他的东西。
本质上:一个系统是异步和时间驱动将会发现出一个特定的,对我们来说,有价值的行为:它可以响应在任何时间以任何顺序发生的事件。
典范的netty自底向上的支持。

你可能感兴趣的:(netty的基本了解)