联系方式
- 手机: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 动态路由,动态渲染用户菜单