Netty简介

来源:互联网 发布:苹果免费看书软件 编辑:程序博客网 时间:2024/05/16 00:59
Netty 提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。
也就是说,Netty 是一个基于NIO的客户,服务器端编程框架,使用Netty 可以确保你快速和简单的开发出一个网络应用,例如实现了某种协议的客户,服务端应用。Netty相当简化和流线化了网络应用的编程开发过程,例如,TCP和UDP的socket服务开发。


Netty nio 可以轻松将连接开到6W,每个连接大概损坏5k左右的系统内存


netty是基于事件,当某个事件触发时,交给一个链表的handler来处理。我们在设计的时候就可以利用这个特性来实现编码、解码跟游戏逻辑彻底解耦。在处理游戏逻辑的时候,我们根本不用理会传输协议




在并发量增大时候Netty表现得比Tomcat稳定,通过修改内核加快TIME_WAIT的回收时间,从而提高系统的并发量。
在大文件的情况下Netty没有任何优势,而且线程池相关的没有Tomcat优秀,Tomcat的内存回收更优秀些。
结论:Netty适合搭建轻量级的应用,特别适合传输内容少,但是并发量非常高的应用。


修改TIME_WAIT回收时间


vi /etc/sysctl.conf
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30


/sbin/sysctl -p
net.ipv4.tcp_syncookies = 1 表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭
net.ipv4.tcp_tw_reuse = 1 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭; 
net.ipv4.tcp_tw_recycle = 1 表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。 
net.ipv4.tcp_fin_timeout 修改系統默认的 TIMEOUT 时间




protobuf在netty里面的应用举例: http://blog.csdn.net/goldenfish1919/article/details/6719276

netty源代码解读-架构流程: http://www.iamcoding.com/?p=262


Netty实现原理浅析:  http://www.kafka0102.com/2010/06/167.html

原创粉丝点击