前言
笔者经历了一段时间的学习,总结了高级java的一些知识点,这里做一个总结。
技术点
java
- 集合
- 锁
- 线程池
- 并发实战,项目中用到的多线程东西
- ThreadLocal用过没
- JVM内存模型,Happen-Before规则
- 类加载,SPI
- java性能调优,方法,经验等
- 设计模式
分布式
- Dubbo解决的问题
- RPC的原理,流程说明
- Dubbo线程池,拒绝策略
- 服务治理,限流,降级的实现,调用量统计算法
- 负载均衡,路由规则与算法
- Dubbo的超时机制
- 网路传输,Netty等,序列化与反序列化
- 分布式锁,乐观锁与悲观锁
- 分布式事务,异步消息事务,补偿事务等
MySQL
- MySQL系统模块,功能,引擎
- 日志,redoLog,undoLog,binlog,slowLog等
- 索引
- 锁,乐观锁悲观锁的使用
- 事务,原理本质上是解决多线程问题
- 调优经验,注意点
- 分库分表,扩容,路由规则定时生效
- 主从复制,主库从库,项目中有没有用到
Spring
- Spring解决的核心问题
- 看过源码吗
- IOC原理
- AOP原理
- 事务实现原理,多数据源,事务传播机制,怎么使事务失效
Redis
- 用到哪些类型
- 缓存和数据库中怎么查看,更新,删除操作
- 开源框架,redison,Jedis等
- Redis实现分布式锁
MQ
- 哪里用到的MQ,用到了那种MQ,怎么选型的,为什么不用kafka
- 消息顺序性、幂等性怎么保证
- MQ怎么保证的消息不丢失,重试机制
- MQ死信队列听过没
ES
- 哪些场景用到的?
- 聚集查询用过没
HBASE
- 哪里用到了
- rowkey是怎么设计的?为什么要反转sellerId
架构设计
- 高并发系统设计思路,系统模块分层,微服务划分规则
- 技术选型,性能还是业务的考虑
- 重构还是重写,怎么平滑迁移,怎么无感知,怎么做容灾
- 数据怎么迁移,批量,还是多线程,数据可以删除吗?怎么归档,怎么删除的
- 用到的中间件,分布式事务,分布式锁,定时调度
- 对接支付,消息,IM,Push系统等,对接方式Http,消息,还是Dubbo等
- 监控平台,治理平台,发布平台的对接
- 对外提供Client的包,怎么做到无感知升级
总结
作为一名牛逼的高级开发,需要对并发编程,系统调优,数据库,缓存,消息,架构设计等都有一个相对深刻的理解。 技术的路漫漫,吾辈将上下而求索。