使用asp.net进行rebus的最佳实践?

时间:2014-01-22 02:38:48

标签: esb servicebus rebus

我有以下问题

[1]。有一个管理系统需要最频繁的CRUD操作。 例如int GetUserLimit(),List GetUserList(),int AddNewUser(User user),bool DeleteUser(),IsAuthenticated(string username,string passwrd)

对于上面列出的功能,Web应用程序可能希望等待一些返回。

在这种情况下,是否更好地直接为Web应用程序提供Web服务,或者我们不公开这些Web服务,而是Web应用程序通过请求/回复模式与EBS通信?

解决方案1:

http://i.stack.imgur.com/cIRUR.png

解决方案2:

如果Web应用程序将命令“发送”到一个组件A,则组件A将消息回复到名为“webmsgqueue”的特定队列或将消息推送到nosql服务器。 Web应用程序使用ajax轮询方法来检查“webmsgqueue”或nosql服务器中的消息。

http://i.stack.imgur.com/F7qTs.png

[2]如果我们查询或上传的数据很大,选择网络服务会更好吗?

1 个答案:

答案 0 :(得分:0)

如果我正确理解你的问题,你会问是否使用服务总线实现CRUD API是否合适,可能必须传输相当大量的数据,并且能够确定某些用户的凭据是否有用可以通过身份验证。

我认为我不会这样做 - 听起来我觉得你最好使用擅长传输数据的同步 API(所有意义上的“同步”)操作具有1:1的请求/响应关联,即使您的客户端库可能仍然采用异步方式进行同步调用 - 它甚至可以提供高效async / await)的能力。 / p>

另一个问题是,您是否真的更好地完全放弃了远程处理,使您的Web应用程序能够直接针对您的数据库执行CRUD操作。您仍然可以通过将实现隐藏在接口后面来使应用程序解耦。

如果您担心时间解耦,我会说当您决定公开返回类型不同于void的API时,您已经失去了时间解耦;)

这有意义吗?