Возможно ли выполнять пакетные сообщения Rebus (используя Azure Servicebus)? Причина в том, что мы собираемся отправить много сообщений, чтобы сохранить события журнала и захотеть выполнить пакет.Поддерживает ли пакет пакетной передачи в сети Rebus
1
A
ответ
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())
в вашей конфигурации ребус.