Несколько дней назад вышла новая версия продукта 3.70, в которой разработчики добавли полную поддержку Windows Azure. В предыдущих версий владельцы магазинов могли использовать только один instance в Azure, теперь же была добавлена поддержка нескольких. Следовательно, по сути этот функционал можно использовать на веб фермах. Это открываем нам отличные возможности для масштабирования приложения.
Предположим, что вы уже скачали (http://ift.tt/UsSWME) и установили (http://ift.tt/1PauWGY) nopCommerce в Azure. Итак, что же было сделано для поддержки Azure, и как все это настроить и включить:
Хранилище BLOB-объектов
Теперь вы можете настроить хранение ресурсов (например, изображения продуктов и категорий) как BLOB-объектов, а не просто хранить на файловой системе, как это сделано по-умолчанию. Более подробно о службе хранилищ в Azure можно почитать тут (http://ift.tt/1KtZWCS).
Как настроить в nopCommerce:
- Разумеется, сначала вам необходимо создать учетную запись BLOB хранилища в Windows Azure. Эта процедура хороша описана тут (http://ift.tt/1QK2TPk)
- После этого вы сможете получить connection string, container и endpoint от этого хранилища.
- Теперь необходимо открыть файл web.config в nopCommerce. Найдите XML элемент AzureBlobStorage и введите туда полученные ранее connection string, container и endpoint
- Как только это будет сделано, ваши ресурсы будут храниться в Azure BLOB
Кеширование и распределенные сессии
Разумеется, в любом распределенном приложении нам надо иметь поддержку распределенного кеширования и сессий. Иначе различные экземпляры приложения будут использовать разные данные. Мы выбрали Redis (http://redis.io/) для реализации этого функционала, так как Azure и многие другие облачные сервисы уже поддерживают его.
Как настроить в nopCommerce:
- Сначала установим Redis. О том, как использовать Redis в Azure хорошо написано тут (http://ift.tt/1QK2ZpS).
- Как только предыдущий шаг завершен, нам надо скопировать и указан connection string от Redis в web.config файле в nopCommerce. Найдите XML элемент «RedisCaching», установите атрибут «Enabled” в «True», а потом укажите в следующем атрибуте сам connection string к Redis. Теперь все кешированные данные хранятся в Redis
- Теперь проделаем тоже самое для сессий. Снова откройте web.config файл, раскомметируйте элемент «sessionState» и укажите в нем ту жу самую connection string, что использовалась на предыдуем шаге
<sessionState mode="Custom" customProvider="MySessionStateStore">
<providers>
<add name="MySessionStateStore" type="Microsoft.Web.Redis.RedisSessionStateProvider" host="localhost" accessKey="" ssl="true" />
</providers>
</sessionState>
Фоновые задачи (schedule tasks)
И последний шаг. nopCommerce использует фоновые задачи для различные действий, которые должны выполняться автоматически. Например, отправка почты или обновление курсов валют. Разумеется, когда у нас несколько экземпляров (instance) приложения, то такие задачи должны выполняться только на одном из них. Иначе может случиться ситуация, когда одно и тоже письмо придет покупателю дважды (от каждого из экземляра приложения).
nopCommerce
Все также откроем web.config файл. Найдем XML элемент «WebFarms” и установим его атрибут “MultipleInstancesEnabled” в “True”. Для веб фермы этого будет достаточно, но в Windows Azure там же потребуется установить атрибут «RunOnAzureWebsites» в «True»
Вот и все. Теперь nopCommerce готов в полноценной работе в Azure на нескольких экземплярах (instance). Вы больше не должны думать о том, хватит ли серверной мощности, чтобы обслуживать большое количество покупателей.
This entry passed through the Full-Text RSS service - if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.
Комментариев нет:
Отправить комментарий