访问量
访客数

Java20230915简历

2023.09.15 阅读量

自我介绍

1998 · 李济芝
河北唐山
15176733539
 m15176733539@163.com

本人有严谨的工作态度与高质量意识;能查阅各种开发技术手册,具有独立解决问题的能力。具备扎实的Java基础和四年开发经验,有良好的编程风格,独立熟练使用Spring全家桶等常用类库开发Java服务端程序、对Java服务端程序故障能独立排查。工作责任心强,具有一定的承压能力。

求职意向

  • 期望城市:北京
  • 工作薪资: 面议

专业技能

  • 具备扎实的Java基础,熟练使用Java集合、Java IO、多线程、反射等技术;熟悉java核心的集合框架;
  • 熟悉多线程及使用,掌握线程池底层实现原理,有多线程方面开发经验;
  • 熟悉微服务架构,Spring CloudSpringcloud Alibaba体系,对分布式微服务,旧服务改造,服务划分、服务治理、服务分层都有深入理解,有线上项目经验;
  • 熟练掌握 Redis,深入了解底层网络模型、底层数据结构、持久化机制,有分布式锁、分布式缓存的设计经验;
  • 较深入理解SpringNetty框架,研究过核心源码,较为熟练借鉴框架中的设计,具备一定框架定制开发能力;
  • 熟练编写SQL、视图及存储过程,熟练使用索引和执行计划进行数据库调优;
  • 熟读阿里巴巴开发手册,有良好的编程习惯,掌握面向对象编程,开发过程中大量使用设计模式进行代码编写;具有较强的分析设计能力,熟悉系统的性能调优和故障排查;

项目经历

成联电商 2022.4~今

公司主要做“产业电商官网”模式,旗下运营:“中国耐材之窗网”、“冶金炉料网” 、“中国陶瓷官网”、“中国物流官网”四大行业电商平台,在职期间主要负责维护“中国耐材之窗网”正常运行和建设耐材部门相关项目。

项目一:中国耐材之窗网

简介:网站主要展示一些耐火材料行业相关的资讯信息,至今共为其迭代80多个版本。

技术栈:Springboot、Springcloud alibaba、 Nacos、Mybatisplus、Redis、Elasticsearch、xxljob

工作职责:

  1. 负责底层组件开发与设计

    • 独立负责ElasticSearch组件的设计与开发。基于es 7.*版本封装,采用High Level REST Client,提供创建Index、删除Index、数据的增、删、改、查等能力,业务侧查询覆盖模糊查询、批量查询、批量新增、批量修改、排序等功能,对使用方友好屏蔽es操作细节。组件上线后,在客户前端全局搜索场景得到深度使用,经过充分压测,节点性能QPS轻松支持 2000+;
    • 独立负责系统分布式锁组件的设计与开发。核心实现方案通过集成Redisson框架,采用注解+AOP实现组件与业务解耦,提供锁互斥、阻塞与非阻塞锁、锁安全释放线程、锁重入、锁续期、公平锁等常见的功能,另外利用分布式锁实现后端应用管理、积分规则维护等功能防重提交。组件上线后,在积分兑换等场景得到大量应用,经过充分压测,分布式锁单节点性能QPS支持1000+;
    • 独立负责业务管道流组件设计与开发。参照Netty中的pipeline管道实现,在编写业务代码时,将数据从一个阶段传递到下一个阶段的方法。每个阶段执行特定的数据处理操作,从而实现了业务代码上的解耦,避免类膨胀,又将管道与配置相结合,实现了跳链功能,增加其灵活性;
  2. 负责系统重构,解决历史技术债务

    • 使用Java设计模式设计了一些较为复杂的业务功能,使其扩展性、可重用性大大增强,提高了开发效率;
    • 通过多种设计模式的组合,重构支付模块(目前已接入微信、支付宝)、重构文件上传模块,(目前已接入阿里云、FastDFS)接入新渠道的开发周期,从之前的8人天降低到4人天;
    • 通过引入Elasticsearch,重构了全局搜索功能,响应速度提高近10倍,极大提升了用户体验;
  3. 负责系统技术架构升级与改造

    • 系统模块目录非常混乱,缺乏统一的规范,重复建设严重,通过基于业务来进行功能目录划分,公共的技术组件下沉到底层framework,开发效率提升一倍;
    • 业务定时任务从传统的spring task,迁移到xxljob分布式调度任务,方便任务可视化管理,任务执行的稳定性也有很大提升;
  4. 负责核心功能模块设计与开发

    • 负责用户浏览量功能设计与开发。利用Redis自增方法,实现访问量统计功能;使用Redis作为浏览轨迹功能写入缓存,并解决缓存击穿问题,极大提升了系统响应速度;
    • 负责用户登录、注册、短信邮件发送功能及维护用户的一些接口。技术侧,基于JWT Token实现用户鉴权,实现用户后台拉黑、Token续期,跨端鉴权等功能;
    • 完成首页相关接口的优化与开发。将项目首页数据加入本地缓存redis缓存, 为了保证DB和Redis数据一致性,配置更新后,更新DB,通过MQ广播消息,各个应用节后收到MQ后,从DB中查询信息回写到本地缓存和redis缓存,有效时间设置有效截止时间+1天,同时设计一个兜底的定时任务定时刷新,将DB数据刷新到缓存保证整个全局一致性;
  5. 负责生产疑难问题排查与优化处理

    • 采用随机睡眠机制防止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倍;

