2013-04-02 59 views
1

我有一個關於事件驅動的設計體系結構的問題。事件驅動的設計流程

我有一個包含許多域服務的服務器應用程序。每個服務都是一個WCF服務,我希望這些服務通過我創建的專用pub-sub基礎結構使用引發事件進行通信。

現在一切正常,但我有一個關於該業務流程中的問題..

我有接受來自消費者的通話,開始進行處理,發送消息給A成分而這又發送一個管理器服務消息給組件B等等。

最終,這些服務中的一些引發管理器服務的事件,該服務不保留傳入請求的狀態。

協調或管理此流程的最佳方法是什麼?

感謝

回答

2

看看NServiceBus,特別是NServiceBus sagas。一個傳奇(NSB中的含義更類似於'進程管理器')維護狀態並通過某個ID關聯消息。就你而言,經理服務是一種傳奇。它應該保持它管理的每個進程的狀態。這個狀態應該由一個關聯ID來控制,這個關聯ID由組件之間發送的所有消息共享。

+0

如果你有WCF那麼NServiceBus將不可能。不過,我同意傳奇功能聽起來正是你需要的。 –

+0

爲什麼WCF + NServiceBus不能工作。我現在正在運行一個類似這樣的設置,其中一個端點包含一個WCF服務和一個NServiceBus端點,它們全部由IIS AppFabric託管,如[this](http://weblogs.asp.net/britchie/archive/2010/09/08 /death-to-windows-services-long-live-appfabric.aspx)。 – eulerfx

+0

我的意思是nservicebus不使用wcf。 –