文档章节

netty文章收藏

greki
 greki
发布于 2016/04/05 22:48
字数 820
阅读 856
收藏 59

 

1.林峰的关于netty文章

不错,遇到问题反复看了几遍总有启发,还说收藏记录一下。

http://www.infoq.com/cn/netty

Netty案例集锦之多线程篇(续)作者 李林锋 发布于 2015年11月25日 9

Netty案例集锦之多线程篇作者 李林锋 发布于 2015年9月3日 14

Netty系列之Netty编解码框架分析作者 李林锋 发布于 2015年4月29日 22

Netty版本升级血泪史之线程篇作者 李林锋 发布于 2015年2月7日 18

Netty系列之Netty百万级推送服务设计要点作者 李林锋 发布于 2015年1月4日 31

Netty系列之Netty并发编程分析作者 李林锋 发布于 2014年10月24日 17

Netty系列之Netty 服务端创建作者 李林锋 发布于 2014年9月11日 20

Netty系列之Netty安全性作者 李林锋 发布于 2014年8月8日 11

Netty系列之Netty线程模型作者 李林锋 发布于 2014年7月11日 25

Netty系列之Netty可靠性分析作者 李林锋 发布于 2014年6月19日 29

Netty系列之Netty高性能之道作者 李林锋 发布于 2014年5月30日 48

 

2.网络排查:

http://www.cnblogs.com/Security-Darren/p/4700387.html

 

3.netty源码细节

http://xw-z1985.iteye.com/category/260393
 

5.耗时业务逻辑线程处理(还在看,可能有不对的地方)

要关注3个地方的线程处理:

a.BOSS线程:处理连接建立(服务端才有)

b.worker线程:处理IO、解码(read等)

c.一个channel发了多个消息的,消息并发处理(初步看是用自己实现的业务线程池)

 

知乎的讨论:

https://www.zhihu.com/question/35487154(ExecutionHandler是netty3的东西,4已经去掉)

 

EventLoop:其本质是一个用来处理IO事件的线程,EventLoopGroup 其本质是一个线程池。一个EventLoop会对应着一个线程,一个EventLoop可以和多个Channel绑定,处理多个Channel的IO事件;但是一个Channel在整个生命周期内只会被一个EventLoop处理

http://blog.csdn.net/suifeng3051/article/details/28861883

 

官方文档:(解决了IO worker线程不堵塞的问题,但看源码一个handler只绑定一个线程,并不能解决handler处理的效率问题,例如一个连接发的消息很多,但是handler消息处理并不会并发执行)

https://netty.io/4.1/api/io/netty/channel/ChannelPipeline.html

static final EventExecutorGroup group = new DefaultEventExecutorGroup}(16); 
ChannelPipeline pipeline = ch.pipeline(); 
pipeline.addLast("decoder", new MyProtocolDecoder()); 
pipeline.addLast("encoder", new MyProtocolEncoder()); 
// Tell the pipeline to run MyBusinessLogicHandler's event handler methods 
// in a different thread than an I/O thread so that the I/O thread is not blocked by
// a time-consuming task. If your business logic is fully asynchronous or finished 
// very quickly, you don't need to specify a group.
pipeline.addLast(group, "handler", new MyBusinessLogicHandler());

 

    AbstractChannelHandlerContext(DefaultChannelPipeline pipeline, EventExecutorGroup group, String name,
                                  boolean inbound, boolean outbound) {

        if (name == null) {
            throw new NullPointerException("name");
        }

        channel = pipeline.channel;
        this.pipeline = pipeline;
        this.name = name;

        if (group != null) {
            // Pin one of the child executors once and remember it so that the same child executor
            // is used to fire events for the same channel.
            EventExecutor childExecutor = pipeline.childExecutors.get(group);
            if (childExecutor == null) {
                childExecutor = group.next();
                pipeline.childExecutors.put(group, childExecutor);
            }
            executor = childExecutor;
        } else {
            executor = null;
        }

        this.inbound = inbound;
        this.outbound = outbound;
    }



 

最后当然不能忘了官方文档:

http://netty.io/wiki/user-guide-for-4.x.html

http://netty.io/wiki/related-articles.html

本文转载自:http://www.infoq.com/cn/netty

共有 人打赏支持
greki
粉丝 99
博文 109
码字总数 45236
作品 0
杭州
技术主管
私信 提问
Logstash 6.1.2 发布,开源服务端数据处理流程

Logstash 是一个开源的服务端数据处理流程,可同时从多个源中获取数据,将其转换,然后将其发送到“收藏”中,目前拥有超过 200 个插件。它能集中、转换和藏匿您的数据。 Logstash 6.1.2 更新...

淡漠悠然
2018/01/17
996
2
《深入探索Netty原理及源码分析》文集小结

写在2017年末尾,翻看文集的第一篇文章已经是三个月前的事了,也没想过这文集会写那么久,这么慢。。。 Netty文集中的文章主要都是我学习过程的笔记,写博客的主要目的是为了通过输出来倒逼输...

tomas家的小拨浪鼓
2017/12/30
0
0
《Nginx官方文档》如何安装nginx

原文链接 nginx可以在不同的操作系统下安装 Linux系统安装nginx 对于Linux操作系统,可以使用 nginx.org 的nginx安装包。 FreeBSD系统安装nginx 对于FreeBSD系统,可以使用安装包或者ports s...

xiushao
01/05
0
0
《Istio官方文档》Pilot

原文链接  译者:carvendy Pilot(领航员)   Pilot负责Envoy实例在Istio网格服务部署的生命周期。   在上图中的图形,Pilot在服务网格中有着权威的服务代表,而服务网格依赖着底层平台。...

魔术师Carvendy
2018/01/08
0
0
《Istio官方文档》Pilot

《Istio官方文档》Pilot 并发编程网 – ifeve.com2018-01-080 阅读 JAVAservice 原文链接 译者:carvendy Pilot(领航员) Pilot负责Envoy实例在Istio网格服务部署的生命周期。 在上图中的图形,...

并发编程网 – ifeve.com
2018/01/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

nginx日志自动切割

1.日志配置(Nginx 日志) access.log----记录哪些用户,哪些页面以及用户浏览器,IP等访问信息;error.log------记录服务器错误的日志 #配置日志存储路径:location / {      a...

em_aaron
昨天
0
0
java 反射

基本概念 RTTI,即Run-Time Type Identification,运行时类型识别。RTTI能在运行时就能够自动识别每个编译时已知的类型。   要想理解反射的原理,首先要了解什么是类型信息。Java让我们在运...

细节探索者
昨天
1
0
推荐转载连接

https://www.cnblogs.com/ysocean/p/7409779.html#_label0

小橙子的曼曼
昨天
3
0
雷军亲自打造的套餐了解下:用多少付多少

12月28日消息,小米科技创始人兼CEO雷军微博表示,小米移动任我行套餐方案,原则上就是明明白白消费,用多少付多少,不用不花钱!上网、电话和短信都是一毛钱,上网0.1元/M,电话0.1元/分钟,...

linuxCool
昨天
6
0
协议简史:如何学习网络协议?

大学时,学到网络协议的7层模型时,老师教了大家一个顺口溜:物数网传会表应。并说这是重点,年年必考,5分的题目摆在这里,你们爱背不背。 考试的时候,果然遇到这个问题,搜索枯肠,只能想...

Java干货分享
昨天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部