用于客户端/服务器通信的NServicebus?

时间:2011-02-08 09:10:58

标签: architecture nservicebus esb servicebus

我正在开始一个新项目并且已经爱上了服务总线的概念,以便在后端连接您的服务。由于我到目前为止主要进行Web开发,所以我只是将Web层连接到ESB上的服务。

现在我开始使用需要服务器/客户端连接的桌面应用程序,并且ESB似乎是一个好主意,因为它默认强制执行异步模型,并且还允许分配负载的一些灵活性。 Pub / Sub在许多情况下也很有意义..

你在ESB的网上看了很多,Ayende也做了他的Alexandria应用程序,在请求/回复场景中使用了ESB。然后其他人说通过ESB做请求/响应是一件坏事......

在ESB支持我的服务器/客户端通信时,我可能会看到哪些大问题?

2 个答案:

答案 0 :(得分:1)

这对我来说是一个非常有趣的问题,因为我从相反的角度提出了同样的问题 - 从WinForms到Web(虽然在Yahoo组,而不是SO)。

WinForms上的异步请求/响应对我来说非常有用。 UI只是触发查询命令并忘记它。如果响应(带有查询结果)恰好进入,并且想要它的视图仍然可用,则数据将填充到视图中。

我试图形成一个视图,说明为什么使用ESB进行查询是“坏”的,我能想到的最好的是异步模型不容易满足构建一个的要求。 Web应用程序的页面。与其他更直接的查询方法相比,还有一点性能损失。

我不喜欢“只是因为”的答案,所以我很期待其他对你问题的回答。

答案 1 :(得分:1)

CQRS(命令/查询隔离)上查看Udi Dahan的帖子。这将指出您需要做出的决策点。客户端应用程序的主要挑战是在后台创建消息泵并将该数据编组回UI线程。对于Web来说,将查询分隔到更加非规范化的商店对我们来说效果很好,但是这种方法会让您对构建UI的方式有所不同。它确实大大简化了模型,因为您不需要将对象映射47次来获取数据,而我一直在努力证明这一点。显然,缺点是更多的移动部件,但我们发现它是值得的。