是否可以批量Rebus消息(使用Azure Servicebus)? 原因是我们将发送大量消息以保存日志事件并想要批量处理。
答案 0 :(得分:0)
虽然旧版本的Rebus确实有一个批处理API,用于在单个传输消息中包含多个逻辑消息,但该功能在很多地方以增加的复杂性为代价,带来的优势很小。
如果您想发送批量邮件,我建议您只编写自己的邮件批处理邮件,例如
public class BatchOfLogEvents
{
public BatchOfLogEvents(IEnumerable<LogEvent> logEvents)
{
LogEvents = logEvents.ToArray();
}
public IReadOnlyCollection<LogEvent> LogEvents { get; }
}
然后你发送它并在另一端为它创建一个处理程序。
有关Azure Service Bus的更新:请记住Azure Service Bus有256 kB maximum message size (or 1MB if you're on Premium)。
另外:如果您还没有这样做,您可以通过启用GZip压缩消息来获益
.Options(o => o.EnableCompression())
在您的Rebus配置中。