当前位置:  开发笔记 > 编程语言 > 正文

java.net与java.nio

如何解决《java.net与java.nio》经验,为你挑选了2个好方法。

在什么时候从java.net切换到java.nio更好?.net(不是Microsoft实体)更容易理解和更熟悉,而nio是可扩展的,并带有一些额外的漂亮功能.

具体来说,我需要为这种情况做出选择:我们有一个控制中心在几个远程站点管理硬件(每个站点有一台计算机管理多个硬件单元(收发器,TNC和旋转器)).我的想法是在每台机器上编写一个服务器应用程序,作为从控制中心到无线电硬件的网关,每个单元有一个插槽.根据我的理解,NIO适用于一个服务器,许多客户端,但我想的是一个客户端,许多服务器.

我想第三个选择是使用MINA,但我不确定这是否会对一个简单的问题投入太多.


每个远程服务器最多有8个连接,全部来自同一个客户端(用于控制所有硬件和单独的TX/RX套接字).但是,单个客户端将希望同时连接到多个服务器.不是将每个服务器放在不同的端口上,是否可以在客户端使用通道选择器,或者更好的是在客户端进行多线程io并以不同方式配置服务器?


实际上,由于远程机器仅用于与其他硬件交互,RMI或IDL/CORBA是否是更好的解决方案?实际上,我只是希望能够从硬件发送命令和接收遥测,而不必编写一些应用程序层协议来完成它.



1> Dan Dyer..:

除非您有充分的理由使用它,否则请避免使用NIO. 这并不是很有趣,可能没有您想象的那么有益.处理成千上万的连接后,您可以获得更好的可扩展性,但是数量越少,阻塞IO的吞吐量就越高.一如既往,在做出你可能会后悔的事情之前,先进行自己的测量.

还有一点要考虑的是,如果你想使用SSL,NIO会让它非常痛苦.



2> Jim Nelson..:

可扩展性可能会推动您选择的包.java.net每个socket需要一个线程.编码将更加容易.java.nio效率更高,但可以编写代码.

我会问你自己希望处理多少个连接.如果它相对较少(比方说,<100),我会选择java.net.


当然,但这不一定是构建应用程序的最具可扩展性的方式.
推荐阅读
手机用户2402851335
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有