Я нахожусь в центре проекта, где мы создали бэкэнд для обработки рекламных кампаний в Grails, и я пытаюсь найти лучший способ создания части рекламного сервера.То есть та часть, которая будет показывать фактическую рекламу конечным пользователям (браузерам).
В последних трех моих проектах я использовал Grails, которые мне очень понравились, потому что они быстро развиваются и хороши.поддержка со стороны сообщества Java через Spring и Hibernate.Однако у Grails все еще есть некоторые проблемы с производительностью, и я не уверен, что это правильный выбор для этой задачи.Я искал другие альтернативы, но не могу решить, в какую сторону идти.Сервер должен быть способен обрабатывать около пары тысяч запросов в секунду, а также должен быть надежным.Структура БД выглядит следующим образом (упрощенно):
Ad ==> site, position, percent of view (percent of time the ad is shown)
Таким образом, в основном, рекламному серверу необходимо получить необходимые строки из БД для конкретного сайта и позиции и выбрать, какую рекламу показывать (в зависимости от процента).
Ниже представлены различные варианты выбора (все они должны иметь несколько экземпляров и использовать балансировщик нагрузки).
- Grails вместе с Redis и MongoDB - я не нашел никаких отчетов о производительности с этим трио.В моих предыдущих проектах мы обнаружили, что у Grails много проблем с производительностью, многие из которых мы решали по-разному, но для рекламного сервера я не уверен, что это решится.
- Node.js вместе с хранилищем значений ключей - Node.js предположительно очень быстрый, но было бы немного рискованно реализовать его на данном этапе, поскольку он еще не стабилизирован.
- Ruby on Rails вместе с хранилищем ключ-значение - еще не было разработок Ruby on Rails, но, насколько я могу судить по поиску, в Ruby on Rails есть многолучшая производительность, чем у Grails.
- PHP с хранилищем значений ключей - также не было никакого программирования на PHP, но есть много больших сайтов, использующих PHP, которые имеют хорошую производительность, поэтомуэто следует считать хорошей альтернативой.
Любые предложения или рекомендации горячо приветствуются.