0

我在java中有一个应用程序,其中有两个服务(A和B)通过RMI 10方法进行通信,服务A可以在B端激活,服务B可以在A端激活的6种方法在这6种方法之间我有一个重要的方法检查性能,我正在计算 RMI 调用之前的时间差,直到另一边(A 面)的方法开始时间通常在 0-4 毫秒左右,但有时时间差会跳到大约:40 ,60 甚至每次调用 100 毫秒 问题:1) 有没有办法使用 RMI 将一种方法(或线程)优先于其他方法(或线程)?2)什么会导致这种不稳定?3) 在此类应用程序上使用 RMI 可以实现的最佳性能速率是多少?4)其他建议的解决方案?

提前致谢, 博阿斯

4

1 回答 1

0

1) 有没有办法使用 RMI 将一种方法(或线程)优先于其他方法(或线程)?

没有办法让 RMI 方法优先于其他方法。这里也没有证据表明它会带来任何好处,因为没有证据表明存在争用问题。您可以更改任何线程的优先级,但同样没有争用的证据,没有理由相信它会有所帮助。

2)什么会导致这种不稳定?

网络、DNS、两端的负载、网络负载……

3) 在此类应用程序上使用 RMI 可以实现的最佳性能速率是多少?

一个毫无意义的问题。什么硬件?什么网络?什么带宽?什么延迟?什么负载?这些方法在无负载或仅在该负载下本地执行需要多长时间?

4)其他建议的解决方案?

通过网络进行通信的方式有很多,但它们都调用网络 DNS、带宽、延迟、两端的硬件、负载……所有相同的因素。

RMI 性能主要是 CPU 和带宽方面的序列化性能,以及延迟方面的 DNS 性能。

于 2013-05-30T22:51:04.857 回答