2011-04-26 148 views
1

现在RPC是否仍在使用中。或者rpc被其他技术所取代? 如果我以C++开始新项目,我应该考虑使用RPC?使用RPC或其他东西

更多信息,因为我知道,RPC仍然是在使用产品代码:

我有两个应用程序相互通信。这两个在同一台机器上,但一个是服务,其次是用户应用程序。用户应用程序每2,3秒发送一次服务应用程序。 rpc的第二次使用。我有1个客户端和许多具有本地数据库的计算机。而且客户需要从这些计算机上获取一些数据。

对于这两个场景片,我应该使用Thrift这样的东西吗?或者它太大了?

+3

这取决于你的新项目做什么。 – 2011-04-26 18:25:07

+0

我在一些项目上使用了D-Bus。 – karlphillip 2011-04-26 18:28:06

回答

5

Remote Procedure Call是一个非常普遍的想法,而不是特定的东西。有ZeroC Ice,CORBA,Java RMI,SOAP,DRb,WCF以及围绕RPC思想构建的许多技术。他们确实在使用。例如,CORBA被一些Electronic Currency Exchanges(ECN)使用,ZeroC被Skype使用,Hewlett-Packard,soap被使用...以及我希望每个人都使用肥皂。

但是很难回答你是否应该考虑这项技术。如果你应该选择什么解决方案。这取决于太多的细节。但要问的主要问题是 - 你想达到什么目的?这些都是严肃的技术,有些可以为您节省大量宝贵的时间,有些可以帮助您集成用不同语言编写的应用程序等。基本上,每种解决方案都有其优缺点。

如果您确定需要它,我建议您两次考虑它,并决定您的项目中您需要的地方以及用途。如果你决定使用RPC,我会推荐你​​使用ZeroC Ice。它是免费的,开源的,可扩展和可扩展的,支持大量的现代编程语言,围绕它的社区似乎非常活跃。

希望它有帮助。祝你好运!

+0

你写道RPC非常通用。这是http://msdn.microsoft.com/en-us/library/aa365574(VS.85).aspx#base.using_rpc_for_ipc是这个相同的通用概念或别的东西? – userbb 2011-04-26 18:44:43

+0

您的问题仅用C++和rpc标记。鉴于此背景下,我将它解释为“通用” – 2011-04-26 18:55:54

+0

@userbb:概念是通用的,实现是不同的,它不会是可移植的和/或与其他解决方案兼容(每个解决方案与其他解决方案都不兼容) 。 – 2011-04-26 18:56:11

0

RPC被广泛用于windows操作系统。出于高性能的原因,我使用RPC来调用缓存服务。

+0

就像一个注释 - RPC不比替代的低级解决方案更快。并且在大多数情况下是显着较慢的。 – 2011-04-26 18:58:00

+0

这不是真的,只有直接硬件访问比rpc或共享内存更快,但在这种情况下,进程之间的隔离会丢失。 – lsalamon 2013-08-27 11:53:21

0

如果您确定需要RPC,我建议您查看Apache Thrift,它支持大多数通用语言绑定,并具有您将需要的大多数功能。这可能是为了你的需要矫枉过正,但既然你没有指定它们,我想我会把它扔到那里。

+0

我有两个应用程序相互沟通。这两个在同一台机器上,但一个是服务,其次是用户应用程序。用户应用程序每2,3秒发送一次服务。第二次使用rpc。我有1个客户端和许多具有本地数据库的计算机。而且客户需要从这些计算机上获取一些数据。 – userbb 2011-04-27 13:19:38