zoukankan      html  css  js  c++  java
  • 缓存,热点key

    热点Key问题的发现与解决

    https://help.aliyun.com/document_detail/67252.html

    缓存击穿、失效以及热点key问题

    https://www.jianshu.com/p/d5a3668d4dad

    2017双11技术揭秘—分布式缓存服务Tair的热点数据散列机制

     https://my.oschina.net/yunqi/blog/1596732

    • 缓存穿透
      • 解决:写空值,布隆过滤
    • 缓存并发
      • 解决:分布式锁,异步更新
    • 缓存雪崩
      • 解决:过期时间中增加随机时间片

    热点key的解决方案:

    • 客户端热点key缓存:将热点key对应value并缓存在客户端本地,并且设置一个失效时间。对于每次读请求,将首先检查key是否存在于本地缓存中,如果存在则直接返回,如果不存在再去访问分布式缓存的机器。
    • 将热点key分散为多个子key,然后存储到缓存集群的不同机器上,这些子key对应的value都和热点key是一样的。当通过热点key去查询数据时,通过某种hash算法随机选择一个子key,然后再去访问缓存机器,将热点分散到了多个子key上。

    架构中各节点的作用如下:

    • SLB层做负载均衡

    • Proxy层做读写分离自动路由

    • Master负责写请求

    • ReadOnly节点负责读请求

    • Replica节点和Master节点做高可用

    实际过程中Client将请求传到SLB,SLB又将其分发至多个Proxy内,通过Proxy对请求的识别,将其进行分类发送。例如,将同为Write的请求发送到Master模块内,而将Read的请求发送至ReadOnly模块。而模块中的只读节点可以进一步扩充,从而有效解决热点读的问题。读写分离同时具有可以灵活扩容读热点能力、可以存储大量热点Key、对客户端友好等优点。



  • 相关阅读:
    API协议
    执行聚合
    执行过滤
    执行查询
    介绍查询语言
    探索你的数据
    探索你的集群(翻译)
    es6.4基本概念(中文翻译)
    Python3.7.4安装
    elasticsearch常用请求
  • 原文地址:https://www.cnblogs.com/parkdifferent/p/10783700.html
Copyright © 2011-2022 走看看