Общая схема работы сервиса - NSuprotivniy/CounterDB GitHub Wiki

LIKES. High-load applications.

Мы рассматриваем архитектуру счётчиков на высоконагруженных интернет приложениях.

Счётчики - это лайки, просмотры, посещения, репосты, количество новых сообщений, оповещений и т.д.

Задача

Необходимо считывать количество лайков с данной страницы (поста) и предоставлять информацию пользователю в «реальном времени», т.е. время отклика сервера должно быть минимально.

Архитектура

Различают монолитную архитектуру и архитектуру микросервисов. В первом случае выше надежность, согласованность кода, данных, во втором случае выше гибкость, доступность. Многие высоконагруженные приложения – социальные сети, используют микросервисную архитектуру.

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

Данные счётчиков во многих социальных сетях актуальны постоянно. Поэтому прямое обращение к базе данных за каждым небольшим объёмом информации может стать узким горлом в работе системы. Memcache - эффиктивная технология для работы с key-value базами данных. Эта система позволит обращаться к актуальным данным значительно быстрее.

Схема работы приложения