java技术路线

1,681 阅读2分钟

前言

笔者经历了一段时间的学习,总结了高级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的包,怎么做到无感知升级

总结

作为一名牛逼的高级开发,需要对并发编程,系统调优,数据库,缓存,消息,架构设计等都有一个相对深刻的理解。 技术的路漫漫,吾辈将上下而求索。