架构揭秘

架构揭秘传统产业,比如旅游业该如何向互联网转型,这期间会遇到哪些技术问题?带着这些疑问,我们采访了中青旅遨游网架构师沙洲,让他来谈谈遨游网的技术架构。

在今年的两会上,国务院总理李克强不仅提出了“互联网+”概念,还亲自为网购代言,这一切都充分说明企业要想做好产品、做活产品,互联网是必不可少的一个平台。

那么,传统产业,比如旅游业该如何向互联网转型,在技术架构上会遇到哪些挑战呢?带着这些疑问,我们采访了中青旅遨游网架构师沙洲。

中青旅遨游网架构师 沙洲

1.请您自我介绍一下,可以分享一下您的技术成长之路吗?

沙洲:大家好,我叫沙洲,今年29岁,目前主要负责遨游网技术架构的工作,包括基础开发框架的设计,系统流程架构的设计以及API建设等。

在来遨游网之前,我曾在北京一家做gis开发的公司做开发工程师,在那里,我遇到了一位技术高超并非常严格负责的领导。他经常对我的代码进行CodeReview,不断向我灌输程序设计思想,久而久之,我发现自己的技术水准上升非常大。

在2011年,我有幸入职遨游网,当时遨游网正在开始进行传统企业向互联网企业转型的起步阶段,于是便开始不断开拓技术视野,学习互联网企业的技术架构,并将其应用到遨游网上来。目前遨游网仍处在技术架构转型中,我也仍在不断的学习和进步中。

2.介绍下中青旅遨游网网站架构?

沙洲:遨游网分为前台网站系统,后台管理系统和商户平台系统,每个系统又拆分为不同的子站,每个子站都细分为不同的模块。目前遨游网已经完成了第一阶段的SOA化, 将业务模块进行全面解耦和拆分,简化了系统复杂度,降低了故障扩散风险。

网站架构图

我们把细粒度的服务当作基础服务,根据业务需要将其组合,提供粗粒度的服务对应用层公开,这样不仅可以做到模块的全面解耦,也解决了对外暴露服务过多,业务系统应用服务时组装服务过于繁杂的问题。底层服务资源的消耗能够简化上层应用逻辑,对于系统架构层次的合理性更为有益,只要提高底层基础服务的性能,上层服务能力将更具弹性。

SOA架构图

3.传统旅游业在向互联网转型的过程中,在技术架构上遭遇哪些挑战?你们是如何应对的?

沙洲:由于遨游网之前的规划并不是电商网站,因此一直以来并没有自己的后台系统,一切业务的处理和流转均基于中青旅的ERP系统,而ERP系统的建设标准是基于财务结算和线下业务流转。其中涉及到了无数的事务性操作以及大量直接与数据库交互的操作,因此无论在系统性能方面还是硬件部署方式上均与电商网站相距甚远。更令人沮丧的是,相对保守的ERP系统无法满足OTA业务多样性的发展,因此针对遨游网的一点点改动都是伤筋动骨的,严重制约了网站的成长。于是我们下决心建立一套独立的,轻量的,适合电商的后台系统来支撑遨游网。

在这期间遇到了两个问题:

  1. 第一个问题是如何做到所谓的"高速路上换轮胎",在脱胎换骨的过程中如何尽量小的影响业务的发展。对此我们采取的方式是先做业务梳理和系统拆分,即进行系统的SOA化改造,拆分后的模块之间的耦合度大大降低, 我们便可以从容的进行新模块的构造以及的对旧模块的更替;
  2. 第二个问题是与ERP系统的对接策略,由于在遨游网上售卖的产品70%来自中青旅, 因此会涉及到大量的数据交互,而这些交互大部分是通过接口来实现。这时便会出现ERP系统的性能和稳定性对网站造成影响的问题。 对此我们的对策是进行大量的异步操作和采用分布式缓存技术。建立消息系统,缓存更新系统以及监控系统。做到网站和ERP系统的性能解耦, 从而保证网站运行的稳定性和良好的用户体验。

4.你在上文中提到,每个子站都细分为不同的模块,可否介绍一下这几个模块的技术细节?

