你好,游客 登录 注册 发布搜索
背景:
阅读新闻

每天近百亿条用户数据,携程大数据高并发应用架构涅槃

[日期:2016-10-08] 来源:InfoQ  作者: [字体: ]

  互联网二次革命的移动互联网时代,如何吸引用户、留住用户并深入挖掘用户价值,在激烈的竞争中脱颖而出,是各大电商的重要课题。通过各类大数据对用户进行研究,以数据驱动产品是解决这个课题的主要手段,携程的大数据团队也由此应运而生;经过几年的努力,大数据的相关技术为业务带来了惊人的提升与帮助。

  以基础大数据的用户意图服务为例,通过将广告和栏位的“千人一面”变为“千人千面”,在提升用户便捷性,可用性,降低费力度的同时,其转化率也得到了数倍的提升,体现了大数据服务的真正价值。

  在新形势下,传统应用架构不得不变为大数据及新的高并发架构,来应对业务需求激增及高速迭代的需要。

  一,业务高速发展带来的应用架构挑战

  公司业务高速发展带来哪些主要的变化,以及给我们的系统带来了哪些挑战?

  业务需求的急速增长 ,访问请求的并发量激增,2016年1月份以来,业务部门的服务日均请求量 激增了5.5倍 。

  业务逻辑日益复杂化 ,基础业务研发部需要支撑起OTA数十个业务线,业务逻辑日趋复杂和繁多。

  业务数据源多样化,异构化 ,接入的业务线、合作公司的数据源越来越多;接入的数据结构由以前的数据库结构化数据整合转为Hive表、评论文本数据、日志数据、天气数据、网页数据等多元化异构数据整合。

  业务的高速发展和迭代 ,部门一直以追求以最少的开发人力,以架构和系统的技术优化,支撑起携程各业务线高速发展和迭代的需要。

  在这种新形势下,传统应用架构不得不变,做为工程师也必然要自我涅槃,改为大数据及新的高并发架构,来应对业务需求激增及高速迭代的需要。计算分层分解、去SQL、去数据库化、模块化拆解的相关技改工作已经刻不容缓。

  以用户意图(AI 点金杖)的个性化服务为例, 面对BU业务线的全面支持的迫切需要,其应用架构必须解决如下 技术难点 :

  高访问并发 :每天近亿次的访问请求;

  数据量大 :每天TB级的增量数据,近百亿条的用户数据,上百万的产品数据;

  业务逻辑复杂 :复杂个性化算法和LBS算法;例如:满足一个复杂用户请求需要大量计算和30次左右的SQL数据查询,服务延时越来越长;

  高速迭代上线 :面对OTA多业务线的个性化、Cross-saling、Up-saling、需满足提升转化率的迫切需求,迭代栏位或场景要快速,同时减少研发成本。

  二,应对挑战的架构涅磐

  面对这些挑战,我们的应用系统架构应该如何涅磐?主要分如下 三大方面 系统详解:

  存储的涅磐,这一点对于整个系统的吞吐量和并发量的提升起到最关键的作用,需要结合数据存储模型和具体应用的场景。

  计算的涅磐,可以从横向和纵向考虑:横向主要是增加并发度,首先想到的是分布式。纵向拆分就是要求我们找到计算的结合点从而进行分层,针对不同的层次选择不同的计算地点。然后再将各层次计算完后的结果相结合,尽可能最大化系统整体的处理能力。

  业务层架构的涅磐,要求系统的良好的模块化设计,清楚的定义模块的边界,模块自升级和可配置化。

  三,应用系统的整体架构

  认识到需要应对的挑战,我们应该如何设计我们的系统呢,下面将全面的介绍下我们的应用系统整体架构。

  下图就是我们应用系统整体架构以及系统层次的模块构成。

  数据源部分, Hermes是携程框架部门提供的消息队列,基于Kafka和Mysql做为底层实现的封装,