2013-04-02 58 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。 –