2011-08-24 79 views

回答

4

我會盡量回答這是一個軟的解釋,而不是功能技術故障:

有人會說Finagle是一個異步消息傳遞庫,允許服務在支持多種協議的同時自由連接(與架構系統集成標準不緊密相關)。

Finagle網站:

欺騙是,你可以用它來建立異步遠程過程調用(RPC)客戶端和服務器在Java中,斯卡拉,或任何JVM託管語言的JVM的網絡堆棧。 Finagle提供了一套豐富的協議無關工具。

另一方面,企業服務總線(ESB)是一種異步消息傳遞架構,通常符合行業標準和協議。 ESB提倡在系統之間控制和路由消息流,並且服務器可以註冊他們的服務,客戶端可以註冊他們感興趣的消息。服務器提供的服務可以被註冊和版本化。

您通常會發現Finagle被用於網站和後端服務之間的某處。但是,您通常會在大型企業中找到一個ESB,它負責集成諸如財務,支持,銷售等系統。

這兩種解決方案都提供異步消息傳遞和緩衝到各種擴展,但並非旨在解決同樣的問題。對於ESB,你可能會認爲'嚴格,企業',但對於Finagle,你可能會認爲'靈活,網絡'。

希望這有助於

更新:

不太相關,但如果你正在探索這個空間,我想看看Kafka這些天。

2

兩種解決完全不同的問題:

  • ESB是一箇中介的中間件,其提供消息轉換和路由,協議適配和其他增值操作(如配器,有保證的遞送,冪等過濾...) 。它位於服務消費者和提供商之間,透明地(即,消費者或提供商沒有任何改變)提供其不同的功能。
  • RPC系統提供用於執行RPC操作的客戶端和服務器技術。
+0

請您將Finagle製作成標籤,我沒有這些特權。 – Jack

+0

確定:完成。 –

2

RPC和ESB是兩種架構模式。雖然RPC通常是一個請求 - 回覆並且本質上是同步的,但ESB的工作原理是消息傳遞(簡化解釋)和異步本質。 ESB是任何SOA實現的基礎。 ESB能夠實現鬆耦合,從而提升真正的靈活性。從實現的角度來看,一個簡單的例子如下:

Web服務是一個典型的RPC。消費者與生產者緊密聯繫,生產者方面的任何合同變化都將需要消費者方面的變化。

在ESB中,服務使用者不直接調用服務生產者。它只是把信息放在公交車上,並根據規則(中介),適當的服務生產者將處理它。如果服務使用者和服務生產者以不同的格式進行交談,ESB提供了進行轉換的工具(例如將郵政編碼格式設置爲xxxxx-xxxx,將名稱分爲名字和姓氏等)。

這只是簡單的解釋。欲瞭解更多信息,請點擊以下鏈接:

​​

Enterprise Service Bus

相關問題