沙洲:由于遨游网的各个子站都是一类业务流程的集合,针对这类业务的各个子流程就会分为不同模块,不同模块所使用的技术和部署的环境也不尽相同。例如预订站点主要针对下单流程,其中包括了各个品类普通产品的预订模块,促销抢购类产品的预订模块等。相较于普通产品的预订, 促销抢购类产品的预订由于涉及高并发访问,我们对整个模块包括数据库都进行了独立部署,而且针对价格库存等敏感信息进行单独配置,并提供了预警和侧峰机制,这样便保证了促销活动期间抢购模块不会对其他模块产生影响。

5.能否结合具体实例谈谈你们是如何运用分布式缓存技术的?

沙洲:对于分布式缓存技术,我们已经在使用的是memcached,对于Redis我们已经在小范围使用,今年将逐步推广至整个网站。

目前我们的缓存技术主要运用于两种情况:一种是针对一些频繁读取且变化相对较少的数据,例如地理信息、景区景点信息、业务字典信息等数据。 我们将这些数据存入缓存中并提供定期数据同步机制,从而减少数据库的访问量,提高读取速度。另一种是针对与其他系统的对接,例如网站在下订单的过程中要从产品系统中获取产品信息,出发班期,价格,库存等信息。为了保证网站的稳定性和良好的用户体验,需要把这些信息预先加载至缓存中,之后所有的操作如价格校验和扣减库存等都在缓存中进行,配合消息系统和产品缓存更新机制,做到信息快速同步更新。这样不仅提升了下单速度, 也防止了接口故障对预订流程的影响。

6.从你2011年加入遨游网至今,架构和不同模块都发生过哪些变化,为什么有这些变化?

沙洲:一开始遨游网的技术架构是典型的传统应用的架构类型,所有的业务逻辑都混在一起。随着业务的增多,系统愈发臃肿庞大,轻微的改动都可能造成整个网站的瘫痪。

为了改变这种状况,我们首先进行了站点的拆分,把不同的业务流程归置到不同的站点下,每个站点都进行独立部署。随后为了解决数据库性能问题, 根据业务类型以及访问情况进行了数据库的拆分和优化。之后便开始了SOA化改造,改造过程中为了保证代码质量和便于统一维护和管理, 我们打造了AoyouFramework的基础开发框架,在此框架上做到了代码优化和逻辑重构。

7.国内开源氛围非常活跃,你们在技术上有用到哪些开源产品吗?

沙洲:对于开源技术,我们始终坚信这是在我们技术发展历程中至关重要的一个环节。当开拓或重构一个业务线时,我们越来越多的将焦点放在了开源技术上。 我们目前用到了Node.js,Bootstrap,Angularjs,Mongodb,Python,Redis,RabbitMQ等成熟的开源技术,并在逐步扩大LNMP/LAMP此类经典开源网站服务器架构在生产环境的使用率。今年已按计划实施了与北京GDG开发者社区合作,旨在更好的使用, 参与并且支持开源技术。

时间: 2024-10-13 19:11:58

架构揭秘的相关文章

Spring架构揭秘-事件监听机制

一.事件监听机制概述 二.事件监听机制结构 三.Spring监听机制架构 Spring的Application拥有发布事件并且注册事件监听器的能力,拥有一套完整的事件发布和监听机制.在Java中,通过java.util. EventObject来描述事件,通过java.util. EventListener来描述事件监听器,在众多的框架和组件中,建立一套事件机制通常是基于这两个接口来进行扩展. 在一个事件体系中,有以下几个重要的概念. 1.事件源:事件对象的产生者,任何一个EventObject

Spring架构揭秘-AOP

1.AOP概述 2.Spring AOP原理 3.Spring AOP架构解析 一.AOP概述 Java程序员在写代码的时候通常都是使用新建对象类来描述业务特性,然后通过对象的继承.组合.扩展等手段来实现业务需求,这是典型的面相对象的编程方式即OOP,总的来说OOP是一种由上至下的竖向编程模式. 在实际的编程中,通常会遇到某些方法里会使用到相同的逻辑,比如记方法执行日志,这些代码在OOP中没法与业务代码完全的解藕,使得方法代码就有了混合逻辑,不符合编程的单一责任原则.如果可以把这块逻辑代码解藕,

