"Hello World"的代码固然简单,不过其中的几个重要概念(类)和 Netty的工作原理还是需要简单明确一下,至少知道其是负责什。方便自己以后更灵活的使用和扩展。

声明,笔者一介码农,不会那么多专业的词汇和缩写,只能以最简单苍白的话来形容个人的感受和体会。如果您觉得这太不专业,笔者首先只能抱歉。然后,笔者曾转过《Netty代码分析》,您可参考。

ChannelEvent

先说这个ChannelEvent,因为Netty是基于事件驱动的,就是我们上文提到的,发生什么事,就通知"有关部门"。所以,不难理解,我们自己的业务代码中,一定有跟这些事件相关的处理。在样例代码(http://www.it165.net/pro/html/201207/3142.html),我们处理的事件,就是channelConnected。以后,我们还会处理更多的事件。

ChannelPipeline

Pipeline,翻译成中文的意思是:管道,传输途径。也就是说,在这里他是控制ChannelEvent事件分发和传递的。事件在管道中流转,第一站到哪,第二站到哪,到哪是终点,就是用这个ChannelPipeline处理的。比如:开发事件。先给A设计,然后给B开发。一个流转图,希望能给你更直观的感觉。

ChannelHandler

刚说Pipeline负责把事件分发到相应的站点,那个这个站点在Netty里,就是指ChannelHandler。事件到了ChannelHandler这里,就要被具体的进行处理了,我们的样例代码(http://www.it165.net/pro/html/201207/3142.html)里,实现的就是这样一个处理事件的“站点”,也就是说,你自己的业务逻辑一般都是从这里开始的。

Channel

有了个部门的协调处理,我们还需要一个从整体把握形势的,所谓“大局观”的部门,channel。

channel,能够告诉你当前通道的状态,是连同还是关闭。获取通道相关的配置信息。得到Pipeline等。是一些全局的信息。Channel自然是由ChannelFactory产生的。Channel的实现类型,决定了你这个通道是同步的还是异步的(nio)。例如,我们样例里用的是NioServerSocketChannel。

这些基本的概念,你懂了吧。

java框架白话_Java NIO框架Netty教程(二) 白话概念相关推荐

  1. java netty 教程_Java NIO框架Netty教程(十六)

    该图是OneCoder通过阅读Netty源码,逐渐记录下来的.基本可以说明Netty服务的启动流程.这里在具体讲解一下. 首先说明,我们这次顺利的流程是基于NioSocketServer的.也就是基于 ...

  2. netty半包粘包 处理_Java NIO 框架 Netty 之美:粘包与半包问题

    一.前言 Netty 是一个可以快速开发网络应用程序的 NIO 框架,它大大简化了 TCP 或者 UDP 服务器的网络编程.Netty 的简易和快速开发并不意味着由它开发的程序将失去可维护性或者存在性 ...

  3. java爬虫框架动态_java爬虫框架webmagic

    最近需要爬去网站的一些商品,就开始在网上找方法,本来是想着用Python做的,因为以前用Python写过一个小脚本,爬取一个文献网站上的免费文献. 步骤大概是这样的:1,先获取给定URL的html文件 ...

  4. java集合类的框架图_Java集合框架01-框架总览

    本节摘要:从整体概述Java集合框架 一.Java集合框架架构图 Java集合框架是Java为开发者提供的工具类,集合框架被放置在 java.util.* 包下面,这些工具类从更高层面为开发者提供了数 ...

  5. java netty教程_Java NIO框架Netty教程(一) – Hello Netty

    先啰嗦两句,如果你还不知道Netty是做什么的能做什么.那可以先简单的搜索了解一下.我只能说Netty是一个NIO的框架,可以用于开发分布式的Java程序.具体能做什么,各位可以尽量发挥想象.技术,是 ...

  6. java nio框架netty教程_Java NIO框架Netty教程(一) – Hello Netty

    先啰嗦两句,如果你还不知道Netty是做什么的能做什么.那可以先简单的搜索了解一下.我只能说Netty是一个NIO的框架,可以用于开发分布式的Java程序.具体能做什么,各位可以尽量发挥想象.技术,是 ...

  7. java自动化测试报告_Java自动化测试框架-10 - TestNG之测试结果篇(详细教程)

    1.-测试结果 1.1-成功,失败和断言 测试被认为是成功的,如果它不引发任何异常完成,还是它扔的预期异常(请参阅文档expectedExceptions属性上找到的@Test注释). 您的测试方法通 ...

  8. java quartz实例_Java任务调度框架Quartz教程实例

    介绍 Quartz is a full-featured, open source job scheduling service that can be integrated with, or use ...

  9. java testng 优化_Java自动化测试框架-10 - TestNG之测试结果篇(详细教程)

    1.-测试结果 1.1-成功,失败和断言 测试被认为是成功的,如果它不引发任何异常完成,还是它扔的预期异常(请参阅文档expectedExceptions属性上找到的@Test注释). 您的测试方法通 ...

最新文章

  1. opencv 环境变量
  2. Vuex与登录状态保存
  3. Python学习笔记__1.5章 循环
  4. 边缘计算k8s集群之SuperEdge
  5. CF1305F Kuroni and the Punishment
  6. 2021巨量引擎连锁经营行业洞察报告
  7. java web 添加超链接_Javaweb 超链接后显示问题
  8. php 集群 session共享,Session共享:php和redis集群如何实现Session共享
  9. Scrapy和MongoDB的应用---爬取
  10. 虚拟机修改hosts文件
  11. 潮流短视频必备——PR赛博朋克效果视频转场快速过渡模板
  12. 数通学习网络协议地图
  13. kali linux启动盘工具,白话kali linux USB启动盘的制作(快捷版)
  14. 红宝书背诵笔记 — 必考词
  15. python定位二维码_图像中二维码的检测和定位
  16. 终于有人把数据治理的元数据、主数据等概念讲明白了
  17. 养蛙火爆,大数据解读《旅行青蛙》崛起之谜
  18. Python 3.8详细安装教程
  19. echarts中国地图分七大区
  20. 编写程序,输入两个集合 setA 和 setB,分别输出它们的交集、并集和差集 setA-setB

热门文章

  1. OpenCV显示中文汉字,未使用CvxText和FreeType库
  2. C++:vector中的resize()函数 VS reserve()函数
  3. 性能优化CPU、内存、磁盘I/O、网络性能相关命令
  4. setjump和longjump
  5. cpickle支持的python版本_Python序列化模块pickle和cPickle
  6. linux操作系统2试题,RedHat Linux 9.0 操作系统测试题2
  7. Java6上开发WebService
  8. ssm 静态资源处理器
  9. 云计算hcie贴吧_专业介绍|计算机网络技术
  10. java循环输入直到,使用循环接受其他用户输入,直到用户输入结束输入的值