论坛首页 Java企业应用论坛

如何实现系统通讯速度更快?

浏览 6654 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2006-10-30  
原来公司的系统是Agent和Server之间用Socket长连接方式,发送Java对象流,测试结果发送速度是1400个包/秒,目前准备对系统做更改,看了看JMS的一些文章,感觉这个速度没有我们原来的速度快,看了看Cindy的介绍,感觉更适合短连接的方式,速度也不一定比目前我们采用的方式快,不知道大家有没有这方面的经验,采用什么方法能试Agent和Server之间发送数据包的速度更快。
   发表时间:2006-10-30  
如果说长连接快还是短连接快,那么,就单个连接或单次使用来说,应该是长连接快,因为不需要再花时间在连接初始化上;就更多的负载来说,可能后者有优势,web的http协议基本上就是传输完即断开的无状态连接方式。
0 请登录后投票
   发表时间:2006-10-30  
> 用Socket长连接方式,发送Java对象流,测试结果发送速度是1400个包/秒

这个基本上已经很快了。要想更快,可以试着合并包再发送,比如说每10个包合并发送一次。

至于采用其它技术,其底层也都是SOCKET,一般来说不可能更快,除非你们的SOCKET有问题。
0 请登录后投票
   发表时间:2006-11-01  
在一个LAN中使用socket传送数据,只要你编程没有错误,传输速度都是差不多的了。NIO更多的是提高系统的可伸缩性,而不是传输速度。
0 请登录后投票
   发表时间:2006-11-01  
JMS为了保证消息的可靠性,增加了确认流程以及持久化操作,因而必然比直接Send的要慢许多。至于NIO,主要是节省了线程资源。比如在长连接服务器(如:游戏、证券行情)中,无需针对每个客户端连接启用一个线程(对于一个JVM进程,超过50~100个线程后,线程切换消化太大,服务器的效率不增反而降低了),而是采用固定的线程数来处理任意客户端连接(当然也有限制,一般可以达到1000左右)。
0 请登录后投票
   发表时间:2006-11-01  
想请教一下,如何用java实现长连接呢,我们的java系统需要和C的系统通讯,对方需要我们用长连接,一直不清楚怎么实现,请问有比较成熟的案例吗?
0 请登录后投票
   发表时间:2006-11-02  
多谢各位的回复,其实就速度而言,1400条每秒的传输速度是可以接受了,下面我们对我们系统改造,准备尝试用Cindy来实现Socket通讯,减少在通讯上耗费的线程数,把更多的线程投给业务处理线程,这样可以提高系统的处理能力,另外准备引入JMS Server来协调不同组件之间的通讯,这样我想应该会让我们的系统能更强大一些,准备用Sun System Message Queue,性能比较有保证。
0 请登录后投票
   发表时间:2006-11-02  
那些什么框架本身就很慢的东西,要想速度快最好自己重写吧,框架里很多东西可能会用不上,浪费资源。。
0 请登录后投票
   发表时间:2006-11-02  
引用
那些什么框架本身就很慢的东西,要想速度快最好自己重写吧,框架里很多东西可能会用不上,浪费资源。。



晕,框架里用不上的东西怎么会浪费你的资源呢?难道说硬盘空间?那JDK里面的类你大多都没有用了,它也在浪费你的资源哦。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics