文档章节

netty文章收藏

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

 

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
粉丝 103
博文 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

没有更多内容

加载失败,请刷新页面

加载更多

lua web快速开发指南(7) - 高效的接口调用 - httpc库

httpc库基于cf框架都内部实现的socket编写的http client库. httpc库内置SSL支持, 在不使用代理的情况下就可以请求第三方接口. httpc支持header、args、body、timeout请求设置, 完美支持各种h...

水果糖的小铺子
40分钟前
3
0
通过四道常问面试题,带你了解什么是数据库分库分表

编者语:为了避免被误解为:「手里有把锤子,看什么都是钉子!」,说明一下不是什么业务都适合分布式数据库,更不是用了分布式数据库性能就一定能得到扩展。 其次:本文为纯干货,建议先转发...

老道士
今天
5
0
springmvc 整体流程

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR......

architect刘源源
今天
3
0
磁盘管理

先来看两个查看的命令 查看磁盘使用情况df 用法:df, df -h, df -m, df -k 查看目录或文件大小 用法:du -sh, du -sm, du -s(默认以k为单位) 新加一块盘如何操作 步骤:分区(可选)--> 格...

wzb88
今天
3
0
在 Linux 下确认 NTP 是否同步的方法

NTP 意即网络时间协议Network Time Protocol,它通过网络同步计算机系统之间的时钟。NTP 服务器可以使组织中的所有服务器保持同步,以准确时间执行基于时间的作业。NTP 客户端会将其时钟与 ...

Linux就该这么学
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部