技术深度:
具备扎实的Java基础,深入理解操作系统与虚拟机底层,CPU缓存一致性协议MESI,Synchronized关键字,深入理解JVM底层原理,JMM内存模型,内存屏障,垃圾回收机制,GC算法,熟悉JVM各种垃圾回收器的使用以及核心参数调优。深入理解Tomcat整体架构和处理请求流程,长连接的底层源码原理,底层分块传输和响应流程原理,NIO处理请求源码等性能优化相关技术。
深入理解同步器AQS阻塞队列BlockingQueue,CountDownLatch&Semaphore应用与原理,Executor线程池原理与源码,Future&ForkJoin框架原理,无锁并发框架Disruptor等并发编程相关技术。对于各种高性能IO通信模型以及Netty底层数据交互源码,理解NIO与Netty线程模型有过深入研究,深入Hotspot源码与Linux内核,熟悉百万级并发服务器架构的设计。
深入理解Redis:I/O 多路复用,各版本之间的区别,简单字符串,链表,字典,跳跃表,整数集合,压缩列表,回收机制,线程模型,分布式寻址算法,过期策略,数据一致性,多级缓存架构,热点数据缓存,并发竞争,哨兵模式,主从复制,集群模式等。具有集群架构及高可用相关经验,熟悉各种缓存高并发的使用场景,如:热点缓存重构,缓存雪崩, 缓存穿透,缓存失效。
深入理解MySQL:SQL的执行流程,传播行为,锁与事务隔离级别,MVCC与BufferPool缓存机制,索引数据结构,B+ tree索引特点以及数据库事务的隔离级别,传播行为,数据库死锁,数据迁移,分库分表,读写分离,主从复制,灾难备份。
深入理解ElasticSearch:核心语法,具备集群高可用实战经验,集群架构原理与搜索技术深入,底层原理与分组聚合查询,Java API整合ElasticSearch以及Logstash、FileBeat使用等。深入理解MongoDB:基本原理,聚合操作及索引底层原理,集群模式及应用实战。深入理解Zookeeper:特性与节点数据类型,典型使用场景,选举Leader源码,集群ZAB协议与Watcher监听机制源码等。
深入理解RabbitMQ,RockerMQ,Kafka消息中间件的核心概念,解决过各种消息通讯场景的疑难问题。如:延迟队列,消息可靠投递,高可用,消息的幂等性,消息丢失,消息的顺序性,消息的延迟,消息过期失效,消息队列满了等问题。
深入理解Spring,Spring MVC,Mybatis,Spring Boot,Spring Could,Dubbo等开源框架的设计原理以及底层架构,研究过部分核心源码,如:Spring循环依赖源码,Spring启动过程源码,事务源码,Bean生命周期源码,Ioc容器加载过程源码,AOP源码,SpringMvc执行流程源码,MyBatis的数据过操作过程源码,SQL操作执行流程源码,配置文件解析源码,Spring Boot自动装配核心源码,Alibaba Nacos注册中心源码,Sentinel规则持久化实战及其源码,分布式事务组件Seata内核源码,Dubbo服务引入与导出以及调用源码等。
具备服务器环境搭建,生产环境服务器变慢诊断,线上排查,性能评估,Linux常用命令,Docker容器化,Jenkins自动化部署,GitLab私有仓库,k8s云原生,Skywalking分布式追踪系统,Spring Security Oauth2权限框架,Swagger在线文档,Gateway和Kong网关,i18n国际化,页面模板引擎,Nginx负载均衡,Alibaba Nacos注册中心等后端相关技术。
具备 0-1搭建微服务、高可用、高并发、分布式项目架构。具备产品需求讨论,任务分配,Code审查, 负责指导、培训普通开发工程师,审核开发工程师的功能设计与Coding质量等经验。具备项目管理、需求分析、开发文档、部署文档、功能设计等基本的文档输出能力。