1. 目标为系统掌握:网络请求、集合、多线程、高并发、JVM、缓存、数据库、Springboot框架,以及高性能IO(Netty)、RPC(Dubbo)、分布式协调(Zookeeper)、消息队列(RabbitMq, Kafka)、MySQL Proxy、Cannal、Quartz、分布式事务(2PC, TCC, Mq, Seata) 等等
2. 具体内容:
1. nginx 反向代理,负载均衡,限流,集群
2. Spring Cloud, Gateway, Sentinel, Hystrix, zuul 网关层,路由,鉴权,限流
3. Redis: 缓存,数据结构,AOF, RDB, 主从,哨兵,集群,3主3从,LUA, 事务,watch
4. 消息队列:rabbitmq, kafka, 消息可靠性,持久性,幂等性,集群冗余,(解耦,异步,削峰)
5. 持久层,MyBatis, 一级缓存(mapper), 二级缓存(sqlSession),分页
6. 数据库,引擎,索引,事务,分库分表(mycat, sharding-jdbc), mysql表分区,并发锁,预编译
7. 事务:acid,本地事务,分布式事务(强一致性:2pc, tcc; 最终一致性:mq+本地消息表+定时扫表), 事务传播
8. 中间件:RPC: Dubbo, OpenFeign, gRPC,分布式协调:Zookeeper(CP), Nacos, etcd, Eureka(去中心AP,最终一致), Zookeeper(集群,选举,znode临时永久和有序无序,Watch机制,配置中心,注册中心,分布式锁) 限流(令牌桶),熔断隔离(线程池),异步编排(CompleteFuture), 降级
9. 分布式:CAP, BASE, 分布式一致性,分布式锁(db, redis, zookeeper), 分布式id(snowfake, uuid, db号段,redis, zookeeper)
10. 框架:Springboot: IOC, AOP, Bean,Cron和Schedule, Async异步,线程池,项目管理:Maven, Git 11. Java: 集合,线程安全集合,多线程并发,JUC, 线程池框架(Fork, ThreadPoolExecutor, ScheduledTPE, CountDown, Barrier)