MINA学习笔记

简介: (本文来源于我工作中的笔记,主要是说明MINA2中的几个重要的类的作用,还有一些疑问) 1,IoAcceptor中的bind与unbind的具体实现 2,IoConnector中的co...

(本文来源于我工作中的笔记,主要是说明MINA2中的几个重要的类的作用,还有一些疑问)

1,IoAcceptor中的bind与unbind的具体实现
2,IoConnector中的connect的实现
3,BaseIoService中的addListener与removeListener的实现
4,IoAcceptor是定义接收连接的接口,IoConnector是定义接连的接口
5,BaseIoAcceptor(抽象类)实现IoAcceptor接口,继承BaseIoService抽象类
6,BaseIoConnector(抽象类)实现IoConnector接口,继承了BaseIoService抽象类
7,BaseIoAcceptor的三个具体实现类:
 1) DatagramAcceptorDelegate : 数据报UDP通信的服务器入口程序.(视频,远程服务)
 2) VmPipeAcceptor : 虚拟通道(VM)通信的服务器入口程序.(无线通信方面)
 3) SocketAcceptor : TCP/IP通信的服务器入口程序.(实时系统)
8,BaseIoConnector的三个对应的实现类:
 1) DatagramConnectorDelegate : 对应连接DatagramAcceptorDelegate
 2) VmPipeConnector : 对应连接VmPipeAcceptor
 3) SocketConnector : 对应连接SocketAcceptor
9,IoFilter(类似于J2EE中的过虑器)作用:记录事件的日志,信息验证,过载控制,信息的转换,测量系统性能
10,IoFilter的实现类IoFilterAdapter(用于供具体的实现类继承),ReferenceCountingIoFilter(监视使用IoFilter的数量)
11,IoFilterAdapter的三个子类:
 1) LoggingFilter : 日志工具
 2) ExcutorFilter : mina自身提供的一个线程池(可以提高性能)
 3) ProtocolFilter : 协议编解码器
12,ObjectSerializationCodecFactory,这是Mina提供的一个Java对象的序列化和反序列化方法
13,mina中的会话IoSession
14,IoHandler(接口)在Mina中属于业务层(类似于J2EE中的Servlet)
15,IoHandler的简单实现类IoHandlerAdpater有三个具体的实现类:
 1) ChainedIoHandler :
 2) StreamIoHandler : 主要用于文件传输时
 3) DemuxingIoHandler : 用于处理多个IoHandler的messageReceived,由于在TCP/IP协议的数据
传输中会出现数据的截断现象(由于socket传输的数据包的长度是固定的,当数据包大于该长度,数据包
就会被截断),所以提供这个类主要是保证IoHandler所处理的数据包的完整性.
16,IoProcessor是一个处理线程池,优化重点,它的主要作用是根据当前连接的状态的变化,来将数据或事件通知到IoFilter

目录
相关文章
|
Oracle 关系型数据库 数据安全/隐私保护
在Oracle中,ORA-01017 invalid username password; logon denied原因有哪些
在Oracle中,ORA-01017 invalid username password; logon denied原因有哪些
1667 0
|
存储 数据采集 运维
业务连续性解决方案架构(上)
在多平台、多应用的场景下,如何保障业务连续性成为运维人员以及公司的考虑重点,本文主要梳理影响业务连续性的各个方面以及所需的模块。(CMDB、Monitor、KM、TM)
422 0
java.lang.ExceptionInInitializerError的原因
java.lang.ExceptionInInitializerError的原因
1264 0
|
网络安全 开发工具 数据安全/隐私保护
CentOS6.9搭建Git服务器并使用Gitolite配置权限
这篇笔记记录了在CentOS6.9中yum搭建Git服务器,并使用Gitolite管理权限的详细过程,如本机密钥生成,通过config文件管理本机多密钥,免密码ssh认证,Gitolite管理权限,分支和用户权限配置等
5234 0
|
6天前
|
NoSQL Cloud Native Redis
Redis核心开发者的新征程:阿里云与Valkey社区的技术融合与创新
阿里云瑶池数据库团队后续将持续参与Valkey社区,如过往在Redis社区一样耕耘,为开源社区作出持续贡献。
Redis核心开发者的新征程:阿里云与Valkey社区的技术融合与创新
|
5天前
|
关系型数据库 分布式数据库 数据库
PolarDB闪电助攻,《香肠派对》百亿好友关系实现毫秒级查询
PolarDB分布式版助力《香肠派对》实现百亿好友关系20万QPS的毫秒级查询。
PolarDB闪电助攻,《香肠派对》百亿好友关系实现毫秒级查询
|
6天前
|
消息中间件 Cloud Native Serverless
RocketMQ 事件驱动:云时代的事件驱动有啥不同?
本文深入探讨了云时代 EDA 的新内涵及它在云时代再次流行的主要驱动力,包括技术驱动力和商业驱动力,随后重点介绍了 RocketMQ 5.0 推出的子产品 EventBridge,并通过几个云时代事件驱动的典型案例,进一步叙述了云时代事件驱动的常见场景和最佳实践。
115027 1
|
7天前
|
弹性计算 安全 API
访问控制(RAM)|云上安全使用AccessKey的最佳实践
集中管控AK/SK的生命周期,可以极大降低AK/SK管理和使用成本,同时通过加密和轮转的方式,保证AK/SK的安全使用,本次分享为您介绍产品原理,以及具体的使用步骤。
101798 1
|
6天前
|
自然语言处理 Cloud Native Serverless
通义灵码牵手阿里云函数计算 FC ,打造智能编码新体验
近日,通义灵码正式进驻函数计算 FC WebIDE,让使用函数计算产品的开发者在其熟悉的云端集成开发环境中,无需再次登录即可使用通义灵码的智能编程能力,实现开发效率与代码质量的双重提升。
95381 2
Doodle Jump — 使用Flutter&Flame开发游戏真不错!
用Flutter&Flame开发游戏是一种什么体验?最近网上冲浪的时候,我偶然发现了一个国外的游戏网站,类似于国内的4399。在浏览时,我遇到了一款经典的小游戏:Doodle Jump...
112727 12