Подборка объединяет вопросы, отмеченные на этапах интервью в Ozon. Здесь можно понять структуру технической проверки и заранее повторить связанные темы. В подборке чаще встречаются темы: database, backend, sql.
Да, для отслеживания и анализа работы микросервисов часто используют инструменты трассировки и мониторинга, такие как Jaeger, Zipkin, Prometheus, Grafana, Elastic Stack (ELK), OpenTelemetry.
Пустой интерфейс в Go — это интерфейс, который не содержит ни одного метода, записывается как interface{}. Он может хранить значение любого типа, поскольку все типы реализуют пустой интерфейс по умолчанию.
При миграции данных между хранилищами рассинхронизация возникает из-за задержек, ошибок или несовпадения форматов. Чтобы с этим справиться, я использовал следующие подходы:
Mutex (взаимное исключение) — это механизм синхронизации, предназначенный для управления доступом к ресурсам в пределах одного процесса или, максимум, одного узла.
В проекте Logitrade я занимался разработкой высоконагруженного backend на Go, отвечал за реализацию микросервисов для обработки логистических данных и интеграцию с внешними API.
Одна из самых сложных задач, с которой я сталкивался, была связана с оптимизацией высоконагруженного сервиса на Go, который обрабатывал миллионы запросов в сутки.