zoukankan      html  css  js  c++  java
  • 途牛抢票系统架构演进读后感

    铁路作为中国最重要的交通工具,每一年春运都要面对浩浩荡荡的返乡潮,虽然铁路蓬勃发展,但依然无法支持如此庞大的返乡人群 — 2018年全国春运旅客发送量近30亿人次,2019年预计会更多,每一年春运,一票难求都是一个热门话题。

    途牛抢票监控系统成立于2016年6月,通过借助抢票系统余位监控、线下票台供应商渠道自动发起占位出票,提高用户出票成功率。

    主要有一下三个部分:系统确立、系统拆分、系统重构。

    系统拆分:

    在数据性能方面,DTC_GRAB抢票查询系统返回数据去除出发到达等抢票弱相关字段,减少字段赋值极大的缩小缓存大value情况,改造后缓存带宽发送流量精简80%以上,大幅提升余位查询接口的响应速度,时间由原来共用DTC的4s提升至300ms左右。

    在机器实例方面,将余位监控系统SGT部署到云平台实现机器实例的动态扩展,并通过定时调度中心发起调度到一台机器上,通过Tubing将订单数据分发到所有的实例上,有效降低单实例的线程池并发的压力。

    系统重构:

    经过查阅分析,借鉴了淘宝tbschedule开源分布式定时调度分片框架思想,对于原框架每一个分片和实例IP固定绑定弊端,无法满足抢票业务通过字母进行动态随机分片到所有实例上的问题,自行开发一套符合抢票的定时调度随机平均分片的框架,实现了将N个字母随机平均分配到所有的实例上,每个实例根据字母站站对分片从DB获取一小部分站站对数据,再通过Tubing均匀分发到所有的实例,摆脱了大量数据DB翻页查询对DB不断查询的压力,同时我们也对抓取订单数据、分片数据增加Redis缓存,进一步降低DB压力。此外在每个实例上配置定时调度模块,通过配置页面灵活进行所有实例的频率调整等。

    总结:

    通过抢票监控系统,将大流量、高并发、分布式、缓存、限流、降级、数据一致性等进行了项目技术落地,为后续相关高并发项目奠定基础,获得了宝贵经验。在日常系统维护中也犯过错、踩过坑,经历过痛苦绝望,但静下心来细思品味就会发现这是历史的机遇,又是不可多得的挑战,正所谓业务推动技术,技术服务业务。把握机会,再接再厉,相信一切都会迎刃而解。

  • 相关阅读:
    DEV—【GridControl添加按钮列】
    DEV—【GridControl主从表】
    DEV—【GridControl 按钮列无法触发点击事件解决方案】
    WCF入门大致思路
    .Net应用导入、导出Excel文件
    .Net应用自定义鼠标样式
    VS打包后生成快捷方式:目标指向错误、Icon图标分辨率有误问题解决方案
    在Paint事件中绘制控件(边框)
    Android SDK Manager下载失败后 更新列表的正确设置
    关于sql分页
  • 原文地址:https://www.cnblogs.com/lovema1210/p/11045370.html
Copyright © 2011-2022 走看看