作者:搜狗实验室 来源:搜狗实验室   酷勤网收集 2008-07-26

摘要
  本文重点讲解异步连接池的诞生背景和使用方法,同时介绍java nio技术的基础知识。

连接池概述 

编写 Web 应用程序时,为了提高性能,往往采取常连接和连接池技术。所谓常连接,就是一个持久存在的 TCP 连接,连接完成后,可以反复使用,直到连接关闭,或出现通信问题。采用常连接是为了避免两方面的问题:

1. Socket 资源属于系统资源,申请操作需要陷入到内核才能完成,反复申请的话,必然降低程序性能;

2. tcp 连接需要完成连接操作后才能使用,而 tcp 三次握手是个停-等过程,效率很低。 连接池技术是常连接的管理方式。通常情况下,一个 TCP 连接同时只能处理一个请求,一次完整的收发请求操作是不能被其他线程中断的。连接池管理多个连接的复用,保证互斥。

Java.nio 包中主要包括下边这些类:

  • SelectableChannel
  • Buffer、Charset、ByteOrder
  • Selector、SelectionKey

Nio 把它支持的 I/O对象抽象为 Channel,目前已知的实例类有:SocketChannel、ServerSocketChannel、DatagramChannel、FileChannel 等,从名字大家就能猜出它们是干什么用的。

文档下载地址:http://www.sogou.com/labs/report/2-2.pdf (酷勤网备用地址:sogouLabs_2-2.pdf

延伸阅读:
搜狗实验室技术交流文档:epoll简介
搜狗实验室技术交流文档:乱序优化与GCC的Bug
搜狗实验室技术交流文档:XSS跨站脚本攻击及防范

分类: Java技术 中间件技术 应用服务器

上一篇:Day公司CTO和JCR规范组长David 谈JCR和REST   下一篇:与林昊一起探讨OSGi