Play Framework 与 Spark 集成,用于 Kafka 的数据分析



我有前端与Play框架上编写的后端进行通信,我的目标是对本网站上的用户活动进行分析,例如特定时间内的用户活动统计,按用户性别划分的操作,不同国家的活动统计等。我想用Play framework在后端收集这些数据并将其发送到Kafka,其中Spark streaming will ingest这些数据进行聚合并将分析写入数据库。

我对下一刻有疑问:

  • Play 框架是否可以是将数据发送到Kafka的合适位置(例如,通过带有Akka streams等的单独控制器),或者我必须为此目的使用其他东西而不是Play
  • 触发用户活动producing to Kafka的最佳事件是什么 - 例如,用户执行了某些操作并立即将数据发送到 Kafka,或者将此数据收集到内存中并在阈值受限时发送。

p.s. 每小时将触发一次带有Spark streaming的事件,streaming将使用来自Kafka的数据并将其写入数据库。我怀疑最好的解决方案是简单地在数据到达时消耗数据。如果我的这种方法有误,请纠正我。

Spark 流事件将每小时触发一次,流将使用来自 Kafka 的数据并将其写入数据库。我怀疑最好的解决方案是简单地在数据到达时消耗数据。如果我的这种方法有误,请纠正我。

[A] 这取决于您的业务需求。如果您想要近乎实时的洞察力,那么您需要在数据到达时使用数据,而不是在一小时的批处理中使用

数据。 Play框架是否可以是将数据发送到 Kafka 的合适位置(例如,通过带有 Akka 流的单独控制器等),或者我必须为此目的使用其他东西来代替 Play?

[A] 我强烈建议使用 Kafka Streams 代替 Spark,因为你使用的是 Java。我对游戏的了解不够,无法对此发表评论

用户活动上触发向 Kafka 生成的最佳事件是什么 - 例如,用户执行了特定操作并立即将数据发送到 Kafka 或将此数据收集到内存中并在阈值有限时发送。

[A] 为了避免影响应用程序本身,向 Kafka 发送消息应该以异步方式完成

最新更新