0

В основном мы используем recommended cloud architecture, где исходные изображения хранятся в хранилище Azure Blob, программа имиджеры работает в Azure App Service, а Azure CDN - это слой CDN.Можем ли мы использовать хранилище Azure Blob для ImageCache ImageResizer

Тем не менее мы сталкиваемся с проблемой с ImageResizer v3, Azure App Service deployment slots и DiskCache.

Мы используем промежуточный слот в нашей службе обслуживания Azure для предотвращения прерываний. Мы также используем плагин DiskCache. Без какой-либо конфигурации imagecache записывается в D: \ home \ site \ wwwroot \ imagecache \, который является слотом.

Это порождает две проблемы:

  1. Когда мы переставляем слотов ImageCache, который используется несвежий и много изображений будет отсутствовать.
  2. У нас всегда есть устаревшее воображение, занимающее дисковое пространство в нашем плане обслуживания приложений, наш советник в Microsoft рекомендовал использовать хранилище Blob вместо виртуальной локальной файловой системы для DiskCache.

Я заметил, что нет BlobCachePlugin или S3CachePlugin, и мне было интересно, есть ли веская причина для этого.

Мои вопросы:

  1. Есть ли причина, чтобы не хранить ImageCache в Azure Blob Storage с помощью пользовательского BlobStorageCachePlugin, который реализует интерфейс ICACHE?
  2. Если есть веская причина, в какой альтернативной архитектуре вы советуете избегать проблем с слотами для развертывания?

ответ

2

Кэши должны быть низкой латентностью. Помещение кеша в хранилище Blob приведет к тому, что даже кеш-атаки будут работать ужасно, вероятно, добавив 800-1800 мс за запрос. Если сервер Redis был доступен, есть способы сделать эту работу лучше, но она все равно не будет работать, а также будет использоваться хранилище с низкой задержкой.

Решение проблемы холодного кэша:

  1. Разминка слот постановка путем дублирования реальных запросов к ней (в идеальной ситуации, поскольку она также подогревает не-ИК кэши).
  2. Если это невозможно, вы можете подумать о какой-то запланированной копии между папками imagecache на каждом сервере, который «только добавляет» файлы. Не пытайтесь изменять или удалять файлы или каталоги, которые активно используются.
  3. Используйте распределенную файловую систему с малой задержкой или общий сетевой диск с малой задержкой. Измерьте задержку, хотя, потому что это будет проблемой, если у вас очень хорошее сетевое соединение между серверами. Есть хранилища blob, которые могут быть достаточно быстрыми, чтобы использовать их для кеширования, но обычно, только когда вы сами управляете ими, чтобы обеспечить низкую задержку.

Это означает, что вы не сможете включить autoClean для автоматической очистки записей кэша; настроить мониторинг использования диска.

+0

Согласно http://www.azurespeed.com/ латентность BlobStorage на самом деле не так уж плоха (около 40 мс с иногда пиком 400 мс). Тем более, что наша Служба приложений находится в том же центре данных/регионе, что и BlobStorage. У вас есть практический опыт, который предполагает иное? – Wilgert

+0

Я никогда не видел латентность 40 мс, возможно, 100 мс в хороший день. если у вас хорошая латентность, вы можете посмотреть на сторонние пакеты nuget для этого. Правда, даже 40 мс в порядке на кеш-хиты? –

0

Если у вас есть CDN, сидящий перед вашим веб-приложением, вам нужен плагин DiskCache вообще (или запрошенное кэширование кэша Blob)?

После того, как изображение было обработано веб-приложением, оно затем кэшируется одним из пограничных серверов CDN, и какова цель кэширования его в хранилище Web App/Blob?

+0

Ну, у нас есть пользователи со всего мира в сочетании с более чем 300 000 возможных изображений в нескольких размерах. Кэш-память CDN недостаточно высока, чтобы на нее можно было положиться. Кроме того, изменение размеров изображений происходит очень медленно (в секундах), поэтому мы предпочитаем также хранить измененную версию в локальном кеше. постскриптум Я не знаю, знаете ли вы, но если что-то находится в кеше на каком-то пограничном сервере, оно по-прежнему загружается из источника с любого другого пограничного сервера. – Wilgert

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