2017年4月23日
摘要: 1、NIO超级陷阱 之所以说NIO超级陷阱,就是因为我在本系列开头的那句话,因为使用缺陷导致客户业务系统瘫痪。当然,我对这个问题进行了很深的追踪,包括对MINA源码的深入了解,但其实之所以会出现这个问题,它的根不是MINA的原因,而是JDK底层的问题。 JDK底层在实现nio时,为了能够唤醒等待在i 阅读全文
posted @ 2017-04-23 23:14 duanxz 阅读(465) 评论(0) 推荐(0)
摘要: 1、粘包与段包 粘包:指TCP协议中,发送方发送的若干包数据到接收方接收时粘成一包,从接收缓冲区看,后一包数据的头紧接着前一包数据的尾。造成的可能原因: 发送端需要等缓冲区满才发送出去,造成粘包 接收方不及时接收缓冲区的包,造成多个包接收 断包:也就是数据不全,比如包太大,就把包分解成多个小包,多次 阅读全文
posted @ 2017-04-23 23:13 duanxz 阅读(770) 评论(0) 推荐(0)
摘要: 一、AOP简介 AOP(Aspect Oriented Programming):是一种面向切面的编程范式,是一种编程思想,旨在通过分离横切关注点,提高模块化,可以跨越对象关注点。Aop的典型应用即spring的事务机制,日志记录。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之 阅读全文
posted @ 2017-04-23 23:13 duanxz 阅读(3630) 评论(0) 推荐(0)
摘要: 简介 session类图 Mina每建立一个连接同时会创建一个session对象,用于保存这次读写需要用到的所有信息。从抽象类AbstractIoSession中可以看出session具有如下功能: 1、从attributes成员可以看出session可以存放用户关心的键值对 2、注意到WriteR 阅读全文
posted @ 2017-04-23 23:12 duanxz 阅读(2678) 评论(0) 推荐(1)
摘要: processor顾名思义,就是进行IO处理,处理当前session的数据读写,并进行业务处理。 在mina server初始化的时候,会初始化一个processor池,通过NioSocketAcceptor的构造器传入池的大小,默认是当前处理器的个数+1。 processor池里面有一个jdk提供 阅读全文
posted @ 2017-04-23 23:10 duanxz 阅读(369) 评论(0) 推荐(0)