Как реализовать Интернет-магазин с архитектурой Shared Nothing - PullRequest
1 голос
/ 25 января 2011

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

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

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

Ответы [ 3 ]

2 голосов
/ 26 января 2011

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

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

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

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

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

1 голос
/ 14 января 2012

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

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

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

0 голосов
/ 12 июня 2014

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

...