wuxin0011`blog wuxin0011`blog
首页
  • 基础内容

    • HTML
    • CSS
    • JavaScript
  • 进阶

    • JavaScript教程
    • ES6 教程
    • Vue
    • React
    • Typescript
    • Git
  • 推荐阅读
  • java随笔
  • JVM (opens new window)
  • 分类
  • 标签
  • 归档
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
  • git使用
  • docker部署项目
  • 错误收集
  • github-start
  • background-color
  • live-server
  • tampermonkey-script (opens new window)
  • leetcode-tool (opens new window)
  • 网站
  • 前端
  • 后端
  • Github Topic (opens new window)
GitHub (opens new window)

wuxin0011

懂得越多,懂得越少
首页
  • 基础内容

    • HTML
    • CSS
    • JavaScript
  • 进阶

    • JavaScript教程
    • ES6 教程
    • Vue
    • React
    • Typescript
    • Git
  • 推荐阅读
  • java随笔
  • JVM (opens new window)
  • 分类
  • 标签
  • 归档
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
  • git使用
  • docker部署项目
  • 错误收集
  • github-start
  • background-color
  • live-server
  • tampermonkey-script (opens new window)
  • leetcode-tool (opens new window)
  • 网站
  • 前端
  • 后端
  • Github Topic (opens new window)
GitHub (opens new window)
  • 推荐阅读
  • Java

    • 常见集合总结
    • mybatis源码阅读
    • springboot启动原理
    • springcloud介绍
    • 分布式热点问题
      • Zookeeper介绍
      • RabbitMQ
      • tomcat源码阅读
      • 自定义输出内容颜色和背景
    • python

    • 后端
    • Java
    wuxin0011
    2023-04-24
    目录

    分布式热点问题

    # 缓存穿透

    原因 :同一时间大量请求访问缓存中不存在的数据,因为缓存中没有,所以大量请求直接进入数据库,但是数据库中也没有,导致一时间数据库请求量过大!

    处理办法:

    1. 布隆过滤器

      通过布隆过滤器,判断该数据库是不是数据库一定不存在的数据!然后保存在缓存中,下次 访问,对一定没有的数据直接返回

    2. 对于一定不存在的数据 设置一个过期时间,下次访问,如果获取到这个key的value ( 这个value 自己设置一个代表为查询结果为null 的 比如 "abcdeftfdafa90sfads89f08asdfa")

    # 缓存雪崩

    原因: 大量缓存的数据,同一时刻失效,同时大量请求也访问该数据,导致直接访问数据库。

    处理办法:

    1. 缓存的数据设置一个随机过期时间
    2. 使用熔断机制,添加一个保护机制
    3. redis 集群 或者 主从复制
    4. mysql 集群 或者 主从复制

    # 缓存击穿

    原因: 一个高热点数据,大量请求访问,比如访问量如果失效了,会出现大量数据库进入数据库进行 查询、修改操作

    处理办法

    1. 对于高热点数据,尽量设置较大的 过期时间 或者设置永不过期时间
    2. 使用互斥锁,大量请求进入,只有拿到了锁请的请求才能访问数据库 ( 分布式情况下使用分布式锁 )

    # 总结

    • 穿透 :都穿透了,掏空了,还是查不到。( 缓存->数据库->result == null )

    • 雪崩 : 发生了雪崩没有一片雪花是无辜的 ( 缓存大量失效 - > 压力给到了数据库,可能导致宕机 )

    • 击穿 :通过一个点,破!( 热点数据 -> 压力给到了数据库 )

    #

    编辑 (opens new window)
    #springcloud
    上次更新: 2024-05-21, 09:50:09
    springcloud介绍
    Zookeeper介绍

    ← springcloud介绍 Zookeeper介绍→

    最近更新
    01
    LeetCode刷题工具之本地对拍
    04-04
    02
    sublime对应语言模板使用技巧
    02-28
    03
    经典字符串匹配算法
    02-05
    更多文章>
    Theme by Vdoing | Copyright © 2020-2024 wuxin0011 | MIT License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式