服务器和服务器之间通讯,我该用rmi还是socket?

目前我参与了一个JAVA实时系统的开发,由于服务器端是分布式部署,多个服务器之间需要频繁传递数据。
现在我决定用socket和rmi两个中选一种技术来实现服务器之间的通讯。
如果用socket的话,需要自己封装协议来处理不同的通讯请求,但效率要高些。
如果用rmi的话,实现要简单,但效率可能要低些。
考虑到服务器都是部署在本地,并非远程部署,这样的话是否可以忽略rmi带来的效率影响呢?
希望大家都来发表下意见或者有过类似经验的朋友指点。。。。

貌似这里的牛人比较多呢?

[该贴被admin于2009-03-16 09:45修改过]

rmi即可

在绝大多数可见的应用场景中RMI都是可行的解决方案,实现socket的代价太大了。

如果顾及网络的性能,那么首要考虑的是那些数据是必须交换的。

建议使用自定的协议,因为有可能服务器会采用别的语言开发。

树立可伸缩的设计概念是最重要的,socket太底层,如果将来分布式计算,你需要自己编写基于socket的分布计算。
RMI=socket +object 也比较底层。

所以,建议对你实时系统进行架构设计,选择合适分布式计算框架如javagroups或terrcotta兵马俑等内存并行计算。只有根据业务进行特定的性能设计,没有一劳永逸的产品或解决方案。

>>> 目前我参与了一个JAVA实时系统的开发,由于服务器端是分布式部署,多个服务器之间需要频繁传递数据。
楼主没说清楚,是哪一层是分布的?数据库服务器呢?还是应用服务器?