Я использую MassTransit для отправки и получения команд микросервиса. Он отправляет и получает нормально, когда я запускаю его локально (удаленное подключение к экземпляру служебной шины Azure). Например. Я отправляю команду из локального консольного приложения в удаленную очередь ServiceBus (которую я вижу в Service Bus Explorer 3.0.4), а затем моя локальная служба TopShelf получает и обрабатывает команду. Но когда я развертываю свою службу, происходит сбой со следующей ошибкой:
Microsoft.ServiceBus.Messaging.MessageSizeExceededException: The received message (delivery-id:0, size:1904586 bytes) exceeds the limit (262144 bytes) currently allowed on the link.
Я отправляю только одно сообщение, и оно довольно большое, но не 1,8 МБ, как указано в сообщении об ошибке! Его размер чуть больше 100 КБ.
Я нашел это сообщение о партии разделение сообщений, но мне это кажется актуальным только в том случае, если вы хотите разделить несколько сообщений на более мелкие группы сообщений. Я отправляю только одно сообщение. Кроме того, я не могу найти в MassTransit никакой документации о том, как это сделать. Я пробовал установить IServiceBusHostConfigurator
вот так: cfg.BatchFlushInterval = TimeSpan.FromSeconds(0.05);
- Может кто-нибудь объяснить, почему он считает, что мои сообщения намного крупнее?
- Могу ли я разбить отдельное сообщение на более мелкие разделы? Или есть другое решение?
- Стоит ли вообще отключить разбиение на разделы? Если да, то как?