陈旭
Java后端工程师
15年经验
2024-07-16
个人介绍:**计算机基础:** 扎实的数据结构与算法、计算计组成原理、操作系统、计算机网络;
**Java:**
- 基础扎实,有良好的编码规范习惯,与良好的面向对象的编程思想,深刻理解与应用集合容器、IO 流、异常机制,反射机制;JDK锁与CompletableFuture异步编排在项目中使用,单例、工厂、动态代理在项目熟练使用;
- 熟练掌握数据结构:数组、链表、树、图、散列表、栈、队列、堆;
**数据库:**
- 熟悉掌握 MySQL 数据库,对事务特性、事务的隔离存储引擎、索引、锁、MVCC、读写分离、垂直切分、水平切分(分库分表);动态数据源与Sharding-JDBC在项目中熟练使用,并在业务的需要使用 for update 与 lock in share mode 与version 做lock处理业务逻辑;
- 熟悉掌握非关系型数据库 Redis,对 Redis 的一主二从三哨兵、cluster 集群、Redis 做缓存、缓存穿透、缓存击穿、缓存雪崩等问题的解决有深刻理解;在项目中使用Redis做缓存与分布式锁;
**框架:**
- 熟悉掌握 Spring,对 ICO、DI、AOP、Bean 的生命周期、循环依赖问题等有深刻理解;熟练使用AOP在项目做统一权限处理与动态数据源业务逻辑处理;
- 熟悉掌握 Spring、SpringMVC、SprinBoot、MyBatis 等框架,可以通过需求快速搭建项目;在项目写过定制化的start;
**分布式:**
- 熟悉掌握PRC、分布式事务(Seata)、配置中心(Nacos)、分布式ID(UUID、SnowFlake)、消息队列(Kafka)、限流熔断(Sentinel)的使用;
- 熟悉使用 SpringCloudAlibaba 微服务解决方案,注册中心、配置中心 nacos,声明式远程调用 openfeign、负载均衡loadbancer(ribbon)、服务网关 gateway、断路器 sentinel;
- 消息队列 Kafka的消息可靠性、消息同步机制、幂等性问题、零拷贝等有深刻理解;
- 熟悉掌握分布式系统原理,分布式事务:2PC、3PC、TCC、最大努力提交、本地消息表、最终一致性;分布式锁:基于MySQL(唯一索引)、基于 Redi
项目经验:### IOT(物联网系统)
`SpringBoot` `Spring Security` `MySQL` `Redis` `Nginx` `Kafka` `分库分表` `WebScoket`
- **项目描述:**
本系统是一个实时监控液压机、计算相关数值的物联网系统。主要功能是通过后端来计算液压机相关指标数据,主要有指标警告、常量统计、告警通知等功能。
- **工作内容**:
- 通过在Java层面使用当前时间戳进行分库分表,优化实时采集的液压机实时指标千万级大表,单表数据量保持在百万级别。
- 设备管理模块的在线设备筛选,主要通过Redis缓存设备实时状态,快速筛选响应从4s降低到1s内。
- 首页数据统计页采用Redis 缓存,提高大量并发访问,网页的响应速度提高50%。
- 实时采集液压机数据,进行实时计算,聚合运算,通过WebSocket使用异步完成实时展示。
- 通过配置指标的最大最小值,完成实时指标警告计算并通知。
### SRM
`SpringCloudAlibaba` `SpringBoot` `Spring Security` `MySQL` `Redis` `异步编排` `分布式锁` `JPA`
- **项目描述:**
本系统是一个为采购人员设计的采购管理系统,主要是采购人员可以通过需求发起询价或者直接采购生成订单,并且在订单创建发货信息,流转到收货管理的一个流程。
- **工作内容:**
- 通过使用CompletableFuture优化询价发起审批接口,对获取用户信息、上传审批文件、修改需求状态等异步RPC调用进行编排,响应时间从5s降低到1s内。
- 建立MySQL唯一索引优化,采购订单查询接口,从响应时间4s降低到1s;
- 关联其他系统企业通过异步完成整个业务的优化。
- 对接第三方应用(钉钉、企业微信),通过第三方应用完成系统审批。
- 开发采购需求与订单没有在规定的时间完成,成为延期,对延期的数据进行颜色告警。
- 使用分布式锁完成采购需求的采购数量与状态的一致性。
技 能:
Java