反应流 Kafka Stream Fan-out 到 http actors

Reactive stream Kafka Stream Fan-out to http actors

我对 Akka Streaming 和反应式流式处理还很陌生。我有一个问题:是否有可能让休息 API 收到一条消息并将其丢弃在 Kafka 总线上,然后 Kafka 流式消费者将消息聚合到最大。时间 window 并返回答案?

如何实现这样的系统?或者从哪里开始?

谢谢

休息API你可以考虑Kafka REST Proxy:https://github.com/confluentinc/kafka-rest 当然,您也可以使用 akka-http 和 akka-stream-kafka 构建您自己的。

至于窗口化,我确信它可以在 akka 流中完成,但就我个人而言,我建议使用 Kafka Streams 作为第一个停靠点: http://docs.confluent.io/current/streams/developer-guide.html#windowing

我不确定返回答案到底是什么意思,但如果您按照上述方法操作,则可以使用 REST 代理来使用窗口聚合消息,或者您可以构建查询的 REST 服务Kafka Streams 状态存储通过所谓的 "interactive queries"。这个 post 展示了如何使用 javax.ws.rs: https://www.confluent.io/blog/unifying-stream-processing-and-interactive-queries-in-apache-kafka/ 来完成它,但是对于一个反应式应用程序,你可以使用 akka-http 来做同样的事情(我正在我的一个上实现这个确切的事情项目)。