1.Springboot 自动装配
EnableAutoConfiguration
只是一个简单地注解,自动装配核心功能的实现实际是通过 AutoConfigurationImportSelector
类。
第 2 步 :
用于获取EnableAutoConfiguration
注解中的 exclude
和 excludeName
@configGuration ->@import+comontScame
2. hashMap:
HashMap是非线程安全的,只是用于单线程环境下,多线程环境下可以采用concurrent并发包下的concurrentHashMap。
底层:动态数组,红黑树
3.线程池 七大核心
简单描述:当核心线程满了,队列也满了。启动最大线程数。如果最大线程也满了,启动 拒绝策略。线程全部都是 线程工厂创建
corePoolSize 线程池核心线程大小
maximumPoolSize 线程池最大线程数量
keepAliveTime 空闲线程存活时间
unit 空闲线程存活时间单位
workQueue 工作队列
threadFactory 线程工厂
handler 拒绝策略
4.redis
雪崩:
原因:大量Key 同时消失
解决:永不过期,集群,定时任务率先你缓存,简单说就是别让key过期
穿透:
原因:一个请求查找一个不存在的key,导致直接请求到数据库上
解决:存短期key,拉黑IP,验证参数
击穿:
原因:热点Key 失效,例如竞拍
解决: 不失效+互斥锁
redis 为啥速度快:
1.单线程(省上下文)+合理数据结构
2.采用非阻塞IO复用机制
3.定期+惰性+内存淘汰机制
5.GC: 计数器+不可达策略(从根上找GcRoot)
6.getWay:请求 路由对比
7.Nacos: 动态刷新 @refreshScope
8.消息队列
万级:actionMq+RabbiteMq
十万级:Rocketmq
百万级:kafka