mina
linyu19872008
这个作者很懒,什么都没留下…
展开
-
mina源码分析一(转)
整个框架最核心的几个包是: org.apache.mina.core.service org.apache.mina.core.session org.apache.mina.core.polling org.apache.mina.transport.socket org.apache.mina.core.service: 第一个要说的接口是IoService,它是所有I转载 2014-02-17 10:49:57 · 693 阅读 · 0 评论 -
mina源码分析二(转)
这一篇主要介绍实现这些接口的抽象基类。首先是实现IoService接口的AbstractIoService类。它包含了一个Executor来处理到来的事件。每个AbstractIoService都一个AtomicInteger类型的id号,确保每个id的唯一性。 它内部的Executor可以选择是从外部传递进构造函数中,也可以在实例内部自行构造,若是后者,则它将是ThreadPoolExec转载 2014-02-17 11:28:11 · 505 阅读 · 0 评论 -
mina源码分析三(转)
AbstractIoAcceptor类继承自AbstractIoService基类,并实现了IoAcceptor接口,它主要的成员变量是本地绑定地址。 private final List defaultLocalAddresses = new ArrayList(); private final List unmodifiableDefaultLocalAddre转载 2014-02-17 11:54:22 · 565 阅读 · 0 评论 -
mina源码分析四(转)
前面几篇介绍完了org.apache.mina.core.service这个包,现在进入org.apache.mina.core.session,这个包主要是围绕IoSession展开的,包括会话的方方面面。 IoSession接口与底层的传输层类型无关(也就是不管是TCP还是UDP),它表示通信双端的连接。它提供用户自定义属性,可以用于在过滤器和处理器之间交换用户自定义协议相关的信息。转载 2014-02-17 14:37:47 · 535 阅读 · 0 评论 -
mina源码分析五(转)
前面介绍过IoSessionRecycler是负责回收不再使用的会话的接口,ExpiringSessionRecycler是其一个实现类,用于回收超时失效的会话。 private ExpiringMap sessionMap;//待处理的会话集 private ExpiringMap.Expirer mapExpirer;//负责具体的回收工作 sessionMap的键是由本地地址和远端地址共转载 2014-02-17 15:01:18 · 627 阅读 · 0 评论 -
mina源码分析六(转)
上文的内容还有一些没有结尾,这篇补上。在ExpiringMap类中,使用了一个私有内部类ExpiringObject来表示待检查超时的对象,它包括三个域,键,值,上次访问时间,以及用于上次访问时间这个域的读写锁: private K key; private V value; private long lastAccessTime;转载 2014-02-17 15:23:40 · 680 阅读 · 0 评论 -
mina源码分析八(转)
这篇来看看AbstractPollingIoConnector抽象类,它用于用于实现客户端连接的轮询策略。处理逻辑基本上和上一篇文章说的AbstractPollingIoAcceptor类似,它继承自AbstractIoConnector,两个泛型参数分别是所处理的会话和客户端socket连接。底层的sockets会被不断检测,并当有任何一个socket需要被处理时就会被唤醒去处理。这个类封装了客转载 2014-02-17 16:00:22 · 583 阅读 · 0 评论 -
mina源码分析七(转)
前面介绍完了org.apache.mina.core.session这个包,现在开始进入org.apache.mina.core. polling包。这个包里包含了实现基于轮询策略(比如NIO的select调用或其他类型的I/O轮询系统调用(如epoll,poll,kqueue等)的基类。 先来看AbstractPollingIoAcceptor这个抽象基类,它继承自AbstractIo转载 2014-02-17 15:58:46 · 516 阅读 · 0 评论 -
Mina 解决请求后直接关闭连接(去除TIME_WAIT状态)
Mina 是一个韩国人写的基本java NIO的一个高性能的传输框架,我们的搜索就是基本它作为一个搜索服务开放接口了。对于系统的TIME_WAIT过多,造成服务器的负载过高,这个问题我也不用多说了,这段时间发现搜索服务器上的TIME_WAIT过多,我们每天大约总处理70W左右的搜索请求,虽然不多,但是造成了TIME_WAIT很多,有好几千个,可以 netstat -antu | grep :端转载 2014-06-13 20:56:38 · 3564 阅读 · 0 评论