后端20250315简历
2025.03.15自我介绍
截止2025年,我是一名5年经验的软件工程师,擅长使用设计模式,具备良好独立开发、排故以及一定组织能力。曾带领10人团队,完成50万用户量级电商系统架构优化、负责银行验印、票交、账户系统开发维护等,现主导军工某控制系统整体架构优化、维护工作。 在前后端分布式微服务、框架设计、旧项目二开以及原生Android项目开发等方面拥有大量实战经验,能灵活应对各种情况。 擅长Java、Python等,常用技术栈有Vue、SpringCloud、Netty、PyQt等。能查阅各种开发技术手册,熟练编写shell、bat脚本,具备较强的解决问题能力。
求职意向
- 期望城市:北京
- 工作薪资:面议
- 工作性质:全职/兼职
- 目标职能:高级后端工程师
专业技能
- 具备扎实的
Java
基础,熟练使用Java
集合、Java IO
、反射等技术,熟悉线程池的底层实现原理,对线程池的优化有实际项目经验; - 熟悉微服务架构,
Spring Cloud
、Spring Cloud Alibaba
体系,对分布式微服务,旧服务改造,服务划分、服务治理、服务分层都有深入理解,有线上项目经验; - 熟练掌握
Redis
,深入了解底层网络模型、数据结构、持久化机制,有分布式锁、分布式缓存的设计经验; - 熟练掌握
Kafka
,了解集群分片化机制,在高吞吐量情况下消息不丢和重复以及消息投递一致性问题,有实战经验; - 具有较强的分析设计能力,较深入理解
Spring
、Netty
框架,研究过核心源码,能熟练借鉴框架中的设计,具备一定框架定制开发能力,已经运用到实际项目中; - 熟练编写
SQL
、视图,熟练使用索引及执行计划进行数据库调优; - 有良好的编程习惯,掌握面向对象编程,开发过程中大量使用设计模式进行代码编写;
- 熟练操作
Linux
,熟练编写shell
、bat
脚本,有性能调优和故障排查经验; - 熟练掌握
Python
,熟练使用PyQt
进行桌面应用开发,有实际项目经验;
项目经历
成联电商 2022.4~2024.2
成联电商是一个S2B2C电子商务平台运营商,通过S2B2C平台提升第二产业的供应链效率,助力实体企业降本增效,让企业更加专心于生产技术升级、专注于产品品质提升,在职期间主要负责维护“中国耐材之窗网”正常运行和建设耐材部门相关项目。
项目一:中国耐材之窗网
简介: 中国耐材之窗网主要展示一些耐火材料行业相关的资讯信息,在职期间共为其迭代80多个版本。平台注册用户50万+,日活跃用户5w+,部分核心交易表数据1000万+。高峰期系统整体负载压力比较大,在系统高可用、稳定性方面有较高要求。
技术栈:SpringBoot
、Spring Cloud Alibaba
、Mybatisplus
、Redis
、xxljob
、Elasticsearch
工作职责:
-
负责底层组件开发与设计
- 独立负责ElasticSearch组件的设计与开发。基于ES 7.*版本封装,采用High Level REST Client,提供创建Index、删除Index、数据的增、删、改、查等能力,业务侧查询覆盖模糊查询、批量查询、批量新增、批量修改、排序等功能,对使用方友好屏蔽ES操作细节。组件上线后,在客户前端全局搜索场景得到深度使用,经过充分压测,节点性能QPS轻松支持 2000+;
- 独立负责系统分布式锁组件的设计与开发。核心实现方案通过集成Redisson框架,采用注解+AOP实现组件与业务解耦,提供锁互斥、阻塞与非阻塞锁、锁安全释放线程、锁重入、锁续期、公平锁等常见的功能,另外利用分布式锁实现后端应用管理、积分规则维护等功能防重提交。组件上线后,在积分兑换等场景得到大量应用,经过充分压测,分布式锁单节点性能QPS支持1000+;
- 独立负责业务管道流组件设计与开发。参照Netty中的pipeline管道实现,在编写业务代码时,将数据从一个阶段传递到下一个阶段的方法。每个阶段执行特定的数据处理操作,从而实现了业务代码上的解耦,避免类膨胀,又将管道与配置相结合,实现了跳链功能,增加其灵活性;
-
负责系统重构,解决历史技术债务
- 使用Java设计模式设计了一些较为复杂的业务功能,使其扩展性、可重用性大大增强,提高了开发效率;
- 通过多种设计模式的组合,重构支付模块(目前已接入微信、支付宝)、重构文件上传模块,(目前已接入阿里云、FastDFS)接入新渠道的开发周期,从之前的8人天降低到4人天;
- 通过引入Elasticsearch,重构了全局搜索功能,响应速度提高近10倍,极大提升了用户体验;
-
负责系统技术架构升级与改造
- 系统模块目录非常混乱,缺乏统一的规范,重复建设严重,通过基于业务来进行功能目录划分,公共的技术组件下沉到底层framework,开发效率提升一倍;
- 业务定时任务从传统的Spring task,迁移到xxljob分布式调度任务,方便任务可视化管理,任务执行的稳定性也有很大提升;
-
负责核心功能模块设计与开发
- 负责用户浏览量功能设计与开发。利用Redis自增方法,实现访问量统计功能;使用Redis作为浏览轨迹功能写入缓存,并解决缓存击穿问题,极大提升了系统响应速度;
- 负责用户登录、注册、短信邮件发送功能及维护用户的一些接口。技术侧,基于JWT Token实现用户鉴权,实现用户后台拉黑、Token续期,跨端鉴权等功能;
- 完成首页相关接口的优化与开发。将项目首页数据加入本地缓存和Redis缓存, 为了保证DB和Redis数据一致性,通过MQ广播消息,各个应用结点后收到MQ后,从DB中查询信息回写到本地缓存和Redis缓存,有效时间设置有效截止时间+1天,同时设计一个兜底的定时任务定时刷新,将DB数据刷新到缓存保证整个全局一致性;
-
负责生产疑难问题排查与优化处理
- 采用随机睡眠机制防止Redis CPU飙高。分页每次处理500条数据写入Redis后,随机睡眠0-200ms,防止Redis CPU短时间内飙高;
- 实时查询改为定时查询。之前每次查库3个维度计算都在一个SQL中处理,长事务,平均耗时3s左右。优化方案为每隔30分钟,根据交易明细数据进行统计,将相关数据处理完成后写入到Redis,耗时降为300ms,提升10倍;
- 项目产品列表信息报文非常大,用户查询,请求量较大,高并发下Redis IO容易被打爆,为了解决这个难题,将之前的Redis存储改为list存储,采用拆分大key的方案,同时Redis key按项目分开存储,对Redis value进行压缩,剔除非必要字段(比如创建时间、创建人、备注等),优化完成后,Redis CPU从高峰的60%稳定在15%左右;
- 控制单次写表数量。通过重写Mybatis拦截器,当业务单次提交记录大于动态配置开关配置的N条,分批次提交,防止数据库CPU飙高;
- 大表取消数据库join,使用内存join并引入多线程并发查询,查询速度提升近5倍;
工作业绩:
- 主导系统架构升级,完成中国耐材之窗网核心功能的设计与开发。系统上线后比较稳定,用户投诉很少,整体体验很流畅;
- 完成部分核心接口的性能优化。响应时间从3s降低到0.3s,性能提升10倍;
- 攻克线上疑难问题,如系统卡顿、Redis大key等;
项目二: push触达平台
简介:push触达平台是面向商家与客户的消息触达平台,为了保障用户的持续活跃,当用户进入产品生命周期的后半段(预流失/流失状态)就需要精准洞察用户,在恰当的时机,通过正确的渠道,向用户推送个性化的内容达到召回、转化及促活的目的。 目前平台已支持小程序、公众号、企业微信等多个渠道的用户触达,覆盖短信、群发等多种触达方式。在双11期间,平台投递消息能力单日触达用户量20万+,发送消息条数80万,消息发送成功率98%,系统运行健康,应用、中间件及数据库各项指标正常。
技术栈:SpringBoot
、Mybatis
、Redis
、xxljob
、Kafka
工作职责:
-
触达运营后台部分功能设计与开发
- 该后台主要为发布消息触达项目的运营人员服务。独立负责分布式全局Id服务的设计与开发,根据后端配置的生成规则,可动态生成项目编码。从技术上参考美团leaf框架设计思想,通过预先拉取一批分布式Id到本地内存,检测内存分布式Id的剩余数量不到一半,重新拉取下一批,针对订单编号这种场景,采用雪花算法这种设计来实现,另外为了保证接口的高可用,对该服务实现了限流处理,达到限流阀值以后,系统兜底返回一个空,上游业务重试实现保证高可用。
-
负责核心推送功能设计与开发
- 定时轮询触达项目,当距离任务执行时间半小时,触达平台发送消息将触达项目策略的客群标签推给大数据平台,大数据平台异步将客群标签对应的客户列表推送到Kafka,触达平台消费客群模块通过多线程和批量拉取mq方式消息保证消费性能,为了防止上游重复推送消息,采用Redis分布式锁(客群Id+手机号)实现幂等,分布式锁key过期时间设为24小时。另外通过批量入库的方式保证数据写入DB的性能;
- 通过xxljob任务调度框架配置定时任务,达到项目执行时间后,利用xxljob分片处理数据的能力,配置10个分片,每个分片的应用程序创建8个线程,处理不同项目不同批次的客户列表,第一个分片0-1000,第二个分片100-2000,依次类推,通过这种分布式处理能力大大提升推送效;
- 定时任务对发送失败记录补偿。客户消息发送失败后,为了提升发送效率,会将异常记录到Redis list。通过定时任务定时补偿Redis list集合中的数据;
- 对于项目触达策略,如果配置内部优惠券、积分发放、活动礼包等触达任务,在处理过程中,为了防止把下游打垮,触达平台针对不同的任务统一采用Redis实现漏桶限流算法进行限速;
工作业绩:
- 系统上线半年左右,共触达用户60万,推送消息400万条,运营整体反馈不错;
- 解决线上疑难问题,如应用CPU飙高、频繁FullGC等疑难杂症;
北京利联 2019.9 ~ 2022.1
公司主要为金融行业提供计算机软件服务,在职期间主要负责建设验印系统和票据影像交换系统。
项目一:电子验印系统
电子验印系统基于计算机视觉技术实现凭证印章与银行预留印鉴的数字化比对验证。本系统采用全量重构方案,基于领域驱动设计对原有技术架构进行升级,前端模块深度集成至客户端应用(Vue框架),后端服务基于SpringBoot微服务架构重构,通过容器化部署实现分布式系统弹性扩展。 系统自上线以来持续稳定运行,累计服务用户突破80万,系统日均交易笔数约5万,核心验印事务表累计数据量超2000万条。
技术栈:SpringBoot
、Spring Cloud
、Redis
、Kafka
、Mybatisplus
、Vue
、Hystrix
工作职责:
-
负责核心功能模块设计与开发
- 采用前后端分离架构,独立开发电子验印后台管理系统。根据用户需求采用Vue、Element UI构建前端,为适应产品特性,加快迭代速度,后端采用Spring Cloud分布式架构,使用DevOps集中式配置管理,提高了接近1倍的开发效率;
- 基于Kafka异步解耦机制对接柜面系统、影像平台等6个外系统,接口响应时间降低至300ms以内,日均处理验印请求超1万笔,数据最终一致性达99.99%;
-
负责生产疑难问题排查与优化处理
- 优化数据批量入库。通过开启allowMultiQueries=true&rewriteBatchedStatements=true参数配置,通过Mybatis的foreach标签批量插入或更新数据,提升批量写库性能;
- Kafka消息积压优化。通过扩Kafka分区,从之前的4分区扩到8分区;日志保留时间从1个月到2天;调整文件刷盘策略:写入10000条消息或间隔2s,刷数据到磁盘;同步提交改为异步提交;
- 优化同步文件程序。利用Java多线程技术,将大文件拆分成小块,并通过多线程同时处理这些小块,充分利用多核处理器的并行性,同时传输多个文件,避免了传统单线程传输时的等待阻塞,从而最大程度地减少文件传输的总耗时;
- 优化查询高频信息速度。在系统启动时,通过预热将一些热门数据加载到内存中,减少冷启动时的性能影响;
-
负责项目上线及部署
- 采用Nginx和DevOps进行前端部署和反向代理增强了软件系统的安全性;
- 为提升开发效率,接入Gitlab CI/CD进行持续集成和持续部署,实现了构建部署自动化;
- 独立操作Linux系统进行生产环境故障排查、程序部署、数据迁移;
工作业绩:
- 负责系统全栈重构,采用Spring Cloud分布式架构与Vue前端分离设计。系统上线两年稳定运行,客户满意度达98%;
- 构建金融级高可用架构,通过Kafka多分区扩容+消息机制优化,验印请求处理吞吐量提升300%,外系统接口响应压降至300ms内,高峰期服务可用性达99.95%;
- 落地DevOps全链路体系,实现GitLab CI/CD自动化部署与Nginx安全加固,编译部署时间缩短至分钟级;
项目二:电子票交系统
简介:本系统为银行业金融机构间票据影像化处理的第二代核心交换平台,基于银监会票据影像化指引规范,对传统纸质票据交换模式进行数字化重构。 基于高可用单体架构重构旧系统,支持日均10万+笔跨机构票据交换业务,单笔交易平均处理时效压降至约1s,较旧系统提升5倍。
技术栈:SpringBoot
、Netty
、 Nacos
、Mybatisplus
、Redis
工作职责:
-
负责系统技术架构改造
- 技术架构从原始的Spring升级到SpringBoot架构,通过自身内嵌的tomcat容器运行,基于CI/CD,可快速完成应用编译、打包、部署,提升研发交付效率;
- 设计高可用通信架构,基于Netty作为服务方,实现与支付系统等6个外联平台10万级QPS交互,系统响应时间压降至50ms内;
- 搭建微服务治理基座,将Nacos作为配置中心整合到项目中,使其配置支持热部署,方便管理;
-
负责核心功能模块设计与开发
- 使用模版、策略设计模式标准化接入第三方系统(支付系统、柜面系统、影像平台系统等),代码复用率提升60%,新增对接方开发周期缩短至3人日;
- 负责对接单点登录系统,通过Redis分布式Session方案实现SSO无缝集成;
- 落地AOP治理平台,封装日志追踪、敏感词过滤等10多个通用切面,核心业务代码冗余度降低70%,系统可维护性大大提升;
-
负责生产疑难问题优化
- 通过执行计划分析+索引优化重构20+核心SQL,复杂报表查询从20s优化至2.3s,数据导出效率提升约10倍;
- 创新前端数据分片方案,将50万+大数据量Excel导出迁移至浏览器端处理,内存占用降低80%,用户侧导出耗时从120s压缩至10s;
工作业绩:
- 完成技术架构升级,SpringBoot + CI/CD实现自动化部署,部署效率提升70%,编译打包时间缩短至分钟级;
- 重构旧系统代码并优化SQL执行效率,通过索引命中与执行计划调优,核心验印模块查询速度提升5倍,复杂报表生成耗时从分钟级降至秒级;