美文网首页
高并发架构修炼

高并发架构修炼

作者: 一枼落知天下 | 来源:发表于2019-07-26 15:35 被阅读0次
架构核心
缓存

redis缓存策略

数据存储策略:核心是,设计key
  key格式:数据对象名:数据对象ID:对象属性
例如:
  User:10086:password
  User:10086:username
  Sku:4396:info
  Spu:4396:info

分布式缓存一致性

1.hash 取模算法 
2.一致性Hash算法 
3.虚拟节点
PHP:[https://www.jb51.net/article/137523.htm](https://www.jb51.net/article/137523.htm)

redis常见的问题

1.缓存穿透
   正常访问下, 在某一时刻, 有个热点的key,在高并发访问之前,碰巧且突然失效咯,然后就打到db了!
   某一个热点key在高并发访问的情况下,突然失效,导致大量的请求打进mysql数据库的情况
   解决:排队,加锁,分布式锁
      
2.缓存击穿
  访问不存在的key,打击或攻击MySQL数据库;直接绕过redis缓存访问mysql而制造的DB请求压力!
  利用redis和mysql的机制(redis缓存一旦不存在,就直接访问数据库MySQL),直接绕过redis缓存访问mysql而制造的DB请求压力
  解决:
        可以将不存在的key的value设置为null或空值,
        布隆过滤器
3.缓存雪崩
    正常访问下,在某一时刻,缓存中很多key同时失效!
    缓存时,采用了相投的过期时间,导致缓存在某一时刻同时失效,导致的DB崩溃
    解决:
        设置不同的过期时间

redis分布式锁

http://ifeve.com/redis-lock/

1.使用redis的set px nx 命令进行实现
SET my_key my_value PX milliseconds  NX
2.如果redis中锁已经过期咯,然后锁过期的那个请求又执行完毕,回来删锁,删除咯其他线程的锁,怎么办?
 set key uuid(token) px 10000 nx   get key === uuid(token) 判断删除的是否为自己的锁
3.如果碰巧在查询redis锁还没删除的时候,正在网络传输时,锁过期了,怎么办?(lua)
if redis.call("get",KEYS[1]) == ARGV[1] then
    return redis.call("del",KEYS[1])
else
    return 0
end

详解三种缓存过期策略LFU,FIFO,LRU

1.FIFO(First In First out):先见先出,淘汰最先近来的页面,新进来的页面最迟被淘汰,完全符合队列。
2.LRU(Least recently used):最近最少使用,淘汰最近不使用的页面
3.LFU(Least frequently used): 最近使用次数最少, 淘汰使用次数最少的页面

Redis过期策略和LRU

Redis的缓存淘汰策略LRU与LFU

1.Redis缓存穿透,缓存击穿,缓存雪崩原因+解决方案
2.使用Redis创建分布式锁
3.分布式之Redis的三大衍生数据结构
4.有关 Redis 缓存的一些应用场景及踩过的坑

各种介质数据访问延迟 分布式消息
分布式数据库
1.分布式文件存储 :Nginx和FastDFS
    Hadoop、FastDFS、Ceph、NFS、GFS、MFS 
    
2.分布式数据库系统
    一个分布式数据库在逻辑上是一个统一的整体,
    在物理上则是分别存储在不同的物理节点上。
    一个应用程序通过网络的连接可以访问分布在不同地理位置的数据库。
    它的分布性表现在数据库中的数据不是存储在同一场地。
    更确切地讲,不存储在同一计算机的存储设备上。这就是与集中式数据库的区别。
    从用户的角度看,一个分布式数据库系统在逻辑上和集中式数据库系统一样,用户可以在任何一个场地执行全局应用。
    就好像那些数据是存储在同一台计算机上,有单个数据库管理系统(DBMS)管理一样,用户并没有什么感觉不一样
    分库分表分区,读写分离,我们先分表,再分库,最后分区
    
3.分布式缓存系统:
    1.一致性哈希算法 k/v 缓存服务器
    2.取模
微服务
微服务架构策略
需求
事件溯源
命令与查询职责隔离
高性能架构
软件代码性能优化
系统安全
分布式存储系统

百万级架构

模仿学习前辈们的宝贵结晶(站在巨人的肩膀上),加油创造属于自己的答案~~~

百度开源的分布式ID服务、美团的分布式唯一ID方案

相关文章

网友评论

      本文标题:高并发架构修炼

      本文链接:https://www.haomeiwen.com/subject/aaqdrctx.html