【发布时间】:2011-01-13 09:57:56
【问题描述】:
免责声明:这是来自my other question about NServiceBus 的后续问题answered very thoroughly。
我目前的问题是:如果一个网站被构建为像上面提到的文章那样“愚蠢”,那么下面的场景是如何工作的?
用户通过填写包含相关详细信息的表单在网站上注册。当用户单击表单上的“提交”按钮时,Web 应用程序获取表单数据并创建一条消息,它使用 NServiceBus 和 Bus.Send() 将其发送到应用程序层。应用层负责创建新用户并发布用户已创建的事件(Bus.Publish()),以便其他进程可以做他们的事情(给新用户发送电子邮件,将用户添加到搜索索引等)。
现在,由于本场景中的 Web 应用程序完全依赖应用程序层来创建新的用户实例,它如何知道用户的 id?如果在这种情况下我没有使用 NServiceBus,而是让网站发出对 DAL 的进程内调用,我将使用 NHibernate 的 GuidComb() 策略为新用户创建标识符,然后再将新行保留在数据库。如果接收到创建新用户的命令的消息处理程序应用程序(在当前场景中)使用相同的策略,那么 userId 是如何传回 Web 应用程序的?
在这种情况下,我是否必须采用不同的策略来管理标识符?
【问题讨论】:
标签: nhibernate nservicebus identifier