Как вы отправляете XML-файлы с помощью Azure Storage Queue?

У меня есть требование отправлять файлы xml между двумя серверами. Эти файлы могут быть до 1 МБ.

Я рассматривал возможность использования очереди хранилища Azure в качестве промежуточного места назначения для этих файлов, но прочитал, что размер сообщения ограничен 64 КБ. Я полагаю, что требование отправлять сообщения размером более 64 КБ не является чем-то необычным.

Есть ли способ обойти ограничение? Может компресс?


person wingyip    schedule 25.03.2016    source источник


Ответы (2)


Очередь — это не хранилище.

Сохраните полезные данные в хранилище больших двоичных объектов Azure, а затем отправьте сообщение в очередь со ссылкой на большой двоичный объект.

person Remus Rusanu    schedule 25.03.2016
comment
Да, это имеет смысл! - person wingyip; 25.03.2016

Во-первых, Azure Storage Queue не предназначена для хранения файлов. Очереди хранилища предназначены для отправки сообщений. Да, есть небольшое ограничение на размер сообщения из соображений производительности.

Есть ли способ обойти ограничение?

Очередь службы хранилища Azure не предназначена для отправки больших объемов данных в виде сообщений. Чтобы отправлять большие объемы данных, вам нужно будет хранить их где-то, например, в учетной записи хранения Azure, с указателем на расположение, где хранится файл, в сообщении, отправляемом в очередь хранилища Azure. Это позволяет приложению-отправителю упаковать все таким образом, чтобы приложение-получатель могло получить сообщение и определить, где находится связанный с ним файл.

Может компресс?

Использование сжатия для уменьшения размера файла, чтобы соответствовать ограничению сообщений очереди, на самом деле недостаточно надежно. Иногда вы можете получить файлы, которые все еще слишком велики при сжатии, и эти сообщения будут вызывать исключение при попытке отправки. Лучше всего использовать метод, описанный выше.

person Chris Pietschmann    schedule 25.03.2016