2013-06-08 4 views
0

Я создаю статический веб-сайт со 10000 + страницами, создавая от json файл с middleman.Static: Создание решения для оценки документа (Redis/Rails/NodeJS?)

Каждая страница представляет собой документ (pdf) с его собственным идентификатором, резюме и ссылкой для загрузки.

Мне необходимо предоставить анонимным пользователям возможность оценивать документ и показывать глобальный рейтинг для каждого документа.

Поскольку сайт является статическим, я искал такое решение, как disqus, которое обрабатывает рейтинг страниц и возможность получать счета через api. Я не нашел.

Предположим, что мне нужно создать отдельный сервер, который обрабатывает рейтинг. Какую технологию я должен использовать? Я думаю о Redis, но большая проблема в том, что если посетитель создает скрипты, которые повышают/уменьшают количество документов в миллион раз. Как я могу убедиться, что наводнения не будет?

Я знаю о captcha, но будет ли он эффективным в этом сценарии?

Есть ли другие решения?

Так вот мои вопросы:

  1. Является ли Redis правильным выбором для этого?
  2. NodeJS/Rails? Я довольно удобен с Rails, но NodeJS быстрее?
  3. Достаточно captcha, чтобы не было (минимального) наводнения? Другое решение?

спасибо.

ответ

1
  1. Redis - это прекрасное решение для этого. вы можете использовать способности redis для хранения каждого присвоенного рейтинга и другого ключа для хранения расчетной оценки для простой выборки
  2. Если вы знакомы с Javascript, Node JS - забавный выбор. если вы более знакомы с рубином - Синатра прекрасно справится с этим.
  3. как для решения captcha - сохранение анонимных пользователей от наводнения вашей очереди рейтинга - это PITA. вы должны, вероятно, разрешить только зарегистрированным/зарегистрированным пользователям оценивать - и только после успешного запроса на загрузку. В этом случае - captcha будет просто отлично.