sqlserver 数据库 :熟练
mysql :熟练
div+css、javascript(jquery) :熟练
ado.net、asp.net 、 mvc 、linq、n层架构 mef 插件模式
python flask :熟练
workflow(wfp) :熟练
asp.net core :精通
golang+gin :熟练
vue.js :熟练
docker:熟练
航班动态监听平台
项目描述: 航班动态分为四个模块 数据接收、对客推送、动态数据查询、后台管理。
一 数据接收
开发各个接收各种航班数据的接口,包括 基本信息、航站楼、值机柜台等。其中针对各
个航班数据类型梳理出各个校验逻辑。这里数据校验逻辑的组装还是使用责任链的模式,
来提高代码阅读性,降低代码复杂度。
二 对客推送
对客推送分为两大类,一是定点时间推送,二是 数据变动推送。此外这边还涉及到推送
规则的维护,规则的维护在后台管理系统中。设计的思路,定时推送时是航班订阅三方
接口之后会根据航班信息查询对应的推送规则,根据对应的规则生成多个待执行的
schedule,然后由 job 去扫描未执行的 schedule。数据变动是消费对应的航班信息的消息,
收到消息后查询对应的规则组装内容模板进行推送。
三 动态数据查询
开发动态数据查询的接口,这边有一个难点就是航班动态的数据很复杂,不同的业务可
能所需要的数据还不一样。这边为了简化数据组装的逻辑,使用了 Graphql 框架,有上游
自定义所需数据的 Schema,查询接口内部再实时解析该 Schema,查询所对应的数据。此
外该应用消费航班动态更新消息,实时缓存动态数据至 redis,提高查询接口性能
四 后台管理系统
采用 Vue+Element 的样式框架,开发动态相关的功能页面,提供给开发或者业务同事使
用,提高工作效率 。
机票舱位服务系统 V1
项目描述: 该项目包括航线更新、数据源接口并发控制两块
航线更新
1 梳理现在舱位信息更新机制,将舱位更新机制拆分为两大模块,包括航班信息和更新
频率数据。其中更新频率数据由 2 种预测方案,航班信息有 2 种预测方案。通过两两组
合,定时切换组合搭配找出分好的方案。2 搭建舱位缺失、更新消耗流量监控统计平台,
提高 PM 分析虚仓效率 3 补全舱位服务的业务流程,包括不通航、航司封号配置等,依
托其他基础数据平台完善舱位准确率 4 提高舱位服务的可拓展价值,分析现在业务流程
(如抢票、等降舱)对舱位更新监控的需求,提供任务监控注册服务,取代业务系统本
身传统的 job 更新机制。
数据源并发控制
对接各个数据源接口,根据各个数据源的并发配置,使用 Go chan 的数据结构进行并发
控制。整理思路是:请求进来之后根据优先级配置分别对各个 chan 进行->操作,如果在
某一个数据源的 chan 操作成功之后直接返回,否则继续下一个数据,直到各个数据源都
超并发为止。
机票舱位服务系统 V2
该项目主要是对机票舱位更新机制进行重构,以往的构建方式存在如下几个缺点:1 每
台机器需要维护各自的数据批次,服务器重启或者更换物理机比较繁琐 2 扩展性很差,
指定好了 25 个批次话,就需要 25 台机器,如果批次做调整,则需要大量清洗数据,然
后再调整机器数量 3 代码复杂度太高,型号量+自动事件构建的生产消费模型太复杂。
为了解决上诉问题:通过 redis 采用 List+游标的方式来进行航线更新任务分发,每一台机
器每一线程随机获取待执行的航线,如果出现更新延误只要添加容器实例即可,无需其
他任何调整。