Exchange Server 2016架构揭秘

微软在上周芝加哥大会上首秀了Exchange Server 2016,架构最大的变化就是由Exchange Server 2013的三个角色变成了二个角色,即邮箱角色和边缘传输角色,正式版将于2015年冬季发布. Exchange Server 2016支持情况如下: 支持和Exchange Server 2010/2013共存 支持Windows Server 2012 R2及以上操作系统 支持Windows Server 2008 R2及以上域控 支持Outlook 2010及以上客户端

Android软硬整合设计与框架揭秘: HAL&Framework &Native Service &App&HTML5架构设计与实战开发

掌握Android从底层开发到框架整合技术到上层App开发及HTML5的全部技术: 一次彻底的Android架构.思想和实战技术的洗礼: 彻底掌握Andorid HAL.Android Runtime.Android Framework.Android Native Service.Android Binder.Android App.Android Testing.HTML5技术的源泉和精髓等核心技术,不仅仅是技术和代码本身,更重要的是背后的设计思想和商业哲学. 一.课程特色 l  贯通And

Android软硬整合设计与框架揭秘: HAL&Framework &Native Service &App&Browser架构设计与实战开发

在软硬整合领域, Android以其对软件和硬件的高度开放性引领了当今的软硬整合潮流,全世界正在进行一场轰轰烈烈的Android运动,Android以不可思议的速度渗透越来越广的领域,Android智能手机.Android智能电视.Android微波炉.Android平板电脑.Android智能机器人.Android车载系统等越来越多的Android产品涌入人们的工作和生活中,自从Google的[email protected]战略发布以来,更是让世界对Android充满了怦然心动的期待,可以预

揭秘LOL背后的IT基础架构丨产品而非服务

欢迎来到Tungsten Fabric用户案例系列文章,一起发现TF的更多应用场景."揭秘LOL"系列的主人公是Tungsten Fabric用户Riot Games游戏公司,作为LOL<英雄联盟>的开发和运营商,Riot Games面临全球范围复杂部署的挑战,让我们一起揭秘LOL背后的"英雄们",看他们是如何运行在线服务的吧.作者:Nicolas Tittley和Ala Shiban(文章来源:Riot Games)译者:TF编译组 这个长系列的文章,

Android架构设计和软硬整合完整训练:HAL&amp;Framework&amp;Native Service&amp;Android Service&amp;Best Practice

如何理解Android架构设计的初心并开发出搭载Android系统并且具备深度定制和软硬整合能力特色产品,是本课程解决的问题. 课程以Android的五大核心:HAL.Binder.Native Service.Android Service(并以AMS和WMS为例).View System为主轴,一次性彻底掌握Android的精髓. 之所以是开发Android产品的必修课,缘起于: 1, HAL是Android Framework&Application与底层硬件整合的关键技术和必修技术: 2

Android架构设计和软硬整合:HAL&amp;Framework&amp;Native Service&amp;Android Service&amp;Best Practice

如何理解Android架构设计的初心并开发出搭载Android系统并且具备深度定制和软硬整合能力特色产品,是本课程解决的问题. 课程以Android的五大核心:HAL.Binder.Native Service.Android Service(并以AMS和WMS为例).View System为主轴,一次性彻底掌握Android的精髓. 之所以是开发Android产品的必修课,缘起于: 1, HAL是Android Framework&Application与底层硬件整合的关键技术和必修技术: 2

各大互联网公司架构演进之路汇总 - 分享自@开发者头条

大型网站架构演化历程 Web 支付宝和蚂蚁花呗的技术架构及实践 支付宝的高可用与容灾架构演进 聚划算架构演进和系统优化 (视频+PPT) 淘宝交易系统演进之路 (专访) 淘宝数据魔方技术架构解析 秒杀系统架构分析与实战 腾讯社区搜索架构演进(视频+PPT) 京东峰值系统设计 京东咚咚架构演进 新浪微博平台架构 微博图床架构揭秘 微博推荐架构的演进 当当网系统分级与海量信息动态发布实践 当当网架构演进及规划实现(视频+PPT) LinkedIn架构这十年 Facebook's software a