写点什么

【第五周】技术选型(一)

用户头像
云龙
关注
发布于: 2020 年 10 月 25 日
  • 分布式缓存架构


  • 缓存

  • 介于数据访问者和数据源之间的高速存储,当数据需要多次读取的时候,用于加快读取的速度。

  • 缓存(cache)和缓冲(buffer)的分别:

  • Buffer(缓冲区)是系统两端处理速度平衡(从长时间尺度上看)时使用的。它的引入是为了减小短期内突发 I/O 的影响,起到流量整形的作用。比如生产者——消费者问题,他们产生和消耗资源的速度大体接近,加一个 buffer 可以抵消掉资源刚产生/消耗时的突然变化。

  • Cache(缓存)则是系统两端处理速度不匹配时的一种折衷策略。因为 CPU 和 memory 之间的速度差异越来越大,所以人们充分利用数据的局部性(locality)特征,通过使用存储系统分级(memory hierarchy)的策略来减小这种差异带来的影响。

  • 缓存的应用场景举例:

  • CPU 缓存

  • 操作系统缓存

  • 数据库缓存

  • JVM 编译缓存

  • CDN 缓存

  • 代理和反向代理缓存

  • 前端缓存

  • 应用程序缓存

  • 分布式对象缓存

  • 缓存数据存储一般是以 Hash 表形式

  • 一致性 Hash: 简单来讲,一致性哈希比普通哈希表多做了一次哈希

  • 关键指标:

  • 命中率:

  • 主要指标:(实际应用的指导意义不大)

  • 缓存键集合大小

  • 缓存可使用内存空间

  • 缓存对象生命周期 TTL(Time To Live)

  • 通读缓存

  • 旁路缓存

  • 各种介质数据访问延迟

  • 技术栈各个层次的缓存

  • 合理适用缓存

  • 缓存适用的读写比在 2:1 以上才有意义

  • LRU, LFU, LRFU

  • 数据不一致与脏读

  • 缓存雪崩

  • 缓存预热

  • 缓存穿透

  • Redis VS Memcached

  • Redis 支持复杂的数据结构, 计算向数据迁移

  • Redis 支持多路复用异步 IO 高性能

  • Redis 支持竹筒复制高可用

  • Redis 原生集群与 share nothing 集群模式


消息队列与异步架构


  • 消息队列构建异步调用架构

  • 模型:

  • 点对点

  • 发布订阅

  • 优点:

  • 提升处理性能

  • 更好的伸缩性

  • 削峰填谷

  • 失败隔离和自我修复

  • 解耦

  • 事件驱动架构 EDA

  • 主要 MQ 产品:

  • RabbitMQ

  • RocketMQ

  • Kafka


负载均衡架构


  • 类型

  • HTTP 重定向负载均衡

  • DNS 负载均衡

  • 反向代理负载均衡

  • IP 负载均衡

  • 数据链路层负载均衡

  • 算法:

  • 轮询

  • 加权轮询

  • 随机

  • 最少连接

  • 源地址散列


用户头像

云龙

关注

还未添加个人签名 2018.03.30 加入

还未添加个人简介

评论

发布
暂无评论
【第五周】技术选型(一)