Готовое решение - использовать сторонний сервис для рекламы
ключевые моменты
5000/сек
довольно слабый поток. с учетом того, что не надо делать аукцион обьявлений
статистику показов каждого баннера почасово
еще одно упрощение
Общая схема:
nginx в виде отдающего статические обьявы
nginx пишет статистику в логи
логи собираются в БД каждые пол часа или пишутся напрямую по сети в сервер с логами
js может делать просто get запрос, который упадет в лог
когда одного nginx для раздачи не хватает - добавляем сервера для отдачи статики
если необходимо, добавляем перед ними nginx как лоадбаллансер
Основной вопрос в такого рода системах - аукцион обьявлений - что показать данному пользователю на данном сайте. И тут все веселье начинается