【Java进阶营】P8架构师教你如何认识,Mina

2022-05-07  本文已影响0人  梦幻小孩斋

认识 Mina

Apache Mina Server 是一个网络通信应用框架,与 Netty 出自同一作者,Netty 借鉴了部分 Mina 的设计思路。

image.png

Mina 主要是对基于 TCP/IP、UDP/IP 协议栈的通信框架,Mina 可以帮助我们快速开发高性能、高扩展性的网络通信应用,Mina 提供了事件驱动、异步操作的编程模型,Mina 的异步 IO 默认使用的是 JAVA NIO(New IO)作为底层支持,基于 Channel 的双向通道。Mina 主要有1.x 和2.x 两个分支。Mina 同时提供了网络通信的 Server 端、Client 端的封装,无论是哪端,Mina 在整个网通通信结构中提供了一系列接口 API,Mina 的 API 将真正的网络通信与我们的应用程序隔离开来。

image.png

Mina 的底层依赖的主要是 Java NIO 库,上层提供的是基于事件的异步接口。其整体的结构如下:

image.png

服务端流程:

写入过程也是类似,只是刚好倒过来,通过 IoSession.write 写出数据,然后 Handler 进行写入的业务处理,处理完成后交给 IoFilterChain,进行消息过滤和协议的转换,最后通过 I/O Processor 将数据写出到 socket 通道。

简单的 TCPServer Java学习圈子

第一步:编写 IoService

image.png

第二步:编写过滤器

[ image.png

第三步:编写 IoHandler

image.png

把这个 IoHandler 注册到 IoService:

image.png

当然这段代码也要在 acceptor.bind() 方法之前执行。完成的代码:

image.png

简单的 TCPClient

第一步:编写 IoService 并注册过滤器

image.png

第三步:编写 IoHandler

image.png

注册 IoHandler:

connector.setHandler(new ClientHandler("你好!\r\n 大家好!"));

粉丝福利

Java架构进阶资源

image.png

分析源码

image.png

分布式架构

image.png

性能优化


image.png

Java面试避坑指南

image.png

Java面试题集锦

image.png
上一篇下一篇

猜你喜欢

热点阅读