Публикации по теме 'system-design-interview'


Ограничитель скорости API в Node.js
Что такое ограничитель скорости API? Механизм, используемый для управления скоростью входящих запросов или операций для предотвращения перегрузки и защиты сервера от чрезмерного трафика. Он устанавливает ограничения на количество запросов, которые могут быть сделаны в течение определенного периода времени, обычно в секунду, минуту или час. Используется в API, веб-серверах и распределенных системах для обеспечения добросовестного использования, поддержания стабильности системы и..

5 лучших книг по системному дизайну, которые должен прочитать каждый инженер-программист
Системный дизайн — важнейший аспект разработки программного обеспечения, который включает создание масштабируемых, эффективных и надежных систем. Независимо от того, являетесь ли вы опытным профессионалом или только начинаете свой путь в разработке программного обеспечения, понимание принципов системного проектирования необходимо для создания надежных приложений. Чтобы помочь вам улучшить свои знания в этой области, это список из 5 лучших книг по системному проектированию, которые..

Рекомендация по рекламе на YouTube — Интервью по дизайну машинного обучения
Один из наиболее распространенных вопросов на собеседовании по машинному обучению — разработка механизма рекомендаций. В этом посте мы рассмотрим разработку системы рекомендаций для YouTube, в которой основное внимание уделяется масштабируемому дизайну с учетом того, что время загрузки видео должно быть в пределах диапазона задержки. Сценарий, в котором пользователю нужно показывать рекламу, — это когда он нажимает на видео. В любой момент, когда нам нужно показать рекламу,..

Балансировка нагрузки при проектировании системы | Интервью СДЕ
Балансировка нагрузки — это метод, используемый в компьютерных сетях для равномерного распределения рабочих нагрузок между несколькими серверами или ресурсами, чтобы максимизировать пропускную способность, минимизировать время отклика и избежать перегрузки любого отдельного ресурса. Для этого можно использовать различные методы, в том числе циклический алгоритм, наименьшее количество подключений и хеширование IP-адресов. Типы балансировщиков нагрузки

Реализация распределенных транзакций с помощью Golang и Gin
Введение Распределенные транзакции необходимы для управления согласованностью данных между несколькими службами в архитектуре микрослужб. Реализация распределенных транзакций в Golang с веб-платформой Gin может помочь разработчикам создавать масштабируемые, удобные в сопровождении и отказоустойчивые приложения. Эта статья проведет вас через процесс реализации распределенных транзакций с использованием Golang и Gin. Мы рассмотрим следующие темы: Настройка среды Создание базового..

Интервью с дизайнером системы — Uber/Lyft
1. Введение Когда дело доходит до передвижения по городу, многие люди выбирают приложения для совместного использования, такие как Uber или Lyft. Действительно, такие приложения очень упрощают поездки на короткие расстояния, предлагая конкурентоспособные цены, достаточно короткое время ожидания и высокую доступность. С технической точки зрения такие системы очень интересны, потому что поиск ближайшего соседа затруднен. В этой статье я хочу поделиться своим дизайном крупномасштабных..

Освоение MapReduce: пошаговое руководство по Java для обработки больших данных
Введение В этом подробном руководстве мы рассмотрим MapReduce, мощную парадигму программирования для обработки больших данных. Я предоставлю пошаговое руководство по реализации игрушечной программы MapReduce на Java, включая настройку, кодирование и выполнение. Что такое уменьшение карты? MapReduce — это модель программирования и парадигма обработки, разработанная для эффективной обработки больших объемов данных. Он состоит из трех основных этапов: этапа сопоставления , (менее..