我构建了一个使用相同RMI服务模拟多个客户端的应用程序。然后,每个客户端检索数据并将数据上载到服务器,同时调用此服务。我担心的是,如果每次删除调用都需要一些时间,远程服务实现(jBoss 5 EJB)可以远程处理这些调用,或者将它们序列化。
如果是后者,那么我必须限制客户端数量以防止它们减慢速度。
答案 0 :(得分:1)
你到底是什么意思?
您是说有多个客户端各自获取远程EJB bean,然后在他们收到的存根/代理上调用方法,或者是否有大量远程客户端共享一个代理?
我们在谈论什么样的EJB bean?无状态会话bean?
这些bean由服务器汇集,并且对于每个传入的远程方法调用,都会将实例从线程池分配给工作线程。所以是的,如果给定时间范围内的请求数量大于可用bean实例和工作线程的数量,则那些剩余请求将必须等到bean变为可用。
这是一种自动节流机制。
答案 1 :(得分:1)
除非远程方法实现执行某种类型的同步,否则不会对RMI调用进行顺序化。这适用于RMI / JRMP和RMI / IIOP。