个人描述
热爱开源与代码,曾经获得携程2021年Hackthon比赛冠军。
技能描述
- 熟悉 Java 基础知识,对多线程、IO 与 JVM 有一定了解,具有相关实践与优化经验;
- 了解 MySQL 的使用与基本原理,对于 MySQL 优化、业务表结构设计有一定研究;
- 了解常用中间件基本使用,如 Redis、Elastic Search、Kafka、MongoDB等
- 可使用 Spring、SpringMVC、Spring Boot、Vue 等常用框架开发;
- 了解分布式系统架构设计基本理念,有相关分布式系统与微服务构建经验;
- 熟练掌握Git、Maven项目管理工具,了解Gradle的使用;
- 具有分析和解决问题的能力以及较为扎实的数据结构与算法技能;
- 对 DevOps,自动化部署,自动化测试有一定的实践经验;
- 熟悉Shell脚本,了解Docker容器知识;
工作经历
上海携程 - 智行机票供应组
2021.04 ~ 至今。负责智行机票轻量级供应商系统、X页排序方案的从0到1的开发与维护。
智行机票轻量级供应商系统
1、项目简介
智行机票轻量级供应商系统是为了解决平台与供应商因为接口交互而带来问题的统一解决手段。该系统支持几十家供应商在平台千万级别的异步政策导入与更新,实时将政策转换成机票报价,极大的降低供应商接入成本,扩大了智行机票供应链。系统上线日均出票峰值1W张。
2、具体功能点
➢ 在设计上,通过政策分区存储、分级缓存、预过滤方式,尽可能减少匹配的政策数量,降低接口耗时;
➢ 在具体实现上,使用线程池并行计算,使用CompletableFuture,将请求无依赖关系的二次请求并行处理,降低接口耗时;
➢ 基于配置中心、hickwall实现动态调整、实时监控的线程池;
➢ 支持供应商异步新增、修改政策,支持实时下线海量政策;
➢ 设计并实现系统容灾;能快速将故障隔离,及时服务降级避免服务不可用带来的订单损失;
➢ 实时分析解析政策日志,为供应商提供政策投放建议;
3、涉及技术
JDK17、Redis、MySQL、SpringBoot、QMQ、Junit5、Mockito、Maven、JaCoCo、FindBugs
智行机票数据系统
1、项目简介
数据系统是负责统一收集、整合、过滤不同供应商的报价,对这些报价进行统一的校验、过滤逻辑。
2、具体功能点
➢ 异步IO改造,提高系统吞吐量
3、涉及技术
JDK17、Redis、MySQL、SpringBoot、QMQ、Junit5、Mockito、Maven、JaCoCo、FindBugs
智行机票X页排序方案
1、项目简介
排序方案是为了让产品可以实时、灵活的控制商品在X页的选取和排序;并可以通过配置AB实验来判断哪种选取、排序方案更受用户亲睐,为后续商品投放提供数据支持。
在实现上,根据用户画像、AB实验、请求来源、航司、报价PK、报价选取逻辑等多个维度来灵活控制报价在X页的选取与排序,并通过报价格子、亲子推荐等在X页和填写页为特殊需求用户提供更多报价的选择。
2、具体功能点
➢ 在运营系统上,通过Vue2.X为产品提供可视化的排序方案控制;
➢ 通过启动时全量更新、运行时增量更新的方式,为服务提供排序方案配置信息的本地缓存,降低因为读取配置而增加的耗时;
➢ 为不同商品设置不同的token,方便BI对各种商品报价售卖、选取情况进行统计;
3、涉及技术
JDK17、Vue2.x、SpringBoot、MySQL、Maven、Junit5、Mockito
上海德易车信息科技有限公司 - 研发部 2 组
2020.05 ~ 2021.04。负责财务、支付、金融产品系统的前后端开发与维护。
⾦融产品系统的多租户改造
1、项目简介
对原有的⾦融产品系统改造以⽀持多租户模式,保证系统中线程内部的租户数据不会互相污染,编写MyBatis插件使其⾃动为SQL中⽀持多租户的表添加租户id条件。
2、具体功能点
➢ 使⽤alibaba-transmittable-thread-local对系统内部的ThreadLocal、线程池进⾏改造,保证系统内新创建的线程、线程池复⽤的线程不会含有之前其他租户的数据;
➢ 使⽤alibaba-druid的parser模块解析SQL,根据表是否含有租户id字段,来⾃动插⼊租户条件,并对此功能编写单元测试,便于后期维护;
3、涉及技术
Vue2.X、SpringCloud、MyBatis、MySQL、Gradle、MongoDB、Junit5、Mockito、 JDK1.8
财务、支付系统
1、项目简介
该系统⽀持公司财务部⻔的业务需要,对费⽤项收⼊、⽀出、⽀付通道、⽀付安全、商户信息等功能进⾏维护。
2、具体功能点
➢ 维护原有的⽀付通道,并新增平安批量⽀付、微信⼩程序⽀付⽅式;
➢ 将数据量⼤的⾼频数据放⼊Redis缓存,对于低变化的数据使⽤Guava做本地缓存;
➢ 对系统内部慢SQL进⾏优化;
➢ 对部分接⼝进⾏优化,优化后接⼝执⾏时间减少了 34%;
➢ 使⽤RabbitMQ消息队列的⽅式来解耦财务系统和其他系统之间的交互;
3、涉及技术
Vue2.X、SpringCloud、MyBatis、JavaMelody、MySQL、Redis、RabbitMQ、Maven、 JDK8
上海汉得技术有限公司 - 拓展技术 1 组
2019.07 ~ 2020.05。负责项目基础产品环境的搭建、维护;核心业务项目的开发和项目的运维脚本的编写与维护。