个人简历内容

2023-09-20 22:43:20

简历

个人信息

专业技能

熟悉Java基础,如集合、代理、反射等。了解Java多线程,了解JVM内存模型、常见GC算法、类加载机制。·
#熟悉SSM + Spring Boot 框架,熟悉AOP、IOC和Spring Boot自动配置原理,了解 Spring MVC 执行流程。
熟悉MySQL数据库,熟悉InnoDB 存储引擎、事务、MVCC 机制。了解常用的性能优化方法。
#熟悉Redis 数据库,熟悉 Redis 常用数据结构、持久化机制,了解如何解决缓存击穿、缓存穿透、缓存雪崩问题·
熟悉Elastic Stack,能使用 ES 实现分词搜索,使用 Kibana 进行开发调试,使用 Logstash 实现实时数据同步。
熟悉并实践过多种设计模式,比如抽象工厂模式、模板方法模式、策略模式、代理模式、适配器模式等。
#实践过Spring Cloud Gateway 网关技术,实现动态路由、权限管理、流量染色、限流等功能。
实践过DubboRPC+Nacos框架,实现不同系统之间的高性能接口调用
#实践过Docker容器化技术(搭建 Redis 集群、HDFS 集群并测试存储效果),熟悉 Docker 常用指令和操作
了解HDFS、MongoDB、HBase 等分布式数据库,实践过 Hadoop、Spark 等大数据计算系统。
熟练掌握Java基础知识、集合、并发等内容;了解JVM,包括内存模型、垃圾回收算法、类加载过程、双亲委派机制;了解synchronized锁机制;了解常用数据结构,如栈,队列,二叉树等;
#熟练练使用Spring、SpringMVC、SpringBoot、Mybatis、Mybatis-Plus等常用开发框架;熟悉Spring的IOC思想,以及DI、AOP、动态代理、Bean生命周期、SpringMVC和SpringBoot执行流程;
熟悉MySQL数据库,熟悉事务、锁、索引等相关知识
#熟悉Redis的常用数据结构和常见应用场景,如缓存穿透、缓存雪崩、缓存击穿等知识以及Redis持久化、主从、哨兵模式、内存淘汰策略等知识,
#熟悉Docker常用命令,用过Dockerfile部署过项目;了解Linux常用命令;了解Git,能够使用Git进行团队开发
#熟悉SpringCloud微服务组件的基本使用,如Nacos、Eureka、Feign、Sentinel等;
#熟悉RabbitMQ整合SpringBoot的基本使用,熟悉SpringCloudGateway作为网关的基本使用,有实际项目的运用;
了解ElasticSearch的基本使用

实习经验

项目经历

项目名-java后端 项目地址 2023.06 -2023.08(最新)

负责工作

**项目介绍: **:一款多模块、分布式的API接口开放调用平台!管理员可以接入并发布接口,可视化各接口调用情况;用户可以开通接口调用权限、浏览接口及在线调试,并通过客户端 SDK轻松调用接口。

**技术栈 : **Spring Boot + Mybatis-plus + Dubbo + Gateway

  • 使用Maven多模块依赖管理技术,将整个项目后端分为web系统、模拟接口、公共模块、客户端SDK、API网关
  • 使用Spring Boot+ Mybatis-plus构建web系统,对用户和接口信息进行管理。使用AOP+ 接口编程实现权限管理,接口设计遵循RESTful风格,设计DTO、VO实体便于前后端分离开发。
  • 使用MD5加密技术设计出API签名认证算法,为用户分配唯一的ak、sk密钥用于调用接口时鉴权,保障调用的安全性,可溯源性
  • 使用 Spring Cloud Gateway 作为API网关,实现了路由转发、访问控制、流量染色,并集中处理签名校验、请求参数校验、接口调用统计等业务逻辑,提高安全性的同时、便于系统开发维护。
  • 使用Spring Boot Start+Hutool开发客户端SDK,利用Spring Boot自动配置使用户能通过一行代码调用接口,极大提高用户使用体验。
  • 使用Dubbo RPC + Nacos框架实现子系统间的高性能接口调用,大幅减少重复代码,

