"去哪儿网的实时计算负责人徐骁在Flink China Meetup上分享了Flink在去哪儿网的实践和应用,包括Flink选择的原因、与其他实时计算框架的对比、在去哪儿网的应用情况以及未来规划。"
正文:
去哪儿网在2016年引入Flink作为实时计算的核心框架,主要由徐骁负责实时计算平台的建设和维护。选择Flink的原因在于其强大的流处理能力和丰富的特性,如数据一致性保障、低延迟以及灵活的窗口操作等。Flink相较于其他实时计算框架(如Storm、Spark Streaming)具有更高的吞吐量和更低的延迟,尤其在处理连续数据流和状态管理方面表现出色。
在去哪儿网的实践中,Flink运行在Mesos或Kubernetes之上,实现了Docker化的作业隔离,确保了高可用性和可扩展性。通过Mesos和Kubernetes的集群管理,Flink能够动态调整资源,适应不同的计算需求。此外,Flink的host模式允许与宿主机共享网络接口,简化网络配置。
监控是实时计算平台不可或缺的部分。去哪儿网利用Flink的Graphite指标输出功能进行性能监控,但发现早期版本存在reporter断开后无法自动重连的问题,对此进行了优化。同时,他们还过滤掉了包含无效字符的指标,提高了监控数据的质量。
在处理负载问题时,去哪儿网遇到了Kafka作为source时的负载均衡挑战。为解决这个问题,他们将owner信息写入Zookeeper,便于快速定位问题容器并进行操作,减少Kafka consumer的滞后问题。
日志管理方面,每个集群的日志分散存储在JobManager和TaskManager内部,最后汇总到Mesos sandbox,用户可以通过平台提供的网页界面查看。对于数据库权限管理,去哪儿网通过获取Marathon API接口,动态地添加或删除权限,以适应多集群的管理需求。
在未来规划中,去哪儿网可能会进一步优化Flink在生产环境中的部署和运维,探索更高效的资源调度策略,以及利用Flink的事件时间处理和状态管理能力,提升数据分析的准确性和时效性。此外,随着Kubernetes的普及,可能会加强在Kubernetes上的集成,以利用其更强大的服务发现和自动伸缩能力。
Flink在去哪儿网的实践中发挥了关键作用,不仅提升了实时计算的效率,还优化了资源管理和监控体系,为大数据分析和业务决策提供了强有力的支持。