谈谈长连接和NIO

原创 2015年05月12日 11:28:07

最近在看dubbo的官方文档:

dubbo协议(注:dubbo支持多协议),通过使用长连接减少握手,通过NIO及线程池在单连接上并发拼包处理消息,通过二进制流压缩数据,比常规HTTP等短连接协议更快,适合小数据量大并发的服务调用

基于NIO的非阻塞实现并行调用,客户端不需要启动多线程即可完成并行调用多个远程服务,相对多线程开销较小

1,TCP短连接和TCP长连接
TCP短连接,client和server一次读写后就会关闭,所以管理起来比较简单,存在的连接都是有用的连接,不需要额外的控制手段。适合传输大数据,如文件、视频等
TCP长连接,client和server完成一个读写后,连接不会主动关闭,后续读写操作会继续使用这个连接。需要通过TCP保活功能探测长连接的存活情况,关闭一些长时间闲置的长连接,限制每个客户端的最大长连接数。减少握手次数,适合小数据大并发。

未完待续…

《Java之IO , BIO , NIO , AIO 知多少?》

-
  • 1970年01月01日 08:00

基于NIO的长连接的实现已开放到github

长连接相对于短链接来讲,可以减少连接的建立和释放的开销,进而提高通信的效率,而长连接最大的问题是对于连接池中连接的维护。...
  • yangbutao
  • yangbutao
  • 2014-01-20 00:19:04
  • 13277

基于 java nio 长连接实现的聊天室

基于 java nio 长连接实现的聊天室
  • liang_love_java
  • liang_love_java
  • 2016-01-26 14:51:04
  • 2656

DUBBO的通讯方式(一)NIO,长连接心跳

1.前言 最近在研究dubbo框架的时候,发现在protocal协议的选择上(即选择哪种协议用于实现远程调用)目前有dubbo,rmi,http等 dubbo是默认推荐的方式,使用长连接,ni...
  • z173273946
  • z173273946
  • 2015-11-24 11:31:23
  • 12152

NIO的长连接及NIO的内存泄漏

使用NIO进行socket编程时,需要SelectionKey key将chanel和selector关联,selector负责注册到其上的channel的就绪选择。下面的两行代码经常用到:key.a...
  • zhouhl_cn
  • zhouhl_cn
  • 2011-06-24 11:47:00
  • 5247

Mina 长连接实践

- Mina介绍最近项目需要使用长连接,而Mina应该是个不错的选择。个人在Mina的长连接的集成过程中碰到一些问题解决,现在和大家探讨下。言归正传,要使用Mina首先需要看看Mina的官网,特别是他...
  • BuChangRong
  • BuChangRong
  • 2017-06-20 10:36:27
  • 2419

RMI和socket详解

详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp58   一般来说,基于CS(client-server)软件架构的开...
  • yemou_blog
  • yemou_blog
  • 2015-12-14 11:17:52
  • 683

JAVA实现长连接(含心跳检测)Demo

实现原理:        长连接的维持,是要客户端程序,定时向服务端程序,发送一个维持连接包的。        如果,长时间未发送维持连接包,服务端程序将断开连接。 客户端:       ...
  • zmx729618
  • zmx729618
  • 2017-01-12 15:25:19
  • 19464

JAVA nio异步长连接服务端与客户端

  • 2018年02月06日 09:40
  • 909KB
  • 下载

dubbo相关知识(三)--socket长连接和短连接

长连接与短连接         所谓长连接,指在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期间,如果没有数据包发送,需要双方发检测包以维持此连接,一般需要自己做在线维持。 ...
  • guchuanyun111
  • guchuanyun111
  • 2016-07-27 17:16:38
  • 5339
收藏助手
不良信息举报
您举报文章:谈谈长连接和NIO
举报原因:
原因补充:

(最多只允许输入30个字)