2015-06-22 2 views
3

Я оцениваю хранение очереди Azure для связи между двумя развязанными приложениями.Azure Queue Storage: отправка файлов в сообщениях

Мое требование - отправить файл (плоский файл, размер: от малого до большого) в сообщение очереди.

В соответствии с моим чтением отдельное сообщение в очереди не может превышать значение выше 64 КБ, поэтому отправка файла с переменным размером в сообщении не может быть и речи.

Другим решением, которое я могу придумать, является использование комбинации хранилища очередей и хранилища памяти, то есть в сообщении о очереди добавьте ссылку на файл (на хранилище blob), а затем, когда необходимо, прочитайте файл из блоба (используя ссылка/адрес в сообщении очереди).

Мой вопрос в том, что это правильный подход? или есть ли другие элегантные способы достижения этого?

Спасибо, Сандипа

+0

Ваше решение по хранению файлов в хранилище blob и blob URL в сообщении - правильный подход. –

+0

@GauravMantri - Я согласен, что это хороший (отличный?) Подход, но, не зная приложения OP, я не думаю, что мы можем точно сказать, что это подход * *. –

ответ

3

Хотя нет никакого права подхода, так как вы можете положить все, что вы хотите в сообщении очереди (в пределах размера), подумайте: Если размер файла может перейти 64K, вы просто не может хранить их в сообщении очереди, поэтому у вас не останется другого выбора, кроме как хранить содержимое в другом месте (например, blobs). Для файлов под 64K вам нужно решить, хотите ли вы использовать два разных метода работы с файлами или просто использовать blob-файлы в качестве источника файлов по всем направлениям и иметь последовательный подход.

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

Еще одна вещь: если вы храните контент в блоках, вы можете использовать любое количество инструментов для управления этими файлами, и ваши файлы остаются в хранилище blob навсегда (пока вы явно не удалите их). Сообщения очереди должны быть удалены после обработки, что не дает вам возможности сохранить файл. Это, вероятно, важный аспект.

+0

Спасибо, Дэвид за подробный ответ, оцените это. – user2830364

+0

Кстати, есть способ, которым мы можем сохранить сообщения в очереди после обработки? Я хочу сохранить почтовую обработку сообщений для целей аудита. Можем ли мы отметить сообщение в очереди как «сделано» – user2830364

+0

Это не так, как эти очереди работают. В конце концов произойдет тайм-аут невидимости, а затем снова появится сообщение, в результате чего ваш код будет снова оцениваться/обрабатываться. Вам нужно разгрузить ваши сообщения где-нибудь для целей истории/ведения журнала/аудита. –

Смежные вопросы