分布式
文章平均质量分 95
分布式锁、分布式事务、分布式缓存、分布式全局唯一ID...
wuychn
这个作者很懒,什么都没留下…
展开
-
【分布式事务】分布式事务
一、什么是分布式事务分布式事务就是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。简单的说,就是一次大的操作由不同的小操作组成,这些小的操作分布在不同的服务器上,且属于不同的应用,分布式事务需要保证这些小操作要么全部成功,要么全部失败。本质上来说,分布式事务就是为了保证不同数据存储的数据一致性。二、分布式事务产生的原因2.1 数据库分别库分表当数据库单表一年产生的数据超过1000W,那么就要考虑分库分表。这时候,如果一个操作既访问01库,又访原创 2021-04-25 11:36:21 · 9116 阅读 · 4 评论 -
【分布式缓存】缓存雪崩
一、什么是缓存雪崩当缓存服务器宕机或者在某一个时间段大量缓存集中失效,这时所有的请求都直接查询后端数据库,给数据库造成极大的压力甚至是宕机,从而引起应用服务器雪崩。二、缓存雪崩的解决方案对于缓存服务宕机造成的缓存雪崩,可以采用高可用的缓存架构,比如Redis哨兵或者Cluster。对于大量缓存同时失效造成的缓存雪崩,有以下解决方案:1、对缓存的过期时间加一个随机数可以在原有...原创 2019-03-27 18:00:51 · 204 阅读 · 0 评论 -
【分布式缓存】缓存穿透
缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时需要从数据库查询,查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到数据库去查询,造成缓存穿透。解决办法有缓存空对象和使用布隆过滤器。一、缓存空数据如果一个查询返回的数据为空(不管是数据不存在,还是系统故障),仍然把这个空结果进行缓存,但它的过期时间会很短,最长不超过五分钟。缓存空对象会有两个问题:第一,空值做了缓...原创 2019-03-27 18:20:53 · 187 阅读 · 0 评论 -
【分布式缓存】缓存击穿
缓存击穿,是指一个key非常热点,在不停的扛着大并发,大并发集中对这一个点进行访问,当这个key在失效的瞬间,持续的大并发就穿破缓存,直接请求数据库,就像在一个屏障上凿开了一个洞。缓存击穿和缓存雪崩有点类似,区别是缓存击穿针对的是某一个非常热点的key,这个key在某一时刻失效造成所有请求都访问数据库;缓存雪崩是针对一系列缓存同时失效,造成大量请求访问数据库造成雪崩。缓存击穿也可以使用加锁...原创 2019-03-27 18:43:22 · 177 阅读 · 0 评论 -
【分布式缓存】缓存并发
在高并发下,缓存失效会出现多个线程(进程)同时查询DB,同时设置缓存的情况,这可能造成 DB 压力过大,还有缓存频繁更新的问题。可以使用锁(分布式锁)来控制同时只有一个线程(进程)查询数据库,其他线程(进程)等待。...原创 2019-05-10 17:14:18 · 228 阅读 · 0 评论 -
【分布式缓存】缓存预热
缓存预热就是系统上线后,提前将相关的缓存数据加载到缓存系统。避免在用户请求的时候,先查询数据库,然后再将数据缓存的问题,用户直接查询事先被预热的缓存数据。缓存预热解决方案:直接写个缓存刷新页面,上线时手工操作下;数据量不大,可以在项目启动的时候自动进行加载;定时刷新缓存。...原创 2019-05-14 14:32:26 · 1959 阅读 · 0 评论 -
【分布式缓存】数据库和缓存双写的一致性问题
首先说明,数据库与缓存双写不可能做到强一致性,只能做到最终一致性。如果项目要求是强一致性的,那么不能使用缓存。https://www.cnblogs.com/rjzheng/p/9041659.html...原创 2020-02-29 14:49:00 · 363 阅读 · 0 评论