我对 Akka Streaming 和响应式流媒体非常陌生。我有一个问题:是否有可能让一个休息 API 接收到一条消息,将其丢弃在 Kafka Bus 上,然后 Kafka 流式消费者将消息聚合到最大值中。时间窗口并重新返回答案?
如何实施这样的制度?或者从哪里开始?
谢谢
我对 Akka Streaming 和响应式流媒体非常陌生。我有一个问题:是否有可能让一个休息 API 接收到一条消息,将其丢弃在 Kafka Bus 上,然后 Kafka 流式消费者将消息聚合到最大值中。时间窗口并重新返回答案?
如何实施这样的制度?或者从哪里开始?
谢谢
对于 REST API,您可以考虑使用 Kafka REST 代理:https ://github.com/confluentinc/kafka-rest 或者当然您也可以使用 akka-http 和 akka-stream-kafka 构建自己的 API。
至于窗口化,我确信它可以在 akka 流中完成,但就个人而言,我建议使用 Kafka Streams 作为第一个停靠点:http: //docs.confluent.io/current/streams/developer-guide。 html#窗口
我不确定返回答案到底是什么意思,但如果您遵循上述方法,您可以使用 REST 代理来使用窗口聚合消息,或者您可以构建一个查询 Kafka Streams 状态存储的 REST 服务通过所谓的“交互式查询”。这篇文章展示了如何使用 javax.ws.rs:https://www.confluent.io/blog/unifying-stream-processing-and-interactive-queries-in-apache-kafka/但对于反应式应用程序,您可以使用 akka-http 来做同样的事情(我正在我的一个项目中实现这个确切的东西)。