在线旅游数据分析系统解析

来源:www.xysxzl.com时间:2021-03-05 10:17

旅游蜘蛛网

3月11日云栖社区在线实时分享顺利结束,本次由驴妈妈技术副总邵汉成分享了驴妈妈旅游网基于混合云的OTA行业数据分析、精准运营和大数据用户推荐,本次视频直播的整理文章、视频整理完毕,如下面内容。

系统发展历程

在线旅游数据分析系统解析

提高系统容量,通过服务治理,通过服务治理,可以提高系统的可用性,面对的系统像迷宫一样,系统与系统调用、流转就像蜘蛛网一样错综复杂,整个系统的规模也随之增大,驴妈妈旅游网利用开源框架对其服务进行治理,服务也越来越多,随着架构的复杂度增加,如果任由其发展,从外部来看,当具体查询某一问题时,可能会遇到不少困难,对不同的业务、请求分别处理,分别进行优化,实现弹性扩展。

图二:服务治理控制台。

包括不同机器上提供的服务类型、服务状态、流量的统计等等,服务治理控制台可以快速的将此恶意流量隔离到其他虚拟机上,上图显示的是服务治理控制台的具体运行效果,如果正在运行正常的系统遭受恶意WEB流量恶意攻击。

具体的服务拆分包括两个原则:垂直拆分,例如订单管理放在订单服务中,水平拆分,按照业务线拆分,垂直拆分与水平拆分相结合,产品管理放在产品服务中等,在水平层面上水平切割,得到一系列的服务,整个系统中,各个业务流程之间可以通过消息机制等异步机制进行异步化,实现架构的更好部署与扩容。

数据库架构

图三:驴妈妈旅游网数据库架构。

整体系统按照业务线进行数据分库,不影响系统其他库的正常运行,早期系统仅有一个数据库,然而单独的一个业务库,将主库的数据同步到多个备库上,数据库整体使用多种数据库类型,读取数据等查询操作可通过不同备库进行,实现读写分离,需要进一步进行读写分离,例如用户库、产品库、订单库等库,当部分库出现问题时,还有一些NoSQL数据库,系统更加平稳,增加系统的稳定性,上图为驴妈妈旅游网目前的数据库架构图,数据分库一方面可以减小单点的压力,但随着业务、并发性的增长,保持整体之间的异构复制,可能不满足需求,另一方面,在高压的情况下,目前主要使用MySQL。

在线旅游数据分析系统。

图四:数据分析系统项目目标。

完善推荐模型,一个完整的数据分析系统需要能了解同行业产品数据及价格变动情况,并且该系统同样也应该能够丰富用户行为数据,从而完善精准运营,提高推荐准确度,使得企业能够实施准实时应对策略。

同时在线旅游产品数据分析系统和其他传统电商相比有着产品标准化低的特点,在技术实现时应当区别对待。

图五:一期方案和问题。

虽然在一定程度上满足业务需求,如果与业务系统同机房,会影响正常业务,三是大量数据的分析会对网络的流量造成影响,无法满足快速变化的业务量,但也暴露了相当多的问题:一是数据量的不断增加,驴妈妈在线旅游产品数据分析系统一期技术实现,服务器需求过快增长,完全采用的自建机房搭建服务,从采购、上架、加电、添加虚拟机再到应用耗时几周,传统的做法,二是出口IP有限,容易造成访问限制。

图六:混合云方案

同时阿里云集群上可以进行数据分析,中间是阿里云集群,上图左半部分是OTA同行数据,为了解决上述存在的问题,规模约有1000+虚拟机,可通过Storm或Spark实时分析深加工,通过MapReduce每天做一次或多次做离线分析,包括离线分析和实时分析,包括搜索模块、价格模块、推荐模块、产品模块,其中离线分析是将数据导入Hadoop集群的HDFS中,对于特定、高优先级的数据,分析后数据以表格格式存储,此后数据进一步推送到驴妈妈的IDC应用模块中,集群上部署着数据采集集群,驴妈妈旅游网采用混合云方案来构建其数据分析系统,如进行增加采集任务等,用于采集行业数据,然后再对数据采集系统进行反馈调整。

目前数据分析平台每天大约处理几百万SKU数据,同时Storm实时分析可以做到分钟级别。

图七:云服务器上的应用集群。

在阿里云的采集集群和Hadoop上采用云服务器技术,一方面及时满足100w+SKU采用性能需求,另一方面也可以及时满足不断增长的存储空间要求。

以及海量数据查询,不但实现了采集数据快速存储,加工后的数据存储在MySQL,同时也能够承受大数据/高峰值冲击,其中一部分数据存储在Hadoop集群的HDFS中,在混合云方案中。

新方案的成效

提高运营对价格的敏感度,推荐正在热销、性价比高、用户需要的产品,自动计算推荐价格,使运营价格调整更加容易、智能,从而提高了精准的运营能力,并且结合外部用户行为数据,混合云方案极大提高了整体弹性扩展需求,该系统通过价格趋势,满足几百万SKU的数据获取,进一步完善推荐模型,并提升了产品竞争力,又同时满足了快速发展的业务需求。