工作业绩:

  1. 完成中国耐材之窗网核心功能的设计与开发、系统重构。系统上线后比较稳定,用户投诉很少,整体体验很流畅;
  2. 完成部分核心接口的性能优化。响应时间从3s降低到0.3s,性能提升10倍;
  3. 多次解决线上各种疑难问题。例如:redis大key、线上CPU飙高等;

北京利联 2019.10 ~ 2022.1

公司主要为金融行业提供计算机软件服务,在职期间主要负责建设验印系统和票据影像交换系统。

项目一:盛京银行-票据影像交换系统

简介:票据影像交换系统,即交换银行与银行之间的凭证对其进行验印。盛京银行-票据影像交换系统,基于旧系统改造。

技术栈:Springboot、Netty、Springcloud alibaba、 Nacos、Mybatisplus、Redis

工作职责:

  1. 负责系统技术架构改造

    • 技术架构从原始的spring升级到springboot架构,通过自身内嵌的tomcat容器运行,基于CI/CD,可快速完成应用编译、打包、部署,提升研发交付效率;
    • 使用Netty作为服务方,与其他系统进行交互,利用NIO提高了系统交互速度;
    • 将 Nacos 作为配置中心整合到项目中,使其配置支持热部署,方便管理,同时为项目拆分转微服务奠定基础;
  2. 负责核心功能模块设计与开发

    • 使用模版、策略设计模式对接第三方系统(支付系统、柜面系统、影像平台系统等),提高代码的可读性和扩展性;
    • 负责对接盛京银行单点登录系统,通过Redis解决了Session不共享的问题;
    • 利用Spring AOP整合了一些公共方法,如记录日志,公共校验,敏感词过滤等,提高了代码的复用性,增强了代码的可维护性;
  3. 负责生产疑难问题优化

    • 重构旧系统不规范代码及查询报表统计导出,通过执行计划,判断索引是否命中来优化SQL,提升了近5倍程序运行速度;
    • 将导出excel主要步骤由后端迁移到前端,解决了导出报表数据量较大问题,导出速度提升10倍以上;

项目二:贵州银行-电子验印系统

简介:电子验印系统,即通过该程序可以核对凭证上印章与银行预留印章是否匹配。贵州银行-新电子验印系统,基于验印系统原型进行改造,推翻原型所有代码进行重建。新电子验印系统采用前后端分离设计,将前端部分集成到客户端中;后端基于Spring Boot等主流框架进行开发,前端基于Vue.js进行开发,采用分布式部署。

技术栈:Springboot、Springcloud、Redis、Kafka、Mybatisplus、Vue、Hystrix

工作职责:

  1. 负责核心功能模块设计与开发

    • 独立开发电子验印后台管理系统,采用前后端分离架构,使用Vue、Element UI构建前端,为适应产品特性,加快迭代速度,后端采用Spring Cloud分布式架构,使用devops集中式配置管理,提高了接近1倍的开发效率;
    • 使用Kafka异步解耦机制对接第三方接口功能开发(柜面接口服务等)、外系统对接(集中作业系统,影像平台系统,银企对账系统等)提高了程序的响应速度,保证了数据最终一致性;
  2. 负责生产疑难问题排查与优化处理

    • 优化数据批量入库。通过开启allowMultiQueries=true&rewriteBatchedStatements=true参数配置,通过mybatis的foreach标签批量插入或更新数据,提升批量写库性能;
    • kafka消息积压优化。通过扩kafka分区,从之前的4分区扩到8分区;日志保留时间从1个月到2天;调整文件刷盘策略:写入10000条消息或间隔2s,刷数据到磁盘;同步提交改为异步提交;
    • 优化同步文件程序。利用Java多线程技术,将大文件拆分成小块,并通过多线程同时处理这些小块,充分利用多核处理器的并行性,同时传输多个文件,避免了传统单线程传输时的等待阻塞,从而最大程度地减少文件传输的总耗时;
    • 优化查询高频信息速度。在系统启动时,通过预热将一些热门数据加载到内存中,减少冷启动时的性能影响;
  3. 负责项目上线及部署

    • 采用Nginx和devops进行前端部署和反向代理增强了软件系统的安全性;
    • 为提升开发效率,接入Gitlab CI/CD进行持续集成和持续部署,实现了构建部署自动化;
    • 独立使用linux命令进行测试环境、生产环境故障排查、程序部署、及数据迁移;

教育经历

  • 2017.09 ~ 2020.06 就读于河北软件学院 专业为软件技术 学历为专科
  • 2021.03 ~ 2023.07 就读于辽宁工程技术大学 专业为计算机科学与技术 学历为本科
发表评论