我目前没有使用NSB,但我认为它是一种可能的解决方案。
我可以传递给NServiceBus的消息数量是否有实际限制' IBus.Send(params IMessage [] messages)命令?
在我的应用程序中,我一直在分批批量打印几十个......可能是300个顶级消息(想想需要发送的营销电子邮件的场景)。单个消息不大......平均每个大约500个字节。现在我有了一个新的场景(新租户),它正在批量处理多达6000条消息(这引起了一种担忧,即未来我可以让一个更大的租户在一个活动中处理成千上万的营销电子邮件)。
我需要知道如何使用NSB解决方案来处理这种情况。我认为.Send方法调用将是一个阻塞的方法,只要需要MSMQ来排队6000条消息就会被阻止。但是我还应该注意其他实际问题吗?如果我宁愿迭代消息集合并将每个消息单独传递给IBus.Send的重载接受单个消息会不会更好?
这真的只是我关注的发送方。服务器端单独接收和处理每条消息,其顺序无关紧要。
答案 0 :(得分:1)
NServiceBus的第5版在一次调用中删除了Send()多条消息的能力:
我不会预见到循环超过6000条消息并发送它们的任何问题。您可能需要确保MSMQ配置为处理您可能需要的消息数量和空间量,但根据您的描述,我认为您不需要更改默认设置。
我建议抓一个演示许可证并做一些测试。启动一个产生这种消息量的小测试工具应该相当容易。