个人介绍
多年一线研发经验,具备良好的编码能力,并熟练应用设计模式。
熟练掌握Java并发编程,对Java中的各种锁机制有了解,并在项目中熟练使用。
熟悉GC底层算法,熟悉JVM调优,有实战经验。 熟练掌握SpringBoot,Spring,MyBatis,MyBatis Plus,有多年实战经验,可以快速构建项目。
熟练掌握SpringCloud,如Nacos,Feign,Sentinel,Gateway,Seata,对分布式的服务特点, 旧服务改造,服务划分,服务分层有深入了解。
熟练掌握SQL与MySQL调优,多年实战经验,对索引优化以及存储引擎有深入了解,有线上调优 经验,对分库分表有独到见解。
熟练使用Redis,掌握Redis的存储结构,
熟悉Redis的持久化机制,缓存击穿,雪崩,倾斜有 解决方案。
熟练使用Nginx,配置负载均衡,反向代理,访问日志和错误日志。
熟练使用分布式常见解决方案包括:分布式事务,分布式一致性,分布式锁。 了解Linux系统以及docker容器技术。
工作经历
2023-07-01 -2024-05-01天阳宏业科技股份有限公司java 开发工程师
买单吧用户中心信创改造 * 根据数据切换方案,对应用进行改造,使数据高效安全的从DB2迁移到OB数据库中。 * 配合测试人员功能测试和压力测试,处理系统中的bug,优化代码,适当添加挡板,保证系统达到压测标准。 * 使用OMS迁移工具对数据进行迁移并且开发shell脚本对迁移后的数据进行对比,保证两边数据库的一致性。 * 配合新需求开发,编写TF文档,完成功能开发。 * 使用obdumper 和obloader对单表的数据进行上传和拉取。
2021-05-01 -2023-05-01盟拓软件(苏州)有限公司java 开发工程师
主数据管理系统后端开发 * 重要模块核心程序员 * 根据客户需求,设计数据模型/数据库建模。 * 数据模型确认完成后,与第三方供应商确认接口字段和数据推送方式。 * 数据获取或推送方案确认后,在系统配置中配置接口主动分发或拉取数据当配置无法满足制定的需求时,定制化开发接口,实现数据传输。 * 与第三方接口调通后对历史数据初始化,一起制定历史数据的批量导入方案。 * 单点登录的功能开发,每个甲方公司单点登录的方式都不同,根据甲方客户提供的文档,完成单点登录的功能开发。 * 在维护过程中发现有些接口中的SQL查询效率低,针对查询效率低的SQL进行优化。 * 主数据项目为公司自研产品,项目初期参与研发人数20人左右,我们主要是针对客户的需求做定制化的二次开发,主数据管理系统面对的是企业内部用户,吞吐量要求不高,QPS 要求每个查询做到5s以内。对于数据的准确性要就较高,系统中有很多数据校验功能,数据校验占用内存比较高,经常发生jvm内存溢出问题。主要通过代码层面的优化减少多余的循环和查询,错开执行定时任务等手段,缓解jvm 内存溢出问题。
2018-04-01 -2021-05-01软通动力科技股份有限公司java 开发工程师
集团纪检集中化项目后端开发 * 数据库建模。 * 任务拆分和分配 * 负责与前端人员定义接口数量及接口出参入参。 * 优化接口性能。使用Redis缓存提升查询性能,考虑保存数据接口并发性能,通过spring 事务拆分提升接口吞吐量已解决MySQL数据库死锁问题。 * 负责实现异步发送系统消息,实现异步发送短信等公共独立功能。使用异步方式进一步提升接口性能,并保证不能影响到核心业务数据处理 * 使用powerdesigner 工具生成数据结构文档 * 使用postman工具做接口调试 * 由于各开发环境不同,时常需要执行sql语句和清理业务数据,研究并使用shell脚本实现指定表业务数据清理,整库表结构复制为sql脚本,使用生成sql脚本即可快速构建一个新库供使用。 * 纪检集中化项目涉及到机密,对于安全性要求很高,在数据库表中所有字段全部进行加密处理,生产环境除了技术经理,其他人员都禁止访问,项目的主要难点在于业务复杂,需要同时操作多张表,事务过大。架构上采取高可用的方,代码中利用分布式锁和事务拆分预防数据库死锁问题。
2017-09-01 -2018-04-01中兴软创科技股份有限公司java 开发工程师
云南省政务审批系统 * 使用工作流引擎,负责事项申请模块后端接口开发。 * 与甲方需求负责人对接需求,制定实现方案。 * bug 修复,优化线程不合理问题。 * 优化SQL查询语句,优化索引设置,有效的提高查询效率。 * 优化数据库,合理设计索引。 * 项目初期由于甲方的原因无法统一收集导入所有的事项,所以让组织了一线办事人员统一手动录入所有事项。客户的资源有限,前后端服务,数据库分别只有一台服务器。这对服务处理并发有一定压力,手动录入时间大概一周时间,粗略估算一周大概4.13万的浏览量,TPS大概1.91请求数/秒。通过优化代码,优化SQL,添加索引。引导用户分批次导入,最后将所有数据顺利全部导入。
2013-07-01 -2017-08-01南京橙红科技股份有限公司java 开发工程师
可口可乐主剂管理与追溯系统后端开发 * 核心需求评审,制定落地方案,实现业务完整闭环。 * 负责入库单管理模块,库存盘点管理模块核心功能开发开发。 * 代码review,对核心接口进行优化改造
教育经历
2016-09-01 - 2020-07-01天津大学计算机科学与技术本科
2010-09-01 - 2013-06-01无锡商业职业技术学院汽车运用专科
技能
* 使用工作流引擎,负责事项申请模块后端接口开发。 * 与甲方需求负责人对接需求,制定实现方案。 * bug 修复,优化线程不合理问题。 * 优化SQL查询语句,优化索引设置,有效的提高查询效率。 * 优化数据库,合理设计索引。 * 项目初期由于甲方的原因无法统一收集导入所有的事项,所以让组织了一线办事人员统一手动录入所有事项。客户的资源有限,前后端服务,数据库分别只有一台服务器。这对服务处理并发有一定压力,手动录入时间大概一周时间,粗略估算一周大概4.13万的浏览量,TPS大概1.91请求数/秒。通过优化代码,优化SQL,添加索引。引导用户分批次导入,最后将所有数据顺利全部导入。
* 数据库结构设计。 * 任务拆分和分配 * 负责与前端人员定义接口数量及接口出参入参。 * 优化接口性能。使用Redis缓存提升查询性能,考虑保存数据接口并发性能,通过spring 事务拆分提升接口吞吐量已经解决MySQL数据库死锁问题。 * 负责实现异步发送系统消息,实现异步发送短信等公共独立功能。使用异步方式进一步提升接口性能,并保证不能影响到核心业务数据处理 * 使用powerdesigner 工具生成数据结构文档 * 使用postman工具做接口调试 * 由于各开发环境不同,时常需要执行sql语句和清理业务数据,研究并使用shell脚本实现指定表业务数据清理,整库表结构复制为sql脚本,使用生成sql脚本即可快速构建一个新库供使用。 *纪检集中化项目涉及到机密,对于安全性要求很高,在数据库表中所有字段全部进行加密处理,生产环境除了技术经理,其他人员都禁止访问,项目的主要难点在于业务复杂,需要同时操作多张表,事务过大。架构上采取高可用的方案,代码中利用分布式锁和事务拆分预防数据库死锁问题。