Расчет количества просмотров Youtube
Недавно я столкнулся с этим вопросом о системном дизайне высокого уровня. Есть какие-нибудь указания о том, как разработать такую услугу?
Я думал в этом направлении - каждое представление пользователя можно рассматривать как событие на веб-сервере, обслуживающем запрос пользователя, например <U1, V1>, <U2, V2>, <U1, V2>... Тогда я подумал, что мы можем накапливать данные просмотра на веб-сервере за последние, скажем, 5 минут и отправьте их в общий VideoCountService. Теперь серверам по всему миру нужно как-то обновить счетчик просмотров. Как избежать: 1. слишком большого количества одновременных операций записи 2. сценариев, в которых большое количество трендовых данных о количестве просмотров видео находится на одном сервере, а просмотры часто обновляются?
Как этот дизайн изменится, если видео транслируется в прямом эфире?