Я разработал архитектуру для веб-приложения, работающего на одном компьютере - PullRequest
0 голосов
/ 27 января 2010

Я планирую создать веб-приложение, работающее на одном компьютере, и максимально эффективно использовать аппаратные ресурсы. Логика приложения не будет сложной. Вот мой дизайн:

ОС: Linux (CentOS 5)

Веб-сервер: Nginx

Веб-скрипт: PHP

База данных: Токийский кабинет + Токийский тиран

Индекс: сфинкс

Я не собираюсь использовать СУБД, такие как MySQL, потому что я думаю, что хранилище ключей (Tokyo cabinet) с индексатором (Sphinx) удовлетворит все потребности для развертывания обычного веб-приложения, также с лучшей производительностью, чем MySQL .

Мой вопрос: является ли этот дизайн эффективной архитектурой для одного компьютера? Или как его улучшить?

(я знаю, что этот вопрос может быть субъективным, но мне действительно нужна ваша помощь)

Большое спасибо ~

EDIT:

Компьютер, на котором я собираюсь разместить свое приложение, - это обычный ПК, такой как память объемом 8–16 ГБ, жесткий диск объемом 500–1 ТБ и т. Д. Я думаю, что не нужно учитывать «масштабируемость». Каждый первый шаг веб-приложения запускается с одного компьютера, и он всегда будет началом.

Ответы [ 2 ]

1 голос
/ 27 января 2010

хорошо, один из способов увидеть это загрузить его: http://grinder.sourceforge.net/

Я никогда не работал с токийским кабинетом, но если это достаточно функционально, то, вероятно, он будет значительно быстрее, чем БД.

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

1 голос
/ 27 января 2010

Выбор DB

Я думаю, что выбор типа базы данных, которую вы делаете, зависит меньше от того, на скольких компьютерах установлена ​​система. Я думаю, что это должно зависеть от качества данных, которые вы хотите / должны сохранить.

Например, если вам нужно сохранить адреса доставки для клиента, вы должны будете учесть это в своей структуре хранения. Поначалу пара «имя-значение» может показаться достаточно простой структурой, но если вы предвидите любое из следующего, вам следует рассмотреть возможность перехода на стандартную систему баз данных

  • отслеживание изменений
  • отчетная деятельность / отчеты
  • одновременных пользователей

Производительность

Это зависит от вашего кода, изображений, содержимого, кэширования и т. Д. Так же, как и от вашей базы данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...