文档章节

netty文章收藏

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

 

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
粉丝 105
博文 109
码字总数 45236
作品 0
杭州
技术主管
私信 提问
Logstash 6.1.2 发布,开源服务端数据处理流程

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

淡漠悠然
2018/01/17
1K
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

没有更多内容

加载失败,请刷新页面

加载更多

深入理解表单脚本系列第二篇——表单字段

本文转载于:专业的前端网站➜深入理解表单脚本系列第二篇——表单字段 前面的话   表单字段又叫表单元素,表示表单所包含控件,如<input>、<select>等。本文将详细介绍表单字段的内容 访问...

前端老手
19分钟前
5
0
前端技术之:常用webpack插件

1、html-webpack-plugin Simplifies creation of HTML files to serve your webpack bundles. 主页地址: https://github.com/jantimon/html-webpack-plugin 安装方法: npm i --save-dev h......

popgis
24分钟前
6
0
IT兄弟连 HTML5教程 HTML5表单 多样的输入类型1

HTML5拥有多个新的表单输入类型,这些新特性提供了更好的输入控制和验证。并不是所有的主浏览器都支持新的input类型,不过我们可以在所有的主浏览器中使用它们,即使不被支持,仍然可以显示为...

老码农的一亩三分地
25分钟前
5
0
规则引擎

解决问题 版本迭代速度更不上业务变化,但是若多个业务同时变化,除了为每个业务设计专属配置项也不利于操作。就想服务接口单纯化,将复杂多变的业务逻辑交给规则引擎,让用户在web端或cs端自...

无极之岚
今天
7
0
OSChina 周三乱弹 —— 欢迎你来做产品经理

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @巴拉迪维 :10多次劲歌金曲获奖,更多叱咤歌坛排名,黎明才应该是四大天王之首,只可惜拍的电影太少。单曲循环一个多月的歌,力荐 《无名份的...

小小编辑
今天
803
11

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部