是否可以使用RabbitMQ客户端为C#一次发布多条消息?

yen*_*nta 9 c# rabbitmq

现在,我们的大量消息发布代码如下所示:

foreach (var message in messages)
{
    publisher.Publish(message);
}
Run Code Online (Sandbox Code Playgroud)

是否有能力一次通过频道发送多条消息?

publisher.Publish(messages);
Run Code Online (Sandbox Code Playgroud)

或者如果我们大块的话

var chunks = messages.Chunk(100);
foreach (var chunk in chunks)
{
    publisher.Publish(chunk);
}
Run Code Online (Sandbox Code Playgroud)

cah*_*yaz 8

使用当前版本的 RabbitMq(3.8.2),您可以为 c# 客户端 sdk 发送如下批处理消息:

basicPublishBatch = channel.CreateBasicPublishBatch(); basicPublishBatch.Add("exchange", "routeKey", false, null, new byte[]{1}); basicPublishBatch.Add("exchange", "routeKey", false, null, new byte[]{1}); basicPublishBatch.Publish(); 检查这个公关:https : //github.com/rabbitmq/rabbitmq-dotnet-client/pull/368


tch*_*kch 3

对于 RabbitMQ,AMQP 协议对于生产和消费操作是异步的,因此尚不清楚如何从开箱即用的批量消费者端点中受益。

您可以做的是为分块消息创建端点,并在工作流程中处理它们(如果可以加快操作速度)。因此,一种解决方案是在发布者类之前包含批处理组件并发送自定义消息。