Skip to content

联系方式

  • 手机:13437104137
  • Email:13437104137@163.com
  • 微信号:caojiantao30

个人信息

  • 曹建涛/男/1994
  • 本科/江汉大学计算机系

技能清单

  • 掌握Java集合,并发编程原理
  • 熟悉JVM模型及垃圾回收机制,有线上调优经验
  • 熟悉MySQL数据库,索引原理,锁机制
  • 熟悉Redis、RocketMQ、Spring等开源组件
  • 熟悉常见的网络协议和算法思想

工作经历

58同城-转转(2019年8月 ~ 至今)

商品详情页

转转商品详情页,除依赖商品基本信息外,还有相似推荐策略、商业推广服务和运营活动区域等十余个服务模块。通过定制化并发框架协调各个服务,低耦合的方式减少开发成本,保证服务的稳定性。

  • 定制化 ThreadPoolExecutor,支持线程池参数的动态修改
  • 秒级上报线程池状态,提供各模块执行监控
  • 基于 @DependsOn 注解,基于事件驱动任务并发执行
  • 引入 Hystrix 组件,确保服务的可用性

科大讯飞(2018年8月 ~ 2019年8月)

物联网

为设备提供安全可靠的连接通信能力,向下连接实体设备,采集设备遥测数据,向上提供云端API,调用指令下发远程控制设备。抽象设备模型,建立业务场景,设定触发情景点,提供企业级物联平台解决方案。

  • 嵌入式 AMQ,个性化 broker filter
  • 适配 mqtt、modbus、opc 等多种物联协议
  • 支持自定义协议组件,远程加载 Class 热部署
  • 动态执行 Quartz 任务,Zookeeper 分布式锁保证集群单次执行
  • 冗余设备状态等数据至 Redis,加速接口访问

京东商城 ( 2016年7月 ~ 2018年8月 )

会员秒变

吸引第三方平台会员,通过本系统的”秒变“业务获取 JD 的相关福利。根据不同接入的系统,设置对应的秒变条件,广告推送,已经首页排版。

  • 后端采用 SSM 架构,接入 Redis 作为前端页面缓存
  • 秒变记录采用第三方 IP 哈希取余分表策略,用作条件查询
  • 使用 ThreadLocal 运行时设置数据源,结合 AOP 和自定义注解实现读写分离
  • 基于数据库唯一索引机制,避免 Job 多次执行
  • 负载均衡策略采用 IP HASH,保证分布式应用 Session 一致性
  • 支持秒变失败补偿机制,定时 Job 采用线程池补发相关福利,并结合邮件模板推送相关人员

考勤系统

采集员工打卡详细记录,管理员可按条件查询所有员工考勤信息,leader 级别还可查看直属下属员工考勤信息。该系统与 1 号店工时填报系统及 OA 工作流打通,同步工时及休假、异常考勤情况。另设有特殊考勤日,特殊考勤人员,员工排班管理,支持 Excel 数据导出到本地。

  • Spring + Struts 2 + iBatis 实现后端架构,微服务采用内部 Hedwig
  • freemarker 结合 EasyUI 实现后端页面渲染
  • xml 配置定时任务,组装流程单和工时填报情况至中间表,动态SQL批量处理数据
  • IP 指定机器,保证定时任务单次执行

开源项目和作品

开源项目

  • husky:目标企业级Java Web项目基础框架。采用Spring Boot + MyBatis 组合为后端架构,Vue.js + ElementUI 为前端页面渲染,Maven 多 Module 分模块管理,Redis 用作 NoSQL 缓存,MyBatis-Plus 作为 DAO 增强插件。
    • 采用 JWT 用作用户认证组件,会话保持存放在客户端
    • 无依赖系统权限控制模块,增加 AOP + 自定义注解可具体到方法
    • 自定义 Redis 序列化 protostuff,提高 Redis 访问速度
    • 定时任务动态配置,采用 Redis 实现分布式锁避免集群中重复执行问题
    • 重写 Spring 的 AbstractRoutingDataSource,实现数据库的读写分离
    • 结合 Vue.js 动态路由,动态渲染用户菜单

技术文章

基于 MIT 许可发布