项目名-java后端 2023.03 -2023.05

**项目介绍:**本项目是基于Vue+SpringBoot+Dubbo+SpringCloudGateway+Redis+MybatisPlus开发的提供接口供用户调用的平台。管理员可以接入并发布接口,统计分析各个接口的情况,发布卡密等操作。用户可以注册登录并使用平台提供的密钥进行接口的开通,然后可以浏览接口和在线调用

  • 使用SpringCloudGateway作为API网关,实现路由转发、访问控制、流量染色等功能
  • 为防止接口被恶意调用,设计并使用API签名算法,为用户分配accessKey/secretKey以鉴权,保障调用安全性
  • 为了提高性能,本项目多处使用redis各种数据结构进行缓存。并且在查看接口业务中解决缓存穿透和缓存击穿问题,避免用户恶意调用带来的系统故障
  • 为了解决多实例模式下和单机模式下关于接口充值功能的多线程并发问题,使用手写分布式锁和ReentrantLock进行加锁
  • 抽象模型层和业务层代码为公共模块,使用Dubbo RPC框架实现子系统的高性能调用
  • 使用线程池提交任务对订单业务进行异步处理,提高系统业务效率(实测在QPS达到100的情况下,相较于同步处理,系统性能提升36%);同时使用RabbitMQ的延迟队列对订单超时15分钟的状态处理,在多实例且订单量大的情况下(同时有50个订单需要处理)比@Secheduled的效率高31%左右,优化了性能
项目介绍:基于 Spring Boot + Redis的店铺点评 APP,实现了找店铺=>写点评=>看热评=>点赞关注=>关注Feed 流的完整业务流程。
主要工作:
1.短信登录:使用Redis实现分布式 Session,解
决集群间登录态同步问题;使用Hash代替
String 来存储用户信息,节约了xx%的内存并便于单字段的修改。(需要自己实际测试对比数据,节省内存的原因是不用保存序列化对象信息或者JSON的一些额外字符串)
2.店铺查询:使用Redis对高频访问店铺进行缓存,降低 DB 压力同时提升90%的数据查询性能。
3.为方便其他业务后续使用缓存,使用泛型+函数式编程实现了通用缓存访问静态方法,并解决了缓存雪崩、缓存穿透等问题。
4.使用常量类全局管理Redis Key前缀、TTL等,保证了键空间的业务隔离,减少冲突。
5.使用 Redis的Geo+Hash 数据结构分类存储附近商户,并使用Geo Search命令实现高性能商户查询及按距离排序。
6.使用Redis List 数据结构存储用户点赞信息,并基于ZSet 实现TopN点赞排行,实测相对于DB 查询性能提升xx%。(需要自己实际测试对比数据)
7.使用Redis Set 数据结构实现用户关注、共同关注功能(交集),实测相对于DB查询性能提升xx%。(需要自己实际测试对比数据)
8.使用Redis BitMap实现用户连续签到统计功能,相对于传统关系库存储,节约xx%的内存并提升xx%的查询性能。(需要自己实际测试对比数据)
9.在系统用户量不大的前提下,基于推模式实现关注Feed流,保证了新点评消息的及时可达,并减少用户访问的等待时间。
10.优惠券秒杀:使用 Redis +Lua脚本实现库存预检,并通过Stream队列实现订单的异步创建,解决了超卖问题、实现一人一单。实现相比传统数据库,秒杀性能提高了xx%。(需要自己实际测试对比数据)
1.为集中处理系统异常,自定义统一的错误码,并封装了全局异常处理器,屏蔽了项目冗余的报错细节、便于接口调用方理解和统一处理。
2.基于静态ThreadLocal封装了线程隔离的全局上下文对象,便于在请求内部存取用户信息,减少用户远程查询次数。
3.为兼容请求参数date 类型的序列化,自定义Jackson 对象映射器处理日期;并扩展SpringMVC的消息转换器,实现自动序列化。
4.自定义 MyBatis Plus 的MetaObjectHandler,配合全局上下文实现写数据前的创建时间、用户id字段的自动填充。
5.遵循 Restful 设计规范编写接口,降低前后端接口沟通和理解成本。
6.为解决原生 Jdk序列化器导致的缓存 key 值乱码问题,自定义 RedisTemplate Bean 的RedisKey 序列化器为 StringRedisSerializer。
7.使用Knife4j+Swagger 自动生成后端接口文档,并通过编写 ApiOperation等注解补充接口注释,避免了人工编写维护文档的麻烦。
8.为省去重复编写用户校验的麻烦,基于WebFilter 实现全局登录校验;并通过AntPathMatcher 来匹配动态请求路径,实现灵活的可选鉴权。
9.为保证数据的完整性和一致性,使用@Transactional实现数据库事务,并配置rollbackFor = Exception.class 来支持受检异常的事务回滚。
10.为提高XX信息页加载速度,基于 SpringCache 注解+ Redis 实现对 XX信息的自动缓存,大幅降低数据库压力的同时将接口响应耗时由0.8s减少至50ms(数值自己再测一下)
11.为降低开发成本,使用MyBatis Plus 框架自动生成业务的增删改查重复代码,并使用LambdaQueryWrapper 实现更灵活地自定义查询。
12.为降低用户注册成本、保证用户真实性,二次封装XX云SDK接入短信服务,并通过Redis来集中缓存验证码,防止单手机号的重复发送。
13.为提高数据库整体读写性能,配置MySQL主从同步,并使用sharding-jdbc实现业务无侵入的读写分离。
14.封装全局 Axios请求实例,添加全局请求拦截和全局异常响应处理器,减少重复的状态码判断、提升项目可维护性。

