Самое близкое, что приходит мне в голову, похоже, развертывает задание Flink с TcpSource
, доступным в Apache Bahir. У вас может быть конечная точка HTTP, которая получит некоторые данные и вызовет Flink по указанному адресу, а затем обработает его и создаст ответ. Проблема в том, что в Bahir доступен только TcpSource
, а это значит, что вам нужно будет создать большую часть кода (весь Sink
) самостоятельно.
Могут быть и другие способы сделать это (например, пытаться назначить идентификатор каждому сообщению, а затем ждать сообщения с этим идентификатором, которое поступит в Kafka и отправить его в качестве ответа, но это кажется проблемным и подверженным ошибкам)
Другой способ: чтобы сделать ответ асинхронным (я знаю, что в вопросе конкретно упоминается ответ syn c, но упоминается это только для полноты)
Однако я хотел бы сказать, что мне это кажется неправильным использованием Flink. Flink изначально был разработан для обеспечения вычислений в реальном времени на нескольких узлах, что, похоже, здесь не так. Я бы посоветовал изучить различные потоковые библиотеки, которые намного легче, проще в компоновке и могут предлагать нужную вам функциональность прямо из коробки. Вы можете, например, взглянуть на Akka Streams.