目的都是 接收客户端请求然后从源服务器拿到响应内容返回给客户端
提示
不同点是 正向代理代理的是客户端而反向代理代理的是服务器端。
xml<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<binarywang.wx.version>4.6.0</binarywang.wx.version>
</properties>
<!-- https://mvnrepository.com/artifact/com.github.binarywang/weixin-java-miniapp -->
<dependency>
<groupId>com.github.binarywang</groupId>
<artifactId>weixin-java-miniapp</artifactId>
<version>${binarywang.wx.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.github.binarywang/weixin-java-mp -->
<dependency>
<groupId>com.github.binarywang</groupId>
<artifactId>weixin-java-mp</artifactId>
<version>${binarywang.wx.version}</version>
</dependency>
缓存穿透就是请求你缓存中不存在的数据从而请求直达数据库 也可能存在恶意攻击 比如请求id是-1 数据库中不存在大多数 空数据不会进行缓存 这样就会造成请求一直到数据库了,解决方法就是采用布隆过滤器直接过滤掉-1这种不会存在的请求返回空 亦或者把这些空数据也进行短时间的缓存。
缓存击穿 就是你的热点key(经常被读取的的数据缓存)失效了 大量的高并发请求打到数据库造成的负载升高,解决办法常用的就是设置永不过期key 然后新数据更新这个key还有就是加锁确保只有一个线程去请求数据库查数据更新缓存,还有一个缓存预热 系统启动之前进行热点数据优先缓存
缓存雪崩和击穿有点相似就是key失效 只不过这个是大面积的同时失效 应对方法就是避免key设置统一时间过期然后缓存定期持久化确保缓存快速恢复
写个小脚本刷爆钓鱼网站
玩游戏突然有人加你说要买你的游戏账号诱使你去钓鱼网站注册账号上架你的账号,殊不知会被钓鱼