2011-04-26 146 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