● Java基础扎实,熟练掌握List、Map底层数据结构及原理,阅读过HashMap源码;
● 熟练掌握Jvm的内存模型,深入理解垃圾回收机制和垃圾回收过程,作为项目负责人解决OOM内存溢出问题;
● 精通Msyql的底层结构,包括索引、事务隔离级别、MVCC工作原理、存储引擎,有sql优化经验;
● 熟悉Redis,包括持久化策略、删除策略以及缓存一致性问题,使用分布式锁解决过幂等性问题;
● 熟悉常见悲观锁和乐观锁,并深入理解其底层原理及实现方式,有自旋锁使用经验;
● 熟练使用RocketMq发送与接收消息,在项目中主导RocketMq事务消息功能落地;
● 熟练使用SpringBoot、SpringCloud微服务开源框架,熟悉SpringAop、Ioc设计思想;
● 熟悉SpringCloudAlibaba生态,微服务架构,Rpc调用,服务注册治理,限流降级组件;
● 熟悉分布式事务,熟悉基于Seata设计的分布式事务解决方案;
● 熟练使用Elasticsearch,了解搜索引擎原理;
● 熟练使用Nginx,实现反向代理、负载均衡;
● 掌握MinIo服务器的文件上传、下载及部署等操作;
● 了解Linux操作系统的常用命令;
● 掌握Git、Maven、Postman、Nacos、Swagger、Vpn、Flowable、Jenkins、Loki、Xxl-Job等开发管理工具。
项目一: 浙江机场招标系统
技术环境:SpringCloud、SpringBoot、Nacos、Mysql、Redis、MyBatis-Plus 、Flowable、Feign、RocketMq、Loki、Xxl-Job、Jenkins
项目描述:
浙江机场招标系统是一个面向企业(B端)的大型在线招标平台,旨在帮助企业进行招标流程的管理和优化。该系统通过微服务架构实现,将核心功能拆成多个独立的服务,每个服务运行在独立的容器中,实现高度解耦和可伸缩性。
工作职责:
1,主导招标系统的系统设计和模块设计,统筹时间进度安排;
2,对计划模块、需求模块和招标模块进行拆分,使服务模块化、可独立部署,实现松耦合,可用性提升30%;
3,在参与项目技术选型的评估和讨论时,提出并使用Xxl-job定时任务和Flowable工作流技术来提升项目整体进度,引入消息中间件RocketMQ实现服务之间的解耦和削峰及解决使用过程中的消息丢失问题;
4,使用Redis缓存字典及Token等数据,减轻Mysql的压力;
5,因具有长期排查线上问题的经验,解决了网络抖动造成的幂等性问题及线程池任务堆积造成的OOM问题。
项目二: 智能评标系统
技术环境:SpringCloud、Nacos、Gateway、Jenkins、Mybatis、Mysql、Redis、Maven
项目描述:此系统是我司自行研发的一个产品,对接10+招标平台,评标效率提升40%。整个项目分为专家侧和项目经理侧,由项目经理设置评标步骤和规则,然后专家根据规则进行评定和打分
工作职责:
1,主导该项目的前期的准备工作,使用gateWay做网络统一鉴权,使用nacos做注册和配置中心;
2,开发人脸识别登录功能,对接第三方API接口;
3,与招标交易平台交互,通过RocketMq发送和接收评标澄清信息,解决开标数据获取异常问题;
4,设置word、excel模板,生成动态评标报告时间从30分钟缩短至5分钟。
项目三: 盈动充值系统
技术环境:SpringBoot、MyBatis-Plus、Redis、Nginx、RocketMq、OkHttp、MySql
项目描述:公司业务扩展对接话费充值运营商,需开发一套话费充值系统来扩展公司业务。系统由推单和配单两个项目组合使用,同时为第三方渠道商提供对接接口,其中推单系统用来对接话费渠道商,配单系统用来对接运营商。话费充值在月初和月末都有较大的单量,最高Tps300,峰值Qps1000,每月处理超500万比交易。
工作职责:
1,主导业务设计和数据库设计,解决项目过程中遇到的并发问题;
2,利用reentrantlock+自旋锁机制解决token重复刷新问题;
3,将项目中主干业务(渠道推单、商户回调)和核心业务(记账和失败重试)拆分成异步,提高了项目的并发量;
4,系统每月都会产生数百万的数据,因此每月进行数据归档操作可避免数据库性能极具下降。