获奖技能/证书(荣誉奖项)

**竞赛奖项: **第十四届蓝桥杯Java软件开发大学B组二等奖

**证书: **软件设计师中级 CET-4

​ 时间

个人评价

1.有较强的文档阅读能力,曾阅读 Spring CloudAlibaba 等官方文档自主学习,并能够运用到项目中。

2.有较强的问题解决能力,能够利用GitHub Issues区、AI工具、搜索引擎、Stack Overflow等自主解决问题

自学能力强,有看官方文档学习的能力,曾自主阅读Dubbo官方文档完成项目的需求
具有解决问题的能力,如xxx项目的业务bug都是由自己个人解决

更多推荐

走近ChatGPT与类似产品:原理解析与比较

目录1.引言1.1技术的进步与自然语言处理1.2ChatGPT的崭新概念2.ChatGPT:一览众山小2.1GPT-3.5架构简介2.2ChatGPT的学习与训练2.3文本生成的工作原理3.市场上类似产品调研3.1对话式人工智能产品分类3.2文心一言3.3讯飞星火4.应用前景与局限性展望4.1ChatGPT的未来应用场

【学习笔记】多模态综述

多模态综述前言1.CLIP&ViLT2.ALBEF3.VLMO4.BLIP5.CoCa6.BeiTv3总结参考链接前言本篇学习笔记虽然是多模态综述,本质上是对ViLT后多模态模型的总结,时间线为2021年至2022年,在这两年,多模态领域的模型也是卷的飞起,不断刷新领域的SOTA。在模型结构和数据上提出了很多高效有用的

【数据结构】图的遍历:广度优先(BFS),深度优先(DFS)

