我正在Google App Engine上使用Java开发具有RPC概念的Java应用程序,但理想情况下何时应使用RPC?即使没有RPC,也可以实现与RPC相同的功能。因此,理想情况下应在什么情况下设计RPC .....?

最佳答案

当您需要访问当前应用程序外部的服务时,通常会使用RPC(或类似功能)。

如果您只是尝试调用属于该应用程序的方法(即在该应用程序的地址空间中),则不必要...并且浪费使用RPC的麻烦。




  ...理想情况下,我们何时应使用RPC?


当您需要它时,而不是在不需要它时。


  即使没有RPC,也可以实现与RPC相同的功能。


如果可以在没有RPC的情况下实现相同的功能,则听起来好像不需要它。


  因此,理想情况下应在什么情况下设计RPC .....?


需要时(请参见上文)。

一个更有说服力的答案是这样的场景,其中有充分的理由要在运行在不同地址空间中(通常是在不同机器上)的不同程序中实现“系统”的不同功能。有充分的理由可能包括:


使系统的一部分与另一部分绝缘
用不同的语言实现系统的不同部分
与遗留系统接口
与第三方供应商提供的子系统接口;例如资料库
利用其他机器的计算资源
提供冗余
等等。

10-07 19:03
查看更多