mina学习笔记

mina中最核心的 几个 接口

IoService
IoFilterChain
IoFilter
IoHandler
IoSession


IoService :进行I/O操作 ,其子接口IoAcceptor 服务端 IoConnectors 客户端
IoFilterChain:IoFilter的容器 ,主要作用是 将 读和写数据的时候 触发的事件 发送到 容器内的 IoFilter处理.
IoFilter : 用来截获 IoHandler 的事件 ,类似 servletfilter
IoHandler:处理mina发出的事件 ,这里是业务逻辑所在处
IoSession:一个代表两个节点的连接 ,IoSession 与 IoFilterChain 是1-to-1 关系,IoSession 通常绑定一些用户定义的数据 以及 对应的 handler (用于回调)

我的理解是:
IoService 是网络的最前端 是个出口 和入口
当客户端与服务器连接的时候 会建立一个 IoSession 同时关联其 IoFilterChain
IoService 接收到消息 则会 经过 与IoSession关联的 IoFilterChain 容器中的所有filter 过滤一遍
相反 在 IoSession 写数据的时候 经过 所有filter 过滤一遍 最后写出到 客户端。

IoHandler 在接收到 数据后 负责业务逻辑上的处理 ,处理完后 可以通过其关联的 IoSession 将数据写回到 客户端。


在 transport nio 的实现中 大量使用 生成者消费者模式 实现多线程。
生产者消费者模式 主要是 利用一个 公用的 Queue ,生成者生产数据放入 Queue中 ,消费者 从Queue中消费数据。
Apache Mina是一个用于开发高性能、高可扩展性网络应用程序的Java框架。它提供了一种简单和灵活的方式来构建基于TCP/IP和UDP/IP协议的客户端和服务器端应用。 在学习Apache Mina时,首先需要了解它的基本概念和架构。Mina采用了NIO(非阻塞IO)的方式来实现网络通信。它的核心组件是IoService,它负责接收客户端的连接请求,并将请求分发给对应的I/O处理器进行处理。而I/O处理器则负责实际的数据读写和业务逻辑的处理。 在使用Mina进行开发时,我们首先需要创建一个IoAcceptor对象来监听指定的端口,并设置相应的处理器。当有客户端发起连接请求时,IoAcceptor会接收并处理这些请求。同时,我们还需要编写相应的I/O处理器来对接收到的数据进行处理和响应。 Mina还提供了一些便捷的工具类和接口,以简化开发过程。例如,可以使用IoBuffer来处理数据的读写,它类似于Java NIO中的ByteBuffer。同时,Mina还提供了一些过滤器,可以在数据传输的过程中进行一些常用的操作,比如加密、压缩、编解码等。 值得一提的是,Mina支持多种编解码协议,包括自定义的协议。它可以根据指定的编解码规则将数据进行解析和组装。这在实际应用中非常实用,因为经常会遇到需要对传输的数据进行编码和解码的情况。 总的来说,学习Apache Mina需要了解其基本概念、架构和核心组件,并掌握基本的开发流程和常用的工具类和接口。通过学习Mina,我们可以更加方便地开发出高性能、高可扩展性的网络应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值