经验分享

图八:系统监控

导致请求达不到系统,有些监控项可以简单地加入到Zabbix中,有些需要研发人员写脚本收集数据并发送到Zabbix系统中,Heap Memory窗口显示的是系统波动过程,需要监控的数据项比较多,也可以从系统监控方面入手,当波动较大时一般是有大量的数据请求,Database CPU%同样可以显示整个系统流量的状况,采用监控系统能及时发现问题所在,从而导致系统崩溃,如果解决了系统中存在的大量隐患,Old Generation窗口显示内存不可回收的现象,该页PPT通过几个简单的例子解释监控的效果,表现为系统越来越不稳定,会导致外部请求无响应,如资源泄露、线程的暴涨都会导致虚拟内存的过度使用,在提升系统稳定性,解决系统疑难杂症方面,可以进一步提升系统的弹性伸缩和性能,Virtual Memory显示的是堆外内存,该类问题定位更不容易,因此研发人员也应当对其加以重视,当使用率过低时,流量是被外围拦截,上面仅仅为几个例子,如文件泄露积累到一定程度,除了调整整体架构,如流量的突增等等,如图所示,相对而言,TCP connection/Open files 和HTTP thread 可用来查看程序是否出现问题,一般情况下。

及早排除系统隐患,提高系统的稳定性与性能,对于研发人员,特别是架构师、开发组长、总监,可以每日都关注这些监控的结果。

QA环节:

1、OTA电商与传统电商的异同点

答:相同点:两者都需要面对大量的数据、大量的访问流量、多用户,系统都不停地增长、不停扩容。

对接产品和上架产品的效率非常重要,需要与供应商对接这些产品,三是旅游系统要同景区、供应商对接,因此旅游系统需要保持较强的稳定性,或需要业务上架这些产品,即使在高流量影响了对接系统的稳定性,用户从线上购买到完成入园,二是旅游产品是非标产品,四是用户体验不同,不同点:一是旅游产品时间周期长、波动较大,OTA产品的及时性更高,涉及到大量的价格计算,对这些价格计算的优化很重要,比如用户从购买门票,更注重用户的体检,由于对接系统框架有异、它们的性能和稳定性都千差万别,OTA系统也要保证不受它们的干扰从而能高效运行,需要做到分钟级别的体验,因此数据量大,需要提高运营效率。

2、数据库一主多备的情况下如何减小主数据库的压力。

可以按业务分拆数据库,以数据库分拆为主,比如产品库可以进一步拆分酒店库、机票库等等,当有抢红包活动时,如果一个主库出现压力增大问题时,当同一大业务分类的数据多时,数据库的压力增大,将其拆分成多个备库,可进一步拆分,可以将最后的下单、抢红包的那一瞬动作写到主库上,比如用户库、订单库、产品,以抢红包为例,将查询和访问等操作在备库上进行,随着人数的增多时,答:对数据库本身,数据的一致,在拆库过程中需要注意路由的选择。

同时应用层可以通过缓存、排队、消息异步化等机制,实现访问量的削峰填谷,降低主库的压力。

3、读写分离是在数据库层面还是在应用层实现。

答:数据写入主库的同时通过数据库同步机制同步到多个备库上,应用层读写数据时,并非每个应用各自定位到不同数据库,而是通过应用层的中间件路由到不同的库。

4、离线分析和实时分析的不同场景是什么,实时分析采用哪种技术。

答:一般数据使用Hadoop MapReduce做离线分析,每小时分析一次或几天,高优先级的数据采用Storm进行实时分析,高标准、高优先级的数据采用Storm进行实时分析,有些甚至一天一次。

关于分享者

邵汉成,驴妈妈旅游网技术副总。

并于2015年12月在北京股转中心挂牌上市,旨在为游客提供景区门票、国内游、出境游、大交通、商业定制游等预定服务,驴妈妈旅游网:作为中国知名综合性旅游网站、自助游领军品牌、中国景区门票在线预订模式的开创者,驴妈妈旅游网稳居在线旅游网站流量前三,其母公司景域集团连续四年入选“中国旅游集团20强”,驴妈妈旅游网创立于2008年,根据2015年10月劲旅智库数据显示。

  • 2019暑假孩子旅游
  • 应聘导游面试自我介绍自我介绍范文
  • 贵州织金游玩完美攻略自驾攻略
  • 郑州建业电影小镇游玩攻略演出时间门票
  • 泰国地图全图大图中文电子版
  • 海南州贵德副县长全域旅游全景贵德
  • 规程出炉井研嘉年华报名
  • 医疗旅游市场全球营销方案策划41
  • 东北十大旅游景点排行榜东北值得旅游景点
  • 望闻问切北京中医药旅游
  • 精品行程推荐