具有扎实的Java基础,对面向对象编程有深刻的理解,熟练掌握多线程、锁(volatilte,synchronized,基于同步器AQS框架的Lock和CAS)、集合、反射、泛型、注解等基础开发技术。
◎ 深入理解JVM底层原理,熟悉JVM各种垃圾收集器(ParNew,CMS,G1等)的使用,以及核心参数的调优,有过一定JVM线上调优经验。
◎ 深入理解MySQL底层索引的数据结构(B+树),锁以及事务的隔离级别,熟悉MVCC与BufferPool缓存机制,有过一定MySQL线上调优经验。
◎ 深入理解Spring,Springmvc,Mybatis等开源框架的设计原理以及底层架构,研究过核心源码,具备一定的框架定制开发能力。
◎ 深入理解Zookeeper,Spring boot,Spring cloud Alibaba全家桶,Dubbo等开源框架的设计原理以及底层架构,研究过Leader选举,ZAB协议和Raft协议核心源码,具备一定的框架定制能力。
◎ 深入理解Redis线程模型,熟练掌握Redis核心数据结构的使用场景,熟悉各种缓存高并发的使用场景,如缓存穿透,缓存击穿(失效),缓存雪崩等,并且了解过redission分布式锁的底层源码。
◎ 熟悉常见消息中间件(RabbitMQ,RocketMQ,Kafka)的使用,研究过各种消息通信场景,比如消息丢失、消息重复消费、消息顺序性,消息积压的问题。
◎ 对于IO通信模型(BIO,NIO,AIO)以及相关开源框架Netty等源码有过研究,熟悉Netty线程模型。
◎ 对Linux服务器的基本命令操作比较熟悉,如开发端口,启动网络、防火墙服务,查询系统信息,操作文件夹和文件等操作。
基于SaaS医院物流供应链管理平台
项目时间:2020.06-2020.12
项目描述:该产品为医院物流供应链管理平台的业务拓展,具有更精细的管理业务与更严谨的业务流程,直接完全重构原本的SPD物流系统,以SpringCloud Alibaba微服务的框架作为主体架构,利用Spring boot构建应用,利用Nacos实现服务的注册与发现,利用OpenFeign实现接口与其他微服务系统进行交互,利用Ribbon实现客户端负载均衡,利用nginx实现服务端负载均衡,利用Sentinel实现熔断、限流和降级,主要微服务模块包含基础资料服务、订单服务、采购服务、库内服务、出库服务、库存服务、发票服务、结算服务、报表服务、权限服务、后台管理服务、邮件服务;同时与智能柜体终端和移动端进行对接,形成软硬件配套精益管理的基于SaaS的微服务架构模式。
项目职责:作为核心研发成员之一,负责产品初期的开发,规划代码分层。
1. 参与技术评审,参与基础业务流程讨论,输出微服务架构与研发方案;
2. 负责订单服务、采购服务的概要设计、详细设计文档编写及功能开发;
3. 引入Redis缓存支撑业务高峰期最高10W次/订单的写入操作;
4. 后期实施项目线上部署,生产环境JVM调优和MySQL调优。
主要技术:
架构:基于Spring Cloud Alibaba搭建的自主研发平台
任务调度:基于Netty线程模型的Dubbo协议
数据库:MySQL5.7为主数据库、MongoDB用于系统审计日志、Redis缓存数据
对外接口:基于HTTP协议的Rest请求
责任描述和亮点:
a) Web层采用SpringMVC框架(实现HandlerExceptionResolver接口),对于异常等信息进行统一封装处理;
b) 开发项目各个模块的需求,解决项目初期代码逻辑出现的并发的问题和bug问题,如脏读,脏写的问题;
c) 使用redisson分布式锁解决高并发请求幂等性问题和原子性问题;
d) 线上系统JVM的优化和MySQL优化,如JVM启动参数设置G1垃圾回收器,增加年轻代和方法区的内存大小等,添加联合索引,少用join,in和or;
e) 开发异步邮件发送功能,将邮件信息数据发送到RabbitMq中,然后通过异步线程调用邮件服务进行邮件发送;
f) 服务器生产环境的搭建与部署,包括微服务分布式系统,redis,nacos等
项目名称:自主开发线上商城项目
项目时间:2021.01-2021.06
项目描述:该项目是基于B2C电商模式的线上商城,采取的是前后端分离的架构设计,基于vue的后台管理系统,前端负责展示商品,出售商品,后端负责对商品,分类和品牌的增删改查,并对订单进行处理,对促销商品的处理和对权限的管理,以SpringCloud Alibaba微服务的框架为基础,以SpringCloud GateWay作为网关层对请求进行断言和过滤,以Nacos作为注册中心和配置中心进行服务治理,以Sentinel作为熔断保护来请求后台对应的微服务,主要微服务模块包含账号服务、会员服务、商品服务、订单服务、支付服务、通信服务、库存服务、积分服务、后台服务,还包含自己的ELK日志中心。
项目职责:作为核心研发成员,负责通过脚手架项目的开发和环境的搭建。
1. 通过GitHub下载商城微服务的脚手架,对系统进行开发;
2. 根据查找的资料编写订单服务、支付服务的详细设计文档及功能开发;
3. 通过视频学习技术开发需求,如SpringCloud Alibaba,redssion分布式锁等
4. 前期搭准备的环境,后期搭微服务。
主要技术:
架构:基于Spring Cloud Alibaba搭建的电商平台
任务调度:基于Netty线程模型的Dubbo协议
数据库:MySQL5.7为主数据库、Redis缓存热点Token、ELK记录日志和商品搜索
对外接口:基于HTTP协议的Rest请求
责任描述和亮点:
a) 通过Spring的@ControllerAdvice@ExceptionHandler注解实现异常统一处理;
b) 通过ElasticSearch实现商品搜索;
c) 工作难点,如通过使用redisson分布式锁去解决商品秒杀系统过多请求和由于网络出现幂等性问题,还有原子性问题和缓存失效问题;再比如通过缓存NULL加过期事件解决缓存穿透问题;
d) 电商项目JVM的优化和MySQL线上整体优化;
e) 利用Jmeter工具对其下单功能进行压测等;
f) 服务器生产环境的搭建与部署,包括jdk,maven,redis,nacos,elk等。