为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

艺龙旅行网架构案例分享

2011-08-25 28页 pdf 942KB 48阅读

用户头像

is_002600

暂无简介

举报
艺龙旅行网架构案例分享 艺龙旅行网架构案例分享 Michael Jia April 2011 酒店 • 机票 预订电话:400-810-1010 艺龙简介 18000 家国内酒店, 13万家国际酒店 每天 4万机票酒店订单 4.8 亿 RMB总营收(2010年) 酒店 • 机票 预订电话:400-810-1010 Agenda • 艺龙架构介绍 • 关注的问题 • 艺龙案例 – 松耦合 – 异步 – 面向运维 • 总结 酒店 • 机票 预订电话:400-810-1010 Process  CTI ...
艺龙旅行网架构案例分享
艺龙旅行网架构分享 Michael Jia April 2011 酒店 • 机票 预订电话:400-810-1010 艺龙简介 18000 家国内酒店, 13万家国际酒店 每天 4万机票酒店订单 4.8 亿 RMB总营收(2010年) 酒店 • 机票 预订电话:400-810-1010 Agenda • 艺龙架构介绍 • 关注的问 • 艺龙案例 – 松耦合 – 异步 – 面向运维 • 总结 酒店 • 机票 预订电话:400-810-1010 Process  CTI  Call Center Interface ( Order processing, Call handling)  ERP  MIS Customer Management Rev. Management  CRM/ Loyalty  Customer Intelligence  My eLong  Commission Air Rev Management System  Date Warehouse  Payment AR/AP System Management  Monitoring  Capacity Model / Planning  Customer Experience/Tealeaf  Config Management Product Air: √ Air Pricing DB/ FTERM Hotel: √ Hotel Inventory Package: √ Static Package Consumer Traffic/ SEO/ SEM Web/ Usability  Mobile  Destination Guide  Hotel 点评  Promotion  Coupon SMS Email Supplier/Partner  ebooking  HBA Web union  Affiliate Platform  Air supplier platform  NFD  PID pool  Airline Direct Connect  Hotel direct connect  Fax Architecture Overview - Business 酒店 • 机票 预订电话:400-810-1010 Architecture Overview - Technical 展示层: Web Servers, Webservice Servers 商业逻辑层: API Servers 数据层 DB Servers 酒店 • 机票 预订电话:400-810-1010 技术环境 •Windows Server, IIS, SQLServer, WCF, Remoting, MSMQ •CentOS, memcached, CDN •VMWare ESX 运行环境 •ASP.Net, C# •Java, PHP开发 •Cacti, Whats Up, Tealeaf, BMC •Ominture, Network Bench, 运营管理 •Oracle, Hyperion, Informatica, …数据 酒店 • 机票 预订电话:400-810-1010 架构关注点 Architecture represents the significant decisions, where significance is measured by cost of change. –Grady Booch 酒店 • 机票 预订电话:400-810-1010 架构 关注点 Accessibility Auditability Flexibility Extensibility Configurability Testability Repeatability Interoperability Availability Scalability Installability Manageability Supportability Recoverability Usability Timeliness Performance Compliance Security … QCon2008: 架构在满足功能需求之外必须系统化考虑非功能性需求(-ilities) 酒店 • 机票 预订电话:400-810-1010 架构 关注点 • 结构 (Structure) • 一致性 (Consistency) • 交互性 (Interoperability) • Frameworks and Libraries • Team & Technology Good Architecture provides foundations to add business value. 酒店 • 机票 预订电话:400-810-1010 艺龙简单的架构原则 - SOA 子系统在服务层通过API交互 子系统可以独立扩展,升级,维护 面向运维的子系统设计 酒店 • 机票 预订电话:400-810-1010 艺龙架构案例 解耦 酒店 • 机票 预订电话:400-810-1010 Loose Coupling(松散耦合) “Coupling refers to the degree of direct knowledge that one component has of another ” - Wikipedia 松散耦合(loose coupling)的目的是减少风险及提高灵活性:一个元素 内发生的变更造成其它元素内非预期的变更。限制互相连接会在事情 出错时帮助隔离问题并简化测试、维护和检修过程。 酒店 • 机票 预订电话:400-810-1010 系统耦合点 – 三大依赖 • 逻辑依赖 – 系统调用关系耦合 • 数据依赖 – 系统接口定义耦合 • 同步依赖 – 系统可用性耦合 酒店 • 机票 预订电话:400-810-1010 Mediator Pattern – 解耦 M Tight Coupling Loose Coupling 酒店 • 机票 预订电话:400-810-1010 艺龙案例 - 配置解耦 airapi =192.168.3.1 hotelapi =192.168.3.2 …. airapi =192.168.3.1 hotelapi =192.168.3.2 …. airdb =192.168.3.4 hoteldb =192.168.3.5 payment =192.168.3.6 …. airdb =192.168.3.4 hoteldb =192.168.3.5 payment =192.168.3.6 …. …. …. …. 系统依赖关系记录在本地配置文件中 大量配置文件散落各处 部署变更时容易出错 数据中心运维代价高 结论: 配置管理架构必 须降低耦合度 原始结构 酒店 • 机票 预订电话:400-810-1010 艺龙案例 – 配置解耦 Mediator: 配置服务器 airapi =192.168.3.1 hotelapi =192.168.3.2 …. 系统关系集中记录在配置服务器 子系统之间丌再有设置耦合 管理变更更加容易 松耦合结构 酒店 • 机票 预订电话:400-810-1010 艺龙案例 – 流程解耦 艺龙机票流程图: 收款状态: if(pay==ok && seat.isAvailable()) en_queue(“出票”); 出票状态: if(ticket.issued()) en_queue(“Email_Customer”); else en_queue(“Reimburse”); 简单的state-machine实现方式 上下游节点高耦合 拼图式的Global View 流程管理变更点多 结论: 流程节点需要降低耦合度 酒店 • 机票 预订电话:400-810-1010 艺龙案例 – 流程解耦 Worker-Controller 模型 验证 出票 收款 打印 配送 流程Controller Worker 节点和流程分离  Notify-Dispatch 上下游节点低耦合  Global View 集中在controller 流程管理变更点少 Mediator 酒店 • 机票 预订电话:400-810-1010 Mediator Pattern的其他应用场景 对象耦合 - Spring IoC Container 数据耦合 - Canonical Data Format 通讯耦合 - Enterprise Service Bus (ESB) Internet … 酒店 • 机票 预订电话:400-810-1010 Asynchronous – 航信通讯 API + Cache 服务器 航信通讯服务器 PEK-SHA $$$ 航信主机 如何将航信通讯流量最小化 Cache可以解决一部分问题  Cache 数据过期时会访问航信  3-5秒钟的访问时间 期间同样的查询将重复访问 峰值流量无法控制 目标: 同样的查询只能有一次访问 酒店 • 机票 预订电话:400-810-1010 艺龙架构案例 异步 酒店 • 机票 预订电话:400-810-1010 Asynchronous – 航信通讯 API 服务器 航信通讯服务器 PEK-SHA ¥1200 SHA-PEK ¥1300 … $$ 查询请求存入DB, 丌直接调通讯服务器 通讯服务器从DB取得查询请求  API在写入时判断并排除重复查询 峰值流量得到控制 结果: 节省了1/3的航信流量,降低了费用约1/2 航信主机 酒店 • 机票 预订电话:400-810-1010 艺龙架构案例 面向运维 酒店 • 机票 预订电话:400-810-1010 面向运维 Cacti 实时监控 最近5分钟的出票量? 23  Simple HTTP GET  Cacti SNMP Proxy 酒店 • 机票 预订电话:400-810-1010 面向运维 日志分析 统一的日志格式 统一的分析工具 酒店 • 机票 预订电话:400-810-1010 面向运维 – Beyond • 商务运维 – 价格准确率 – 支付失败率 – … • 监控系统反馈 – 自适应系统模型 - Elastic – 人工, 自动, Hybrid 酒店 • 机票 预订电话:400-810-1010 总结 • 架构需要有Big picture. • 立足现有系统,兼顾未来系统 • 架构的原则可以灵活应用在各个层级 – 应用架构 (Class, Object, Interface…) – 系统架构 (子系统, 交互,接口…) – 数据架构 (数据处理,结构,整合) – 企业架构 • Focus on value , 适度架构 酒店 • 机票 预订电话:400-810-1010 谢谢大家 jia.mike@gmail.com 新浪微博: @贾志峰Michael
/
本文档为【艺龙旅行网架构案例分享】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索