蔡振谦的个人简历
联系方式
- 手机:13682540660
- Email:361389383@qq.com
- 微信号:13682540660
- 博客: https://heyfl.github.io
个人信息
- 姓名性别年龄:蔡振谦/男/32
- 学历:吉林大学珠海学院/统招本科/软件工程
- 工作年限:
8年
- 期望职位:Java开发/Leader
- 期望城市:深圳
- 语言能力: 粤语&普通话
自我描述
本人曾就职于顺丰科技有限公司,目前在团队中进行过多套公司核心系统研发工作,主要优势:
- 有较丰富的高可用、高并发、大数据量的大型分布式中台系统及ToC系统研发经验
- 参与过顺丰2套核心系统(共11套)的研发工作
- 多次为系统实现降本增效目标,大幅提高系统性能、降低资源使用情况
- 有基于敏捷开发的7人小团队Leader经验
- 曾为部门预备架构师有较好的架构设计能力
工作经历
顺丰科技有限公司(正编) ( 2019年11月 ~ 2022年12月 )
- 任职于顺丰科技有限公司核心团队-OMS研发部,该部门主要负责公司物流数据中台相关服务,提供公司数十亿级订/运单承载、存储、分发、实时查询等一系列科技核心服务;
- 项目为基于SFDubbo(Spring+dubbo)与SFOpen框架搭建的服务体系项目,服务之间通过Kfk、http、dubbo通讯,核心查询服务QPS>3w;
- 在该部门主要负责中台系统的需求分析、设计开发、重构、优化,并选择合理的方案实现核心难题
项目亮点/难点:
- 集团数据中台,读写要求很高
- 保证系统的高可用性(异常补数、故障自动恢复、灰度发布、上线前后验证方案)
- 保证系统的高吞吐(本地缓存、系统性能优化、系统性能监控、系统性能预警)
- 存储要求高,数据量大(数据压缩、数据分库、数据倾斜)
- 缓存/并发消费的一致性/顺序性要求较高(分布式锁、版本号、redis lua脚本等)
- 大数据查询(ES、Hbase、Hive)
为全科技11套核心系统中的2套系统进行了业务开发、重构优化、架构设计等工作,包含并不仅限于:
- 查单性能
提高90%
(ES查询耗时降低90%,ES查询量降低99.8%;ES内存负载降低85.7%,CPU降低50%) - OMS数据库
数据倾斜
解决(由根据城市生成分库号,改成完全随机) - Redis缓存压缩
减少70%存储
(且存取耗时有一定的提升,21年双十一节约14.5T内存) - 通过
熔断降级
(合理使用配置)提高外部系统无响应时的系统可用性 - Hbase region
数据倾斜
导致的超时问题(设定新RowKey规则) Hbase数据压缩
,解决Region数过多,占用存储过多问题(新数据region分区数减少越80%至3000+)- 防止暴力调用设计(防爬)
- 灰度上线设计(消息中间件消费端AB分流、接口分流)
- 零拷贝技术优化优化转发型文件下载效率
深圳市递四方信息科技有限公司 ( 2017年09月 ~ 2019年9月 )
- 递四方信息科技有限公司(阿里系,跨境物流),目前团队中作为TeamLeader/预备架构师
- 项目为基于SpringCloud框架微的服务体系项目,通过Jenkins构建发布到对应服务器,服务之间通过RabbitMQ、http、dubbo通讯;
- 在该部门主要负责GRID产品线/G2G产品线的需求分析与设计,并选择合理的方案实现核心难题。
期间,自发为部门开发共用模块/优化,包含但不仅限如下:
1. 基础依赖:
1. 统一的业务异常/系统异常
2. Http统一的返回对象
2. Redis分布式锁工具类
3. 基于Redis的幂等注解
4. 消息级延迟补偿
5. MQ预警&手动迁移服务
6. 统一异常处理(统一解决了异常日志输出及返回问题)
7. 统一国际化工具类(减少了团队对[前端]请求的后端国际化的工作量)
- 其他
- 定义异常处理/抛出规范
- 定义Consul配置规范(减少发版比对时的困难)
- 定义RabbitMQ在SpringBoot下的队列定义规范
- 其他一些研发规范
北京思特奇信息技术股份有限公司 ( 2015年04月 ~ 2017年08月 )
为基于dubbo+zk+nginx的前后分离、动静分离的项目,前端平台化,通过Nginx反向代理到多个不同业务的微服务化后端中,服务之间通过dubbo通讯;
- 负责新系统-联通业务平台,作为其主研发及其运维
技能清单
以下均为我使用的技能
- 精通Java、熟悉JVM:
熟悉各种集合使用及其原理,熟悉jvm内存结构、java内存模型,熟悉各种垃圾回收算法与回收器并可以适当进行调优,通读《深入理解Java虚拟机》
- 熟悉常见数据结构与算法:
熟悉常见数据结构、算法的优缺点及其使用场景
- 精通Spring:
通读getBean、AOP、事务、MVC、整合Mybatis等源码,理解原理,并能进行二次开发、扩展
- 熟悉常见高可用上线方案
熟练使用灰度发布方案,并有较多的实践经验:如面向前端、普通后端服务、面向消费端服务等
- 熟悉常见SpringCloud等微服务框架:
熟悉熔断、降级、Feign等使用
- 熟悉使用及了解常见MQ ,Redis原理:
RabbitMQ,消息路由,延迟队列,独占队列,事务消息,消息不丢,顺序消费等
Kafka的分区、消费
熟练使用常见Redis数据结构,理解Redis线程模型,熟悉缓存一致性等方案
- 熟悉MySQL:
理解MVCC,事务及其实现原理
- 熟悉Zookeeper/dubbo
- 熟悉SVN/Git/Jenkins
- 理解分布式事务
- 理解常见大数据技术并有一定的使用与优化经验
使用ElasticSearch、Hbase、Flink等并有一定的理解,同时对Hbase与ES的项目应用有过优化经验
致谢
感谢您花时间阅读我的简历,期待能有机会和您共事。
更多具体项目见博客: 附录