我关心我的NServiceBus解决方案。
我有一个“MessageHub”,它发布了一些非常重要的消息。但有时它会丢失对其订阅的跟踪,只是丢弃该消息,因为它认为没人在听。
我尝试启用“NServiceBus.Integration”来存储订阅。但尽管如此,我还是有一个糟糕的启动顺序问题,它认为什么都没有听。
有没有办法调试这个过程?试着弄清楚为什么会混淆?
我甚至不知道如何看待它“认为”它的订阅......
我选择了NServiceBus,因为它不应该丢失数据。现在我正在失去大量的吸盘。我知道这是一个配置问题,但它引起了很大的麻烦。
答案 0 :(得分:1)
您的情况可能发生的是您使用MSMQ进行订阅存储。尽管订阅可能会持续一段时间,但使用MSMQ来长期存储东西总是会变得不稳定。
对于持久订阅存储(永久存在),您应该使用SQL Server作为订阅存储。
注意:无论您是使用sql还是msmq来存储它们,都可以随时查看当前订阅。在SQL中,只需查看订阅表,并查看发布者订阅队列中的msmq。
<强>更新强>
从版本3开始,我一直在使用默认的RavenDb。
答案 1 :(得分:0)
根据我的经验,为了正确分配订阅,首先应该启动EventHandler项目,然后当它们都空闲时,启动CommandHandlers(Publishers)。
您可以看到使用Service Bus MQ Manager订阅了哪些消息,它有一个对话框,列出所有“消息”及其订阅者/发布者。我的一个侧面项目,它的免费和开源。 http://blog.halan.se/page/Service-Bus-MQ-Manager.aspx