# 教育经历

2023 年 9 月 至今
北京邮电大学 - 硕士在读 - 计算机学院软件工程专业

2019 年 9 月~2023 年 6 月
北京邮电大学 - 本科毕业 - 计算机学院软件工程专业

# 实习经历

empty

# 项目经历

仿 12306 铁路购票系统

  • 技术架构:SpringBoot + SpringCloud Alibaba + RocketMQ + ShardingSphere + Redis + MySQL + Sentinel + Hippo4j
  • 项目描述:12306 铁路购票系统,帮助用户完成互联网在线购票,提高居民买票效率以及减少售票人员工作。项目的基础架构采用 JDK17、SpringBoot3 和 SpringCloud Alibaba 构建,完成会员注册、车票查询、车票下单以及支付等业务。底层采用缓存、消息队列以及分库分表等技术支持海量用户购票以及数据存储。
  • 我负责的工作部分:
    • 使用责任链模式重构请求数据准确性检验,比如:查询购票、购买车票下单以及支付结果回调等业务;
    • 通过 RocketMQ 延时消息特性,完成用户购票 10 分钟后未支付情况下取消订单功能;
    • 封装缓存组件库,避免用户注册时用户名全局唯一带来的缓存穿透问题,减轻数据库访问压力;
    • 使用 BinLog 配合 RocketMQ 消息队列完成 MySQL 数据库与 Redis 缓存之间的数据最终一致性
    • 通过 Redis Lua 脚本的原子特性,完成用户购票时票数检验、高铁选座分配以及扣减库存等功能;
    • 通过订单号和用户信息复合分片算法完成订单数据分库分表,支持订单号和用户查询维度;
    • 创建订单明细与乘车人的关联表、分库分表规则同订单,完成乘车人账号登录查询本人车票功能;

消息中心(中台系统)

  • 技术架构:SpringBoot + SpringCloud Alibaba + RocketMQ + ShardingSphere + Redis + MySQL + Sentinel + Hippo4j + Nacos
  • 项目描述:消息服务为用户提供一种通信服务能力,支持快速发送短信、微信、邮件以及三方平台应用消息等。支持公司下所有活动运营发送消息,通过底层技术保障消息发送用户高触达率。
  • 我负责的工作部分:
    • 使用责任链模式开发消息发送前置验证逻辑,完成必填校验、数据校验、黑名单等逻辑;
    • 通过 Sentinel 完成系统限流熔断功能,防止对接的三方系统故障后影响消息系统的运行;
    • 使用 BinLog 配合 RocketMQ 异步更新缓存,保证 MySQL 数据库与 Redis 缓存之间的数据最终一致性
    • 使用线程池提高消息队列客户端的消费性能,并通过 Hippo4j 框架监控线程池 & 解决消息积压问题
    • 拆分多个 RocketMQ 客户端消费者组,保障用户短信验证码等时效性较高的消息发送性能;
    • 通过自定义注解和 Redis 缓存解决 RocketMQ 可能存在的重复消费问题,保障客户端消费正确执行;
    • 自定义雪花算法机器标识位,解决雪花算法在分布式环境下可能出现的并发生成重复问题;
    • 使用 ShardingSphere 中间件,对消息发送业务进行分表处理,并通过复合分片算法满足多种维度查询需求;

# 专业技能

熟练掌握以下技能:

  • Java 基础:集合及底层数据结构、反射、类加载、多线程(了解)等;
  • JVM:内存结构、内存模型、GC 算法、双亲委派机制、常见的垃圾回收器 CMS、G1 工作原理,对类加载过程深刻理解;
  • MySQL:事务及其原理、存储引擎、索引、锁机制、MVCC、各种日志等;
  • Redis:数据类型、持久化机制、IO 模型、Sentinel 机制、高可用、高性能原理等;
  • 并发编程:Java 中的各种锁机制、CAS、AQS、线程池、ThreadLocal、JUC 中的常用工具类等实现原理;
  • RabbitMQ 消息中间件:消息队列模型、消息可靠原理、架构组件、死信队列等;
  • 开发框架:SSM、SpringBoot、SpringCloud 等,深刻理解 IoC、AOP、Bean 生命周期、循环依赖、自动配置原理等内容;
  • 设计模式设计原则:单例、工厂、模板方法、策略、责任链模式等
阅读次数