Nservicebus 使用NService总线发布大量消息
我想使用n服务总线发布大量消息。 我发现了一个重载发布方法,它将消息列表作为参数。 当我尝试使用它时,它显示以下错误Nservicebus 使用NService总线发布大量消息,nservicebus,azureservicebus,Nservicebus,Azureservicebus,我想使用n服务总线发布大量消息。 我发现了一个重载发布方法,它将消息列表作为参数。 当我尝试使用它时,它显示以下错误 var message= new Message { Id = id, Timestamp = DateTime.SpecifyKind(DateTime.Now, DateTimeKin
var message= new Message
{
Id = id,
Timestamp = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local),
PublishingStartTimestamp = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Local)
};
bus.Publish(new[] { message, message});
错误:“NServiceBus.IBus.Publish(params T[])”已过时:“已删除以减少复杂性和API混乱。”。有关更多信息,请参阅。将在5.0.0版中删除。”
发布大量消息的替代方案是什么。
我的任务是每秒发布600个事件。
有人能帮忙吗
提前谢谢 NServicebus支持异步发布消息: 假设您在接收消息上下文之外,您可以收集任务列表中的所有发布任务,然后让这些任务与WhenAll异步运行 还要确保您没有达到azure服务总线每秒最大消息数的限制 更新
有关完整答案,请参阅Ramon Smit的答案。NServicebus支持异步发布消息: 假设您在接收消息上下文之外,您可以收集任务列表中的所有发布任务,然后让这些任务与WhenAll异步运行 还要确保您没有达到azure服务总线每秒最大消息数的限制 更新 有关完整答案,请参阅Ramon Smit的答案。大量 我不确定你的用例是什么。如果消息流是一致的,那么对于单个端点,600 msg/s转换为每天将近5200万条消息 用例 我们会对您的用例感兴趣,我们可以在我们的谷歌小组中公开讨论
var message = new ParentMessage();
for(int i=0;i<600;i++) message.Children.Add(new ChildFragment());
Bus.Publish(message);
var tasks = new List<Task>();
for(int i=0;i<600;i++) tasks.Add(messageSession.Publish(new MyEvent()));
await Task.WhenAll(tasks).ConfigureAwait(false);;
var message = new ParentMessage();
for(int i=0;i<600;i++) message.Children.Add(new ChildFragment());
Bus.Publish(message);
var tasks = new List<Task>();
for(int i=0;i<600;i++) tasks.Add(messageSession.Publish(new MyEvent()));
await Task.WhenAll(tasks).ConfigureAwait(false);;
在V6中,对于单个端点实例,每秒发送/接收数千条消息应该没有问题。您好,我找不到任何名为PublishAsync的方法。我有最新版本的N服务总线。你能帮我处理NSB 6发布是异步的吗?你让我很开心。谢谢你,伙计!尽管V6是异步的,但只有在调用了所有处理程序和Saga之后,消息才会被推送到传输中。@Ramon,你能澄清一下这是什么意思吗?嗨,我找不到任何名为PublishAsync的方法。我有最新版本的N服务总线。你能帮我处理NSB 6发布是异步的吗?你让我很开心。谢谢你,伙计!尽管V6是异步的,但只有在调用了所有处理程序和saga之后,消息才会被推送到传输。@Ramon,您能澄清一下这是什么意思吗?如果这是在处理程序或saga中完成的,那么在传入消息上下文中完成的?请联系我们了解您的用例。我们对讨论它非常感兴趣。如果这是在处理程序或saga中进行的,那么在传入消息上下文中进行的?请就您的用例与我们联系。我们非常有兴趣讨论它。嗨,我们需要这个工具来对我们的工作者角色执行负载测试。我们在10分钟内每秒生成600个消息,并测试API的行为。谢谢你的盛情款待explanation@mangeshKulkarni如果您想构建一个用于负载测试的客户机,那么请看一下下面的项目,例如,这将为数据播种,并可能帮助您尽可能快地将数据推送到队列中。还可以查看各种传输配置,以调整传输以获得最佳性能。@RamonSmits我自由地编辑了
Childs
到Childs
。您好,我们需要这个工具来执行