在我的理解中,java.rmi是一个规范 我如何知道在使用该API进行开发时我使用的java.rmi的特定实现。
最大线程数也有限制 是在RMI服务器上启动的?
答案 0 :(得分:1)
您使用JDK提供程序的实现。 Therm不是像JNDI,NIO,JCA等那样的提供者架构。
RMI规范没有提及任何线程限制。
答案 1 :(得分:-2)
我很难称RMI为"规范"。它是一个非常Java特定的序列化实现;并且它的任何实现与您运行的JRE版本相匹配。我建议不要在使用RMI时在客户端和服务器之间随机混合和匹配JRE版本。我也不建议使用旧VM中不存在的奇特功能来序列化POJO。
虽然它没有指定",但我已经为C#反向设计了一个几乎完整的RMI实现(用于WPF的基于Spring / Hibernate的服务器),但我没有'知道在现实世界中使用这种非JRE实现的任何人。在某些情况下,您只是为了与J2EE系统进行通信而陷入RMI。但是,如果可能的话,你应该使用像ProtocolBuffers / Thrift / Avro / Hessian / Parqet等更合理的东西。那些有真正的"规范"使用版本化的线程协议和多个平台的IDL编译器;当我为RMI做的时候绝对不是这样。
RMI还有其他问题,我将其归类为安全问题(即:您在序列化流中拼出一个类名,它将调用一个无参数构造函数来创建该名称的类)。它的设计对于对象图变大的情况也不是很好。 (特别是,在反序列化过程中,您可以使堆栈变得非常大。)