目录1、广度优先(BFS)算法思想广度优先生成树知识树代码实现2、深度优先(DFS)算法思想深度优先生成树知识树代码实现1、广度优先(BFS)算法思想图的广度优先遍历(BFS)是一种遍历图的算法,其思想是从起始顶点开始遍历图,先访问起始顶点的所有直接邻居,然后遍历这些邻居的直接邻居,以此类推,直到遍历完整个图。BFS算

竞赛选题 基于机器视觉的二维码识别检测 - opencv 二维码 识别检测 机器视觉

文章目录0简介1二维码检测2算法实现流程3特征提取4特征分类5后处理6代码实现5最后0简介🔥优质竞赛项目系列,今天要分享的是基于机器学习的二维码识别检测-opencv二维码识别检测机器视觉该项目较为新颖,适合作为竞赛课题方向,学长非常推荐!🧿更多资料,项目分享:https://gitee.com/dancheng-

基于Android+OpenCV+CNN+Keras的智能手语数字实时翻译——深度学习算法应用(含Python、ipynb工程源码)+数据集(四)

目录前言总体设计系统整体结构图系统流程图运行环境模块实现1.数据预处理2.数据增强3.模型构建4.模型训练及保存5.模型评估6.模型测试1)权限注册2)模型导入3)总体模型构建4)处理视频中的预览帧数据5)处理图片数据6)多页面设置7)布局文件代码相关其它博客工程源代码下载其它资料下载前言本项目依赖于Keras深度学习

【操作系统笔记】任务调度&信号处理&CPU上下文

任务调度何时需要调度执行一个任务?第一:当任务创建的时候,需要决定是继续执行父进程,还是调度执行子进程第二:在一个任务退出时,需要做出调度决策,需要从TASK_RUNNING状态的所有任务中选择一个任务来执行第三:当一个任务阻塞在I/O上,或者因为其他原因阻塞,必须调度另一个任务执行第四:在一个I/O中断发生时,必须做

Docker网络学习

文章目录Docker容器网络1.Docker为什么需要网络管理2.Docker网络简介3.常见的网络类型4.docker网络管理命令5.两种网络加入差异6.网络讲解dockerBridge网络dockerHost网络dockerContainer网络dockernone网络Docker容器网络1.Docker为什么需要

Redis 面霸篇:从高频问题透视核心原理

Redis为什么这么快?很多人只知道是K/VNoSQl内存数据库,单线程……这都是没有全面理解Redis导致无法继续深问下去。这个问题是基础摸底,我们可以从Redis不同数据类型底层的数据结构实现、完全基于内存、IO多路复用网络模型、线程模型、渐进式rehash…...到底有多快?我们可以先说到底有多快,根据官方数据,

设计模式解析之模板方法模式:设计灵活可扩展的算法框架

目录1.引言2.概要2.1概念2.2结构2.3类图2.4工作流程3.应用场景3.1适用情况:3.2常见例子:4.代码衍化过程初版:甲乙学生都抄试卷第二版:提炼代码第三版:抽象出算法骨架第四版:模板方法变化过程总结及未来展望5.总结1.引言在软件开发中,设计和实现算法是一项常见的任务。然而,随着需求的变化和代码的增长,算

十二、MySql的事务(下)

文章目录一、事务隔离级别(一)如何理解隔离性(二)隔离级别1.读未提交【ReadUncommitted】:2.读提交【ReadCommitted】:3.可重复读【RepeatableRead】:4.串行化【Serializable】:(三)查看与设置隔离性1.查看全局隔离级别2.查看会话(当前)全局隔离级别3.设置全局

C++ - AVL 树 介绍 和 实现 (上篇)

前言之前我介绍了二叉搜索树,可看一下博客:C++-搜索二叉树_chihiro1122的博客-CSDN博客二叉搜索树的效率可以达到O(logn)。这个复杂度的算法的效率是非常恐怖的,2的30次方大概是10亿左右。也就是说如果用暴力查找需要找10亿次,而最好的效率的二叉搜索树只用搜索30次。是非常恐怖的。为什么说是最好效率

热文推荐