mina
younger_z
这个作者很懒,什么都没留下…
展开
-
NIO框架之MINA源码解析(四):粘包与断包处理及编码与解码
1、粘包与段包粘包:指TCP协议中,发送方发送的若干包数据到接收方接收时粘成一包,从接收缓冲区看,后一包数据的头紧接着前一包数据的尾。造成的可能原因: 发送端需要等缓冲区满才发送出去,造成粘包 接收方不及时接收缓冲区的包,造成多个包接收断包:也就是数据不全,比如包太大,就把包分解成多个小包,多次发送,导致每次接收数据都不全。转载 2015-09-08 16:37:41 · 957 阅读 · 0 评论 -
mina 心跳机制
MINA自带了对心跳协议的支持,可以对心跳做出细致的配置,本文在次基础上实现了server端对client端的心跳检测。在开始之前先简单介绍下keepAlive的机制:首先,需要搞清楚TCP keepalive是干什么用的。从名字理解就能够知道,keepalive就是用来检测一个tcp connection是否还连接正常。当一个tcp connection建立好之后,如果双方都不发转载 2016-01-02 15:47:34 · 1729 阅读 · 0 评论 -
NIO框架之MINA源码解析(三):底层通信与责任链模式应用
本文主要介绍下在mina中责任链模式的应用以及mina对于数据读写的处理。在mina中,对数据的读操作是在processor类里面触发的,收到新消息后就触发读数据链去处理新消息直到自己的业务逻辑代码(IoHandler)。在mina中,数据的写(write)和发(send)差别相对较大,mina中的写消息最终的结果只是把要写的消息经过写数据链处理后的最终结果转载 2015-09-08 16:36:51 · 487 阅读 · 0 评论 -
NIO通讯框架之阿堂教程:Mina学习笔记-中级进阶篇(二)
Mina使用起来多么简洁方便呀,就是不具备Java NIO的基础,只要了解了Mina常用的API,就可以灵活使用并完成应用开发。 不过,从学习的角度来说,阿堂还是建议mina学习者了解一些Java NIO的基础知识,毕竟Mina的底层还是封装的Java NIO的。想学习的网友,可以在阿堂的技术博客(http://blog.sina.com.cn/heyitang)上看转载 2015-09-08 11:51:18 · 894 阅读 · 0 评论 -
NIO框架之MINA源码解析(一):背景
“你们的agent占了好多系统的端口,把我们的很多业务系统都给整死了,给我们造成了很大的损失,要求你们的相关领导下周过来道歉” -- 来自我们的一个客户。 怎么可能呢,我们都不相信,我们的agent只占一个端口啊!事实胜过雄辩,经过查证,确实是由于我们的agent占了好多系统的端口,我看了一下日志,基本把系统可用的端口占完了!转载 2015-09-08 16:34:16 · 336 阅读 · 0 评论 -
NIO通讯框架之阿堂教程:Mina学习笔记-入门篇(一)
在两三年前,阿堂在技术博客(http://blog.sina.com.cn/heyitang) 上曾经写过"JAVA新I/O学习系列笔记(1)"和"JAVA新I/O学习系列笔记(2)"两篇学习笔记和网友们分享过。事实上,阿堂现在和网友们分享 这篇学习笔记中Mina(还有Netty、Grizzly等)实际上都是将NIO作为底层框架后再封装的一个开发高性能和高可用性的网络应用程序的框架。Apach转载 2015-09-08 11:29:47 · 2375 阅读 · 0 评论 -
NIO框架之MINA源码解析(五):NIO超级陷阱和使用同步IO与MINA通信
1、NIO超级陷阱 之所以说NIO超级陷阱,就是因为我在本系列开头的那句话,因为使用缺陷导致客户业务系统瘫痪。当然,我对这个问题进行了很深的追踪,包括对MINA源码的深入了解,但其实之所以会出现这个问题,它的根不是MINA的原因,而是JDK底层的问题。JDK底层在实现nio时,为了能够唤醒等待在io上的线程,在windows平台使用了两个端口建立连接发消转载 2015-09-08 16:39:06 · 442 阅读 · 0 评论 -
NIO框架之MINA源码解析(二):mina核心引擎
NIO框架之MINA源码解析(一):背景MINA的底层还是利用了jdk提供了nio功能,mina只是对nio进行封装,包括MINA用的线程池都是jdk直接提供的。MINA的server端主要有accept、processor、session三部分组成的。其中accept主要负责在指定的端口监听,若有新连接则建立一个新的session;processor则负责转载 2015-09-08 16:35:52 · 636 阅读 · 0 评论 -
NIO通讯框架之阿堂教程:Mina学习笔记-高级进阶篇(三)
哦,前段时间阿堂一直比较忙,也没有写些什么了,想着高级进阶篇一直没有去弄,心中有觉得有些什么事情没有完成似的,所以就有了此文了。 这里阿堂要和网友分享的是自定义协议编解码,自定义协议是使用最广泛的,因为它非常的灵活!当然也就有一定的难度了。 这里阿堂为了偷懒,就直接用一网友的demo来说明了,不过,我感觉它的这个demo说得太麻烦了,实际这样会增加学习者的难度。转载 2015-09-08 11:53:24 · 831 阅读 · 0 评论 -
使用 Apache MINA2 实现 Web 系统的消息中间件
本文将介绍如何使用 Apache MINA2(以下简称 MINA2)解决复杂 Web 系统内各子系统之间同步消息中间件的问题。MINA2 为开发高性能和高可用性的网络应用程序提供了非常便利的框架。从本文中可以了解 MINA2 的基本原理和主要功能,此外在本文中您还可以看到 MINA2 实现消息中间件的服务端和客户端程序的详细内容。项目背景介绍系统发展遇到的瓶颈问题转载 2015-09-08 17:21:03 · 725 阅读 · 0 评论 -
自主研发异步通信框架Minma(支持长连接和短连接)
Minma是英文Minma Is Not Mina的简称该框架采用Java NIO的核心技术,实现了基于事件驱动的多线程异步通信框架,支持常见的长连接(腾讯QQ)和短连接(http通信)对于开发人员而言,所有的底层技术都是透明的,开发人员仅仅只需要处理业务逻辑,把复杂的NIO简化成了类似Java Swing事件驱动式的编程。 长连接实例图转载 2016-01-02 16:15:53 · 1790 阅读 · 0 评论