nginx是一个高性能的web和反向代理服务器。
它具有有很多非常优越的特性:
作为 web 服务器:相比 apache,nginx 使用更少的资源,支持更多的并发连接,体现更高的效率,这点使 nginx 尤其受到虚拟主机提供商的欢迎。能够支持高达 50,000 个并发连接数的响应,感谢 nginx 为我们选择了 epoll and kqueue 作为开发模型.
作为负载均衡服务器:nginx 既可以在内部直接支持 rails 和 php,也可以支持作为 http代理服务器 对外进行服务。nginx 用 c 编写, 不论是系统资源开销还是 cpu 使用效率都比 perlbal 要好的多。
作为邮件代理服务器: nginx 同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器),last.fm 描述了成功并且美妙的使用经验。
nginx 安装非常的简单,配置文件 非常简洁(还能够支持perl语法),bugs非常少的服务器: nginx 启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够在 不间断服务的情况下进行软件版本的升级。
netty是由jboss提供的一个java开源框架。
netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。
也就是说,netty 是一个基于nio的客户、服务器端编程框架,使用netty 可以确保你快速和简单的开发出一个网络应用,例如实现了某种协议的客户、服务端应用。netty相当于简化和流线化了网络应用的编程开发过程,例如:基于tcp和udp的socket服务开发。
“快速”和“简单”并不用产生维护性或性能上的问题。netty 是一个吸收了多种协议(包括ftp、smtp、http等各种二进制文本协议)的实现经验,并经过相当精心设计的项目。最终,netty 成功的找到了一种方式,在保证易于开发的同时还保证了其应用的性能,稳定性和伸缩性。
特点
设计
针对多种传输类型的统一接口 - 阻塞和非阻塞
简单但更强大的线程模型
真正的无连接的数据报套接字支持
链接逻辑支持复用
易用性
大量的 javadoc 和 代码实例
除了在 jdk 1.6 + 额外的限制。(一些特征是只支持在java 1.7 +。可选的功能可能有额外的限制。)
性能
比核心 java api 更好的吞吐量,较低的延时
资源消耗更少,这个得益于共享池和重用
减少内存拷贝
健壮性
消除由于慢,快,或重载连接产生的 outofmemoryerror
消除经常发现在 nio 在高速网络中的应用中的不公平的读/写比
安全
完整的 ssl / tls 和 starttls 的支持
运行在受限的环境例如 applet 或 osgi
社区
发布的更早和更频繁
社区驱动
更多nginx相关技术文章,请访问nginx使用教程栏目进行学习!
以上就是nginx和netty区别的详细内容。