【发布时间】:2011-01-26 05:33:36
【问题描述】:
我正在编写一个分布式 Java 应用程序,该应用程序将大量使用网络,并且需要快速。
假设我有一个名为Widget 的类。小部件是在客户端创建的(很可能是 Swing 盒子),但需要在服务器端持久化并在所有其他连接的客户端之间共享/分发。所以,我需要一种方法来序列化 Widget 实例,将它们发送到服务器,服务器将在那里管理它们,并使用他们感兴趣的 Widget 中的状态更改来更新所有连接的客户端。(因此,一旦创建了 Widget 并将其发送到服务器-side,理论上它可以被任何其他客户端“拉下”和修改。
性能是必须的,所以这一定是二进制协议。也更喜欢非阻塞套接字,以及非常非常可扩展的东西。
因此,我将 RMI、NIO 和 Netty 视为可行的解决方案。如果我正确理解 Java 网络,那么一切似乎都表明 RMI 比 NIO 慢得多。我还听说可扩展性部门缺少 RMI。另一方面,NIO 为您提供了更大的灵活性,因此要复杂得多。 Netty 似乎拥有最好的文档,但似乎比 NIO 慢,并且可能无法完成我真正需要它做的事情。
对于小部件分发,我只是在寻找通过网络快速发送小部件的能力。不在乎使用什么协议。
有人愿意分享他们的想法/意见吗?
谢谢!
【问题讨论】: