netty学习总结(一)
netty是一个nio框架,将java的nio进行了一个封装,形成了一个高性能,高可用的网络编程框架,很多的框架都是基于netty的,所以学好netty是很有用的,而且netty本身的代码结构设计,以及一些思想都是十分优秀的,对我们的编程能起到一个很好的的帮助。
首先netty有几条主线分别是:
1.server端的启动
2.client端的启动
3.client端的连接
4.消息的读取
5.消息的发送
今天先看下server端的启动
我们可以看到最主要的一共有三步
init ----- 初始化nioServerSocketChannel
register ---- 为channel绑定一个线程 ,并注册读事件,还会触发 fireChnnelActive 和fireChannelRegister事件
doBind ----- 执行真正的绑定
要更深入netty我们需要了解一下几点:
1.每一个channel的整个生命周期只有一个netty分配的线程为他工作,这么做可以保证一个channel内部的事件处理都是线程安全的,特别是handler的处理都是线性的,注意是netty分配的线程,如果是你自己在channel的生命周期里面重启一个就令当别论了。
2.netty分配的线程可能同时有多个channel共用,netty的线程模型是很简单的,有时间我会单独说下线程模型。
当启动一个服务端的时候会根据配置的Channel进行初始化,为他进行一个配置,例如id,pipeline(这里面含有处理器链),unsafe(某些实际的操作,例如java层面的channel的注册)。初始化后会为他注册一个线程,并触发active事件和register事件,执行一个java层面的绑定操作。
netty学习总结(一)的更多相关文章
- netty学习资料
netty学习资料推荐官方文档和<netty权威指南>和<netty in action>这两本书.下面收集下网上分享的资料 netty官方参考文档 Netty 4.x Use ...
- Netty学习之客户端创建
一.客户端开发时序图 图片来源:Netty权威指南(第2版) 二.Netty客户端开发步骤 使用Netty进行客户端开发主要有以下几个步骤: 1.用户线程创建Bootstrap Bootstrap b ...
- netty学习资源收集
Netty学习笔记 Netty In Actions CSDN专栏 一起学Netty-CSDN专栏 Netty In Action中文版
- Netty 学习 一、初识Netty【原创】
在过去几年的工作和学习中,比较关注高层次的应用开发,对底层探究较少.实现Web应用的开发,主要依赖Tomcat.Apache等应用服务器,程序员无需了解底层协议,但同样限制了应用的性能和效率.现在开始 ...
- Netty学习笔记(二) 实现服务端和客户端
在Netty学习笔记(一) 实现DISCARD服务中,我们使用Netty和Python实现了简单的丢弃DISCARD服务,这篇,我们使用Netty实现服务端和客户端交互的需求. 前置工作 开发环境 J ...
- Netty 学习笔记(1)通信原理
前言 本文主要从 select 和 epoll 系统调用入手,来打开 Netty 的大门,从认识 Netty 的基础原理 —— I/O 多路复用模型开始. Netty 的通信原理 Netty 底层 ...
- Netty 学习资料
Netty 学习资料 Netty 学习资料 链接网址 说明 Netty 4.x 用户指南 http://wiki.jikexueyuan.com/project/netty-4-user-guide/ ...
- Netty学习第一节Netty的总体概况
一.Netty简介 什么是Netty? 1.高性能事件驱动,异步非阻塞的IO加载开源框架. 它是由JBoss提供,用于建立TCP等底层链接.基于Netty可以建立高性能的HTTP服务器,快速开发高性能 ...
- Netty学习——Thrift的入门使用
Netty学习——Thrift的入门使用 希望你能够,了解并使用它.因为它是一个效率很高的框架 官网地址:http://thrift.apache.org/ 1.Thrift数据类型 一门技术如果需要 ...
- Netty学习——Apache Thrift 简介和下载安装
Netty学习——Apache Thrift 简介和下载安装 Apache Thrift 简介 本来由Facebook开发,捐献给了Apache,成了Apache的一个重要项目 可伸缩的,跨语言的服务 ...
随机推荐
- App Inspector 功能详解
前言: App Inspector:浏览器端的移动设备 UI 查看器,使用树状态结构查看 UI 布局,自动生成 XPaths 官网:https://macacajs.github.io/app-ins ...
- LINUX基础实验报告
实验一:主要是介绍Linux系统概况,无运行代码. 实验二:Linux的基本操作 重要知识点 [Tab] 使用Tab键来进行命令补全,Tab键一般键盘是在字母Q旁边,这个技巧给你带来的最大的好处就是当 ...
- 实训四(cocos2dx sharesdk集成-1)
随着项目的进行,好像陷入的技术优先的迷局,对那些可以实现的功能,代码的编写上越来越漫不经心,反而对没有掌握的技术求之若渴,不免显得有些好高骛远.在没有掌握之前,思考.学习.交流也是一种快乐与享受. 言 ...
- OVS 精确删除流表
OVS 精确删除流表 前言 今天看了sdnlab小姐姐的mininet教程之后,看到有一个下流表的操作,优先级没能下成功,然后回来实验一下,这个问题是解决了,不过遇到了一个小问题,ovs如何精确删除流 ...
- 老李的blog使用日记(2)
寥寥数语结束一个不曾期待的遇见,可还是剧情不会这样结束,他也会在我的时间里注册自己的专属账号,无论什么时候,他会时而需要被注视着,为了达到目的,即使不择手段,只为一次擦肩而过的邂逅,极短的一段时间,相 ...
- DHCP介绍
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,使用UDP协议工作, 主要有两个用途:给内部网络或网络服务供应商自动分配IP ...
- C#简述(二)
详情请参考:http://www.runoob.com/csharp/csharp-operators.html 1.C# 运算符 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 其他运算符 ...
- Week3_代码复审
软件工程师的成长 一口气看完了十多篇的博客,心里的感觉五味陈杂.既有对未来道路的憧憬,也有对自己目前水平的无力感,与那些在这个领域打拼十几年甚至几十年的前辈相比,我不过也就是刚刚迈过行业门槛一条腿而已 ...
- HDU 2022 海选女主角
http://acm.hdu.edu.cn/showproblem.php?pid=2022 Problem Description potato老师虽然很喜欢教书,但是迫于生活压力,不得不想办法在业 ...
- Windows 创建计划任务 实现自动同步文件.
0 感觉自己还是缺乏让计算机去工作的思维, 缺少编程和算法的想法与实践做法. 0x1 打开计划任务 方法: 运行-> 输入 control -> 大图标->管理工具 打开任务计划程序 ...