netty学习笔记(1)_一些核心概念
来源:互联网 发布:网络机房建设 编辑:程序博客网 时间:2024/05/29 15:08
netty是一个非阻塞,事件驱动的网络框架。netty实际上是使用多线程处理io事件,对于熟悉多线程编程的人来说,可能会想到netty需要进行代码同步。但是这样的方式不好,因为同步会影响程序的性能,netty的设计者保证了程序处理事件不会有同步。
netty的EventLoopGroup包含一个或者多个EventLoop,而EventLoop就是一个Channel执行实际工作的线程。EventLoop总是绑定一个单一的线程,在其生命周期内不会改变。
当注册一个channel后,netty将这个channel绑定到一个EventLoop,在channel的生命周期内总是绑定到一个EventLoop。在netty IO操作中,程序不需要同步,因为一个指定通道的所有IO始终由同一个线程来执行。
但并不是说明一个EventLoop只能绑定一个channel.一个EventLoop可以执行多个channel.
Bootstrap用来在netty中配置程序,这个辅助类太重要了,把程序员从繁重的NIO操作中解放出来,提供了一个统一的模板式的操作。
当你需要连接服务端或服务端绑定指定端口时需要使用Bootstrap.客户端需要Bootstrap,服务端需要ServerBootstrap.Bootstrap用来连接远程主机,有1个EventLoopGroupServerBootstrap用来绑定本地端口,有2个EventLoopGroup一个ServerBootstrap可以认为有2个channels组,第一组包含一个单例ServerChannel,代表持有一个绑定了本地端口的socket(作用是接受客户端连接请求,然后注册到第二组EventLoopGroup上),第二组包含所有的channel,代表服务器已接受了的连接。我们知道,对于NIO来说,是要轮询的,轮询之前要先注册到多路复用器上,这个活就是由第一个EventLoopGroup干的。请看下图
==========================================
Handlers自身依赖于ChannelPipeline来决定它们执行的顺序。在很多地方,netty的ChannelHandler是你的应用程序中处理最多的。你的应用程序中至少有一个ChannelHandler的参与,换句话说,ChannelHandler对很多事情是关键的。我们可以理解为ChannelHandler是一段执行业务逻辑处理的代码,它们来来往往的通过ChannelPipeline。
- netty学习笔记(1)_一些核心概念
- 【Netty in Action学习笔记】Netty核心组件概念
- Netty 学习笔记之二 Netty 核心概念
- 03 Netty核心概念
- Netty核心概念
- Netty(一)核心概念
- netty学习笔记(5)_心跳机制
- 第三篇:Netty核心概念
- Netty学习笔记:1
- rabbitMQ学习笔记(1):基本介绍与核心概念
- Webpack之核心概念学习笔记(1)
- k8s学习笔记之核心概念
- 学习笔记:Corda 核心概念之 Identity
- c#网络编程学习笔记00_补上一些基础概念
- RocketMQ 一些核心概念
- netty学习笔记(3)_编解码技术
- netty学习笔记(4)_线程模型解析
- 初学netty一些笔记
- 【JAVA学习】——Servlet基本原理
- ply文件格式详细说明
- jbpm——gpd图形化界面安装
- Linux高级管理之系统延迟及定时机制
- 浅谈ARP、NAT、ICMP、DHCP、RIP、OSPF、BGP协议
- netty学习笔记(1)_一些核心概念
- 用Sample Grabber捕获视频
- 程序、线程和进程的区别是什么?
- BaiduMap编程前准备工作
- 欢迎使用CSDN-markdown编辑器
- 区分java字节(Byte)流和字符(character)流
- 用训练好的模型(caffemodel)来分类新的图片
- 数学建模——层次分析法
- 2017.4.9