Встречается на собеседованиях • сегодня

Проектировал ли распределенную систему

Да, проектировал. Основные аспекты:

  1. Масштабируемость – горизонтальное масштабирование через шардинг/репликацию (например, PostgreSQL + Citus).
  2. Отказоустойчивость – реплики, кворумы (ZooKeeper для координации).
  3. Согласованность – CAP-теорема, выбор между eventual (Cassandra) и strong consistency (Kafka с acks=all).
  4. Коммуникация – gRPC для RPC, REST для клиентов, RabbitMQ/Kafka для асинхронности.

Пример:

java
// Сервис на Spring Cloud с Circuit Breaker
@RestController
@CircuitBreaker(name = "orderService", fallbackMethod = "fallback")
public class OrderController {
    @GetMapping("/order/{id}")
    public Order getOrder(@PathVariable String id) {
        return orderService.findById(id); // Вызов другого микросервиса
    }

    public Order fallback(String id, Exception e) {
        return cache.get(id); // Fallback из кеша при недоступности сервиса
    }
}

Использовал Prometheus для мониторинга, Istio для service mesh.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы