Встречается на собеседованиях • сегодня
Какую применил бы стратегию размещения по Shard
Для эффективного шардинга в Java-приложениях обычно применяют следующие стратегии:
- Range-based – данные распределяются по диапазонам (например, по датам или ID). Подходит для временных данных.
java
// Пример: шардинг по месяцам int shard = LocalDate.now().getMonthValue() % totalShards;
-
Hash-based – равномерное распределение через хеш-функцию (MD5, SHA-1). Минимизирует "горячие" шарды.
javaint shard = Math.abs(key.hashCode()) % totalShards; -
Directory-based – гибкое сопоставление через lookup-таблицу. Подходит для сложных правил, но требует поддержки состояния.
Выбор зависит от:
- Равномерности нагрузки (hash лучше для баланса)
- Локализации запросов (range удобен для диапазонных выборок)
- Гибкости (directory проще для миграции данных)
Для большинства случаев hash-based – оптимальный вариант.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы