Как вернуть ответ от потребителя Kafka на запрос RESTFUL?

#apache-kafka #kafka-rest

#apache-kafka #kafka-rest

Вопрос:

Я планирую разработать приложение, в котором запрос может быть выполнен с помощью клиента REST (SpringBoot REST), например, для получения списка различных доступных сервисов на основе географического кода.

Я публикую этот запрос как сообщение для Kafka. Существует потребитель (код Python), который прослушивает это сообщение, и по прибытии сообщения он просматривает различные хранилища (NoSQL / HDFS) и получает список служб.

У меня эта концепция работает до того момента, когда я получил запрос, использовал его и выдал результаты.

Я не уверен, как RestController / RestService может узнать, когда агрегация завершена и результаты готовы, чтобы он мог отправить ответ с общим размером обратно в браузер?

Любые идеи, предложения по этому поводу, пожалуйста?

Комментарии:

1. Привет, является ли использование RabbitMQ здесь опцией? У меня похожий сценарий, и у RabbitMQ есть механизм для его реализации. Если это вариант, я могу написать полный ответ, в котором я опишу, что делать.

2. Спасибо Клифф. К сожалению, нет, поскольку я привязан к Kafka. Однако, если бы вы могли упомянуть, как вы с этим справились, я могу проверить и посмотреть, смогу ли я воспроизвести что-то подобное в Kafka.

3. Привет, конечно. Идея использует возможности маршрутизации RabbitMQ. Маршрутизация — это не то, что делает Kafka. Если вам нужно сохранить Kafka, я бы посоветовал сначала изучить библиотеки Kafka Spring, которые реализуют запрос-ответ. Я не специалист по Spring, но эта тема стала достаточно зрелой, чтобы быть полностью обработанной библиотекой для стороны Java, но не уверена в стороне потребителя (python).