航旅纵横:演进之路与实时计算实践

需积分: 9 23 下载量 27 浏览量 更新于2024-07-22 收藏 1.04MB PDF 举报
"MDCC 2014航旅纵横的演进之路" 本文档记录了中国民航信息网络股份有限公司在2014年MDCC中国移动开发者大会上分享的关于"航旅纵横"应用的演进历程和技术架构。唐红武的演讲涵盖了应用的基本介绍、系统架构、基于队列(Q)的业务处理、事件机制以及实时计算等多个关键点。 **航旅纵横介绍** 航旅纵横是一款备受认可的移动应用,曾被AppStore评为2013年度精选,并在全球移动互联网大会(GMIC)上被评为TOP50应用之一,同时入选互联网数据中心(DCCI)中国移动应用潜力榜。该应用旨在提供全面的航空旅行信息服务,包括但不限于航班查询、行程管理、实时航班动态等。 **系统的整体架构** 航旅纵横的系统架构设计是灵活且可扩展的,主要由以下几个部分组成: 1. 接入层:处理各种接口协议,实现A/B测试、用户授权、消息通知和会话管理。 2. 服务层:基于Spring框架,使用Jboss或Tongweb服务器进行业务逻辑处理,包含分布式RPC调用和规则引擎。 3. 缓存层:分为一次缓存(如Memcache)和二次缓存,用于提高数据访问效率,同时实现分布式数据访问和读写分离。 4. 存储层:包括MySQL、Redis、GFS等多种存储介质,采用分布式存储,支持热点数据RAM化和增量备份,确保数据一致性。 5. 辅助层:包括调度、分布式锁、日志监控、故障隔离和降级策略,保证系统的稳定性和高可用性。 **基于Q的业务处理** 航旅纵横采用ActiveMQ作为消息队列(Queue),将航班数据和其他数据来源放入队列,通过Broker(MasterNode)进行管理。这种设计实现了前轻后重的服务架构,通过队列进行业务处理的异步解耦,减少了服务之间的直接交互,降低了延迟并提高了系统的吞吐量。服务命名和发现借助于Zookeeper进行,支持服务注册和服务治理,确保服务无状态和多版本兼容。 **事件机制** 演讲中提到的事件机制可能是指通过Storm进行流式数据计算,包括Spout(数据源)、Bolt(数据处理组件)和Supervisor(任务调度)。这种机制允许对实时数据流进行快速处理,如判重、聚合,以及根据业务规则产生结果。 **实时计算** 航旅纵横利用实时计算技术处理大规模的流式数据,这对于提供实时航班动态等服务至关重要。通过集成Hadoop等大数据处理工具,可以进行离线数据计算,处理非结构化数据,同时结合流式计算平台(如Storm),实现对实时数据的高效处理。 航旅纵横在不断演进的过程中,构建了一个以用户为中心,具备高度灵活性、可扩展性和高可用性的系统架构,通过队列和服务治理策略,优化了业务处理效率,确保了服务的安全性和审计能力。这一演进过程对于理解大型互联网应用的设计与优化提供了宝贵的实践案例。