文档章节

netty4.0 研究 ing ... ...

石头哥哥
 石头哥哥
发布于 2013/03/11 14:03
字数 421
阅读 2.5K
收藏 2

码上生花,ECharts 作品展示赛正式启动!>>>

之前做过一个基于netty3.X版本的server,性能测试很不错,现在netty4.0已经出beta2版本beta3的快照也出来了,相信不久就会发布,先尝鲜,总结了一些东西:


#The shutdown process of a typical network application is composed of the following three steps:
#
#Close all server sockets if there are any,
#
#Close all non-server sockets (i.e. client sockets and accepted sockets) if there are any, and
#
#Release all resources used by ServerBootstrap or Bootstrap.


action:
#2. How do I incorporate my blocking application code with the non-blocking NioEventLoopGroup?
#
#NioEventLoopGroup contains n Threads that handle the IO of all the registered Channels.
#
#If your applicaiton's handler blocks such as (reading from a database) or is CPU intensive, the worker thread pool maybe exhausted and performance will degrade.
#
#We recommend that you implement your blocking application code in another thread pool. You can do this by adding your handler with an extra EventExecutor to the ChannelPipeline.
#
#  1 public static void main(String[] args) throws Exception {
#  2         final EventExecutor executor = new DefaultEventExecutor(8);
#
#  4         ServerBootstrap bootstrap = new ServerBootstrap();
#            bootstrap.group(new NioEventLoopGroup(), new NioEventLoopGroup());
#  6         bootstrap.childHandler(new ChannelInitializer<Channel>() {
#                @Override
#  8             public void initChannel(Channel channel) {
#                    ChannelPipeline pipeline = channel.pipeline();
# 10                 pipeline.addLast("decoder", new HttpRequestDecoder());
#                    pipeline.addLast("aggregator", new HttpChunkAggregator(65536));
# 12                 pipeline.addLast("encoder", new HttpResponseEncoder());
#                    pipeline.addLast("chunkedWriter", new ChunkedWriteHandler());
# 14
#                    // MyHandler contains code that blocks so add it with the
# 16                 // EventExecutor to the pipeline.
#                    pipeline.addLast(executor, "handler", new MyHandler());
# 18             }
#            });
# 20         ...
#
# 22         sb.bind(socketAddress);
#
# 24         // Other code
#
# 26     }
#
# 28
#        public class MyHandler extends SimpleChannelUpstreamHandler {
# 30         // Your blocking application code
#    }





netty4变化较大,不管是线程池管理还是buffer,新添加了AIO,但是建议还是用nio(个人观点),但是根据开发者帮助文档,基本上也可以快速实现一个稳定高效的服务端(TCP/IP)socket长连接。

有关netty4.0 持续关注中... ...  有时间的话 将会很快写一个基于netty4.0的server。

http://netty.io/4.0/guide/#faq.3,在上面可以找到很多资料,并且快速上手,如果你对netty3足够熟悉的话。

http://netty.io/4.0/xref/(source)

© 著作权归作者所有

石头哥哥

石头哥哥

粉丝 303
博文 203
码字总数 120417
作品 2
广州
程序员
私信 提问
加载中
请先登录后再评论。
软件工程研究领域最顶级的两个期刊

目前,Sunny有很大一部分时间和精力放在对软件工程领域的研究上,,我将陆续把一些相关的学术期刊列出来,供有需要的朋友参考(大家可以了解下软件工程在研究些啥,或许对工作会有所帮助,毕...

LoveLion
03/31
0
0
不联网、不插U盘,黑客用声音直接整垮你的硬盘

2008年,一位叫 Brendan Gregg 的网红工程师,在油管上发布了一个很“鬼畜”的视频↓↓↓ 视频一开始,他在一个非常嘈杂的数据中心里告诉大家,他正在使用一款软件监测硬盘的 IOPS (Input/Ou...

郭佳
2018/06/06
0
0
C# 自定义FileUpload控件

摘要:ASP.NET自带的FileUpload控件会随着浏览器的不同,显示的样式也会发生改变,很不美观,为了提高用户体验度,所以我们会去自定义FileUpload控件 实现思路:用两个Button和TextBox控件来...

annehan
2016/05/27
0
0
两年后我对Android 架构的思考

前言 前前后后经历过大项目、小项目,跨平台,小程序,Nodejs服务等等,目前在做的Rom开发,定制各种手机中的奇葩需求,从应用层到Framework层,再到C++层,再到驱动,最终到Linux,研究过j...

i校长
2019/10/24
0
0
[PYTHON]简单的文件增删改查处理

快一个月木有更新了,在这段时间内,博主除了忙工作外,就一直在研究python编程,据圈内朋友闲聊,python应该是未来一个运维攻城狮除了shell以外必备的LINUX脚本语言,所以就硬着头皮,按照老...

showerlee
2013/10/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Synchronized底层实现

https://blog.csdn.net/qq_35190492/article/details/106180781

JaneRoad
今天
18
0
解决okhttp无法重用连接的问题

解决okhttp无法重用连接的问题 最近在一个程序中使用okhttp调用http接口。开始时一切正常,但是测试运行一段时间后,okhttp就会报告recv失败。同时在调用端机器上,netstat显示很多套接字是T...

tommwq
今天
17
0
入坑Linux-day15(使用DHCP动态管理主机地址)

一、动态主机配置协议(DHCP) #DHCP是一种基于UDP协议且仅限于在局域网内部使用的网路协议,主要用于大型的局域网环境或者存在较多移动办公设备的局域网环境中,其主要用途是为局域网内部的...

宁生写你
今天
8
0
js canvas 旋转90度的整数倍

为了避免出现黑框 效果如下 根据不同的方向,设置宽高和画笔位置等 <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"/> <title>Title</title> <style> .img ......

阿豪boy
今天
22
0
如何生成随机的字母数字字符串? - How to generate a random alpha-numeric string?

问题: I've been looking for a simple Java algorithm to generate a pseudo-random alpha-numeric string. 我一直在寻找一种简单的 Java算法来生成伪随机的字母数字字符串。 In my situat......

技术盛宴
今天
19
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部