分布式
文章平均质量分 86
wanghang96
这个作者很懒,什么都没留下…
展开
-
性能提升利器——缓存
一、概述在用户请求的整个链路上处处都能见到缓存的身影。客户端浏览器有缓存,前端CDN静态资源有缓存,后台服务有本地缓存和分布式缓存,数据库有查询缓存,操作系统对磁盘数据有页缓存,CPU对内存数据有高速缓存。如果从源头去获取一个东西代价比较高,那么把它搬到一个更容易获取的地方,之后从这个地方获取更高效,这是缓存解决问题的本质。二、数据一致性缓存有像反范式化数据库设计一样的问题:重复数据,有多个地方需要更新数据,所以要保证数据一致性,避免脏读。写时更新在更新原始数据的同时更新缓存,下次访问的缓存数据就原创 2021-01-21 09:59:51 · 180 阅读 · 0 评论 -
常见限流方案
一、概述当系统的访问量增大的时候,一般会往这么几个方向上去优化:缓存,扩容,降级,限流。这里将聊一聊限流,限流其实可以看做是服务降级的一种实现。当请求超过系统的负载后,多余的请求做降级处理,怎么降级呢?就是限流,直接快速失败,不进行业务处理。现实生活中也有这种思想,比如高速公路车流量很大的时候,会将高速公路入口关闭,或者每隔一段时间放行一定的车辆,防止大量车辆进入给交通带来更大的压力,这就是一种限流的思想。二、固定窗口三、滑动窗口四、漏桶算法五、令牌桶算法六、漏斗算法七、RateLimiter原创 2020-12-03 20:43:30 · 1416 阅读 · 0 评论 -
分布式ID生成策略
一、概述当数据达到一定规模,单个Mysql服务器无法容纳时就需要做数据分片,这时候插入数据就能不再使用Mysql自增主键了。分布式ID就是生成一个全局的唯一ID,可以解决数据分片唯一ID的问题。二、需要三、UUIDUUID是唯一的,可以直接本地生成,性能高,不用专门的分布式ID服务,没有网络开销。但是UUID是16字节的,而且无序,对于Innodb引擎来讲,并不适合作为表的主键。四、Redis通过Redis的原子自增方法可以实现分布式ID,但是需要注意开启AOF持久化,并且每次执行指令都要持久化原创 2020-10-29 08:23:23 · 278 阅读 · 0 评论