2010-04-27 147 views
84

我聽說過NServiceBus,但我還沒有真正理解它是什麼。他們聲稱是「最受歡迎的.net開源服務總線」。什麼是服務總線,我什麼時候需要一個?

所以;什麼是「服務巴士」,我什麼時候需要一輛?

+0

我真的遲到了,我不會發布這個作爲答案,因爲它不是這樣的,但在短期,如果你不知道你爲什麼需要一個那麼很可能你不...它解決了連接應用程序和爲您的業務提供集中式API時可能沒有的特定問題。 – War 2014-05-30 14:26:51

+2

@Wardy我不同意你的陳述。你不明白的地方或者不知道它是什麼,這一事實並不意味着它不會幫助你瞭解它 – 2015-06-23 18:22:42

+0

這不是因爲無知而更指出,服務總線的藉口是一個術語當你遇到它解決的問題時會拋出很多東西,所以你要麼需要它,要麼就不會,因此不必擔心。 – War 2015-06-24 18:58:56

回答

63

您可以將服務總線視爲SOA的以太網。

首先,它引入了識別事物的語言,如以太網中的IP地址。這個名稱不是固有的物理上的東西。

接着,必須涉及的每個節點上的東西的物理,就象是在總線的用於支撐半連接的通信,或者在隱喻以太網卡的情況下的隊列。

除了物理之外,還有通信的「協議」部分,如以太網的OSI棧。使用總線,這是應用程序代碼使用的客戶端庫。

最後,你可以查看服務總線爲構建分佈式系統提供的抽象的下一個更高的水平。您還可以使用它的客戶端服務器通信,給你持久的單向通訊以及服務器推送通知返回給客戶端。

具體而言,您會發現NServiceBus相當輕巧,易於使用,一旦您使用排隊技術 - 您選擇RabbitMQ,MSMQ,Azure存儲隊列和Azure服務總線,您可以輕鬆使用它。

+0

THX!想想我現在已經有了大局了!實際上是在問這個問題,對於你今晚舉行的會議有點準備,但它看起來並不像我做的那樣。 – stiank81 2010-04-28 07:26:56

9

查看關於Enterprise Service Bus的維基百科文章。

服務總線在永無止境地追求實現一個好的面向服務的體系結構的過程中扮演着另一個抽象層。服務總線可以處理一些很好的面向服務的體系結構,如消息傳遞,路由和服務協調。

如果你不確定爲什麼你會想要類似的東西,我會建議閱讀什麼是一個良好的面向服務架構。這讓我大開眼界,並證明僅僅有Web服務,並具有導向架構一個真正的服務是與不同的書托馬斯·爾的Service-Oriented Architecture: Concepts, Technology, and Design

+0

所以我可以用它來做一個桌面客戶端應用程序和服務器之間的通信?服務器在內部,就是。 – stiank81 2010-04-27 21:24:23

+0

你可以。您還可以將其用於不同服務之間的通信,不同版本的不同服務之間的通信(包括服務使用不同協議的情況)。 – 2010-04-27 22:01:23

10

這個詞是用SOA這是一種方式的繼任者推出(如嗡嗡聲詞)的EAI

當你需要它時?這是個好問題。它帶有很多複雜性。

經驗法則可以解決更多的問題。

如果您有異質的環境並且希望將不同的應用程序(使用不同的技術)與業務流程對齊,那麼將會變得嚴重。 那麼它可能會有所幫助使用BPEL(但這引入由migraton問題)爲編排編排

編輯:什麼是不是維基百科,是一個實踐: ESB可以胃內使用專用連接器,舊的終端應用程序與Corba或Java Enterprise一起使用,這些應用程序是通過互操作性來實現的。缺點是圍繞SOAP的100多個「標準」,如果不經過大量努力就不會合作。

如果您必須在兩家大型保險公司合併後六個月內互連IT系統,您一定需要它。

+0

所以 - 其中有與服務器端沒有必要去大與服務總線一個「簡單」的溝通我的桌面應用程序?它可以幫助我從服務器實施推送模式嗎?或者在這種情況下,它會比獲得更多的痛苦? – stiank81 2010-04-27 21:22:57

+0

@ stiank81對不起,我讀(企業)服務總線和突觸解僱。我檢查了你的NServiceBus鏈接,他們的目標是相同的,你不需要在客戶端服務器應用程序中那樣。這意味着一個業務流程中涉及多個應用程序的概念。如果它適合你?如果它解決了更多問題而不是它造成的問題。 – stacker 2010-04-27 21:34:31

+0

Thx。不,聽起來並不喜歡的事,我想我現在的應用程序.. – stiank81 2010-04-27 21:40:51

相關問題