Java基础
- 多线程:创建与使用、线程同步与锁、线程池等的掌握
- JVM:你只有深入理解虚拟机的内存回收机制,才能正确使用JVM性能调优
- 掌握NIO,以及对应NIO框架Netty
- Java并发包(java.util.concurrent)下的工具包:AtomicInteger等原子操作类,基于AQS锁:
- ReentrantLock
- Semaphore
- CountDownLatch
- ReentrantReadWriteLock
- SynchronousQueue
- FutureTask
数据结构与算法
- 常见的数据结构:数组、链表、堆与栈、哈希表等
- 算法思想:递推、穷举、贪心等
- 经典排序算法:排序、查找
常用的设计模式
- 创建型:工厂方法、抽象工厂、单例模式
- 结构型:装饰模式、外观模式、组合模式
- 行为模式:策略模式、观察者模式
- 软件设计原则:接口隔离、单一职责等原则
开发框架
- 分库分表框架:tddl、cobar、mycat的选型与使用
- 服务化:Dubbo、gRPC、Spring Cloud、Spring Cloud alibaba(阿里基于Spring Cloud开源实现,微服务架构推荐使用)
- 负载均衡:LVS、Nginx、HAProxy
- 缓存:Redis、Memcached
- 搜索与数据分析:Elasticsearch、ELK
- 消息队列:RabbitMQ、Kafka、RocketMQ
- 容器:docker、k8s
- 分布式注册中心:zookeeper、nacos(阿里开源推荐使用)、ETCD、Consul
- 高性能NIO网络通信框架 Netty
数据存储
- MySQL数据库更多是需要掌握事务、锁、索引、性能优化,以及如何配合NoSQL(mongodb\redis)选型使用。
- 分布式数据库的存储、查询
- 分布式事务
- 分布式全局ID设计
常用构建工具
- Maven/gradle 管理项目的构建、打包、测试、发布
- git/svn 源码版本管理
- Nexus 类库私服管理
- Jenkins 自动化部署工具
- SonarQube 代码质量检查工具
分布式架构
- 分布式锁
- 分布式事务
- 分布式数据存储,全局唯一ID实现
- 分布式架构的数据一性性、可用性、容错易用性(CAP),在CAP中只能满足CP或AP原则的理解及实施;
- 海量数据迁移技术;
- 服务熔断、限流、降级
- 服务发现与治理
- 服务的负载
- 服务的网关
- 服务的安全
Linux常用功能
find、grep、ps、cp、move、tar、head、tail、netstat、lsof、tree、wget、curl、ping、ssh、echo、free、top
性能调优
- JVM性能调优
- Mysql性能调优
- Tomcat性能调优
- Nginx 性能调优
- redis 性能调优
- elasticsearch 性能调优
网络安全
- XSS
- XSS的防御
- CSRF
- 注入攻击
- SQL注入
- XML注入
- CRLF注入
- 文件上传漏洞
- 加密与解密
- 对称加密
- 非对称加密
- 哈希算法
- 加盐哈希算法
- 加密算法(MD5,SHA1、DES、AES、RSA、DSA)
- 彩虹表
- DDOS攻击
- DOS攻击
- DDOS攻击
memcached为什么可以导致DDos攻击
- 什么是反射型DDoS
如何通过Hash碰撞进行DOS攻击 - SSL、TLS,HTTPS
- 脱库、洗库、撞库