Встречается на 2% собеседований по Java

Использовал ли Kafka для обращения к сервису

Kafka — это распределённая система обмена сообщениями, а не RPC-фреймворк. Хотя технически можно использовать Kafka для межсервисного взаимодействия (через request-reply паттерн), это не её основное назначение.

Проблемы при использовании Kafka как RPC:

  • Высокая латентность (не подходит для синхронных вызовов)
  • Усложнение логики (нужно реализовывать корреляцию запросов/ответов)
  • Отсутствие встроенных механизмов retry/timeout

Лучшие альтернативы:

  • REST/gRPC для синхронных вызовов
  • RabbitMQ для асинхронных сценариев

Пример request-reply на Kafka (не рекомендуется):

java
// Producer  
producer.send(new ProducerRecord<>("requests", "key", "requestData"));  

// Consumer  
ConsumerRecords<String, String> records = consumer.poll(Duration.ofMillis(100));  
for (ConsumerRecord<String, String> record : records) {  
    String reply = processRequest(record.value());  
    producer.send(new ProducerRecord<>("replies_" + record.key(), reply));  
}  

Для сервисного взаимодействия лучше использовать специализированные инструменты. Kafka идеальна для событийных pipelines и потоковой обработки.

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

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

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

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