Кэширование в роли Windows Azure и общий кэш

У нас есть веб-сайт в Azure, и мы хотим кэшировать содержимое на веб-сайте. Приложение, которое будет обновлять содержимое, будет находиться за пределами Azure. Мы получили этот сценарий, работающий с общим кэшем. Однако совместное кэширование считается устаревшей функцией, поэтому мы хотели рассмотреть альтернативные решения, включая использование кэширования в роли. Кэшированное содержимое очень мало, не должно превышать 1 МБ и будет использоваться кодом C#.

Мы могли бы использовать совмещенный кеш внутри веб-ролей или выделенный кеш с помощью рабочей роли.

Вопросы, которые у нас возникали при использовании кэша в роли:

  • Как можно обновить совмещенный кеш из внешнего приложения?

  • Если бы существовал способ обновить совмещенный кеш из внешнего приложения, уведомления кеша можно было бы использовать для аннулирования всех узлов совмещенного кеша, верно?

  • Сейчас мы используем сверхмалые экземпляры веб-ролей. Нужно ли нам переходить на малые/средние экземпляры?

  • Лучше ли выделенное кэширование для нашего сценария?

    Заранее спасибо.


person maddog    schedule 12.03.2013    source источник
comment
См. этот вопрос... stackoverflow. ком/вопросы/14837213/   -  person Simon Munro    schedule 13.03.2013


Ответы (1)


Проведя кучу исследований и руководствуясь ответами Саймона в уже упомянутой ветке SO, вот мои ответы:

  • Вопрос. Как можно обновить совмещенный кэш из внешнего приложения?
  • О: Я бы предоставил общедоступную конечную точку на вашем Webrole, которая очищала бы кеш. И я бы назвал эту конечную точку из ваших внешних приложений (эта конечная точка может быть службой, URL-адресом для отдыха и т. д.). В качестве альтернативы, поместите сообщение в очередь, и пусть ваши Webroles отслеживают эту очередь и удаляют элемент из кеша, когда они получают сообщение в очереди. В любом случае вы реализуете свой собственный механизм уведомлений

  • В: Если бы был способ обновить совмещенный кеш из внешнего приложения, уведомления кеша можно было бы использовать для аннулирования всех узлов совмещенного кеша, верно?

  • О: Я так не думаю. Конечные точки совместно расположенного кэша являются строго внутренними.

  • Вопрос. Сейчас мы используем сверхмалые экземпляры веб-ролей. Нужно ли нам переходить на малые/средние экземпляры?

  • О: Да. Я считаю, что совмещенный кеш поддерживается в экземпляре Small и выше. Вам нужно будет попробовать это, чтобы увидеть, сколько оперативной памяти вы получаете по сравнению с тем, сколько осталось, и полезно ли это для вашего основного приложения.

  • В: Лучше ли для нашего сценария выделенное кэширование?

  • A: Выделенный и совместно размещенный кеш на самом деле связаны с нагрузкой. Достаточно ли у вас нагрузки на кеш и серверы приложений, чтобы оправдать перенос кеша в отдельную роль? Ознакомьтесь с рекомендацией Microsoft в этой статье: http://msdn.microsoft.com/en-us/library/windowsazure/hh914129.aspx
person Igorek    schedule 13.03.2013
comment
Спасибо Игорьк. Это очень помогло. - person maddog; 13.03.2013