我正在 Google App Engine 上开发一个 Java 应用程序,其中我们有 RPC 的概念,但是我们什么时候应该使用 RPC?即使没有 RPC,我也可以实现与 RPC 相同的功能。那么理想的RPC应该在什么场景下设计......?
最佳答案
当您需要访问当前应用程序外部的服务时,通常会使用 RPC(或类似的)。
如果您只是尝试调用属于此应用程序一部分的方法(即在此应用程序的地址空间中),那么使用 RPC 是不必要的……而且是浪费。
<小时/>... when should we ideally make use of RPC?
当你需要它的时候,而不是当你不需要它的时候。
The same functionality that I am doing with RPC could be implemented even without it.
如果无需 RPC 也能实现相同的功能,那么听起来您不需要它。
So in what scenario should ideally RPC be designed.....?
当需要时(见上文)。
一个更具指导意义的答案是有充分理由在不同地址空间和(通常)不同机器上运行的不同程序中实现“系统”的不同功能的场景。好的理由可能包括以下内容:
- 将系统的一个部分与另一部分隔离
- 用不同语言实现系统的不同部分
- 与旧系统交互
- 与第三方供应商提供的子系统接口(interface);例如数据库
- 利用其他机器的计算资源
- 提供冗余
- 等等。
关于java - 我们什么时候应该使用远程过程调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7481226/