АРХИТЕКТУРА СЕРВИСА СОКРАЩЕНИЯ ССЫЛОК С АСИНХРОННЫМ СБОРОМ АНАЛИТИКИ
URL SHORTENING SERVICE ARCHITECTURE WITH ASYNCHRONOUS ANALYTICS COLLECTION
Авторы: Емелин Сергей Васильевич
Степень (должность): Студент
Место учебы/работы: Московский государственный технологический университет «СТАНКИН»
Аннотация на русском языке: В статье рассматривается архитектура веб-сервиса сокращения ссылок, разработанного на языке программирования Go. Актуальность темы обусловлена растущим объёмом использования компактных ссылок в социальных сетях, маркетинговых рассылках и системах с ограничением по длине текста, а также необходимостью одновременного сбора аналитики переходов без снижения скорости отклика сервиса. Целью работы являлось построение архитектуры, в которой операция перенаправления пользователя остаётся быстрой независимо от объёма собираемых аналитических данных. Материалом исследования выступила разработанная автором программная система, использующая базу данных PostgreSQL для постоянного хранения записей о ссылках, кэш Redis для ускорения повторных переходов и брокер сообщений Apache Kafka для передачи событий кликов. Рассмотрен алгоритм генерации короткого идентификатора ссылки на основе криптографически стойкого генератора случайных чисел и его защита от коллизий за счёт сочетания повторных попыток на уровне сервисного слоя и уникального ограничения на уровне хранилища данных. Подробно описана стратегия кэширования по схеме cache-aside и подход к асинхронной публикации событий кликов, не влияющий на время отклика основного эндпоинта. Приведено сравнение сценариев обработки запроса при попадании и промахе кэша, представленное в табличной форме. Показано, что вынесение второстепенной нагрузки за пределы критического пути запроса позволяет обеспечить низкую задержку основной операции сервиса при сохранении полноты собираемых аналитических данных.

The summary in English:
Тhe article examines the architecture of a URL shortening web service developed in the Go programming language. The relevance of the topic is driven by the growing use of compact links in social networks, marketing mailings and systems with limited text length, as well as by the need to collect click analytics without reducing the service response speed. The purpose of the work was to build an architecture in which the user-redirect operation remains fast regardless of the volume of analytical data collected. The research material was a software system developed by the author, using the PostgreSQL database for persistent storage of link records, the Redis cache for accelerating repeated visits, and the Apache Kafka message broker for transmitting click events. An algorithm for generating a short link identifier based on a cryptographically secure random number generator is examined, together with its protection against collisions through a combination of retry logic at the service layer and a unique constraint at the storage layer. The cache-aside caching strategy and the approach to asynchronous publication of click events, which does not affect the response time of the main endpoint, are described in detail. A comparison of request-processing scenarios for a cache hit and a cache miss is presented in tabular form. It is shown that offloading secondary workload outside the critical request path makes it possible to ensure low latency of the service's main operation while preserving the completeness of the analytical data collected.

Ключевые слова: сокращение URL; кэширование; cache-aside; асинхронная обработка событий; Apache Kafka; Redis; PostgreSQL.
Key words: URL shortening; caching; cache-aside; asynchronous event processing; Apache Kafka; Redis; PostgreSQL.

Следующей может быть Ваша статья!

Контактная информация
E-mail: info@synergy-journal.ru
Группа Вконтакте: vk.com/synergy_journal