Play!

Play! Akka Flume实现的完整数据收集

徘徊边缘 提交于 2019-12-06 18:59:15
前言 现如今,大数据如火如荼。针对用户行为,用户喜好等后续大数据分析也是十分火热。这个小项目实现了后台数据收集的一系列完整流程。 项目总体流程以及用到的技术 Play ! 作为web服务器,使用RESTful 规范编写接口(客户端事先埋点,然后调用接口上传数据) Play !接口接受到的记录(json形式)经过处理后,先保存到 concurrentQueue中 Play! 启动后,start一个Akka schedulable actor.他每隔一段时间,让子actor去poll queue中的数据 调用flume的封装的rpc,将数据发送到指定的端口。 Flume source端接收数据,按照配置重定向数据,sink到console. 3. 后台实现 3.1 编写接口 采用RESTful编写接口,首先在play! 的conf中routes定义接口: #run log POST /events/runlogs controllers.RunLogs.create() 然后编写controller public static Result create(){ JsonNode js = request().body().asJson(); RunLog.create(js); //return ok anyway return ok(); } 然后是model public