2011-01-25 4 views
1

Некоторые люди утверждают, что возможно и даже необходимо реализовать каждый webapp с архитектурой Shared Nothing. Как можно реализовать интернет-магазин с корзиной покупок, используя этот архитектурный стиль?Как реализовать веб-магазин с архитектурой Shared Nothing

Обычно интернет-магазин может быть реализован с использованием сеансов. В этом случае мне придется реализовать его по-другому, чтобы на сервере не хранилась информация о тележке. Но тогда необходимо будет включить содержимое корзины в скрытые поля, чтобы они передавались на сервер по каждому отдельному запросу. Это решение для интернет-магазина, использующего архитектуру Shared Nothing?

Есть ли у вас какие-либо идеи о том, как достичь общей архитектуры ничего для webapps?

+0

«shared nothing» не означает «нет сеансов» – skaffman

+1

означает ли это, что сеанс, хранящийся на db, не будет противоречить принципу «общего ничего»? – paweloque

ответ

2

Хотя я никогда не явно вышел строить Shared Nothing (SN) системы, основанной, я предположил бы, что любой, кто говорит, что это необходимо архитектор WebApps с использованием «чистого» SN являются:

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

Если у вас есть кластер веб-серверов и трафик с балансировкой нагрузки таким образом, что вы не можете гарантировать, что один и тот же веб-сервер будет обрабатывать каждый вызов для данного сеанса - тогда да, применяются принципы SN: вы не можете позволить себе сблизить сервер.

Но растянуть это для «каждого» веб-приложения просто абсурдно.

SN, как и все другие архитектуры, подобны инструментам - они являются решением проблем; проблема определяет решение, а не наоборот.

1

Что касается моего опыта работы с веб-магазинами, архитектура shared-nothing лучше, чем на основе сеанса. Я так много раз был крайне раздражен тем, что моя торговая карта исчезла из-за окончания сессии! AJAX или нет, webapp должен, по крайней мере, хранить выбор пользователя в файлах cookie или, если он доступен, хранилище HTML5 и другие замечательные механизмы.

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

Так что мой ответ - это зависит. Вы должны написать требования и выбрать то, что лучше, не задумываясь, каково имя шаблона или архитектуры, которую вы применяете :)

0

Вы можете использовать распределенный кеш (например, memcached) для хранения данных сеанса на стороне сервера.

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

  • Нет связанных вопросов^_^