- 博客(6)
- 收藏
- 关注
原创 Rocketmq领域模型概述
点对点模型和发布订阅模型各有优势,点对点模型更为简单,而发布订阅模型的扩展性更高。Apache RocketMQ 使用的传输模型为发布订阅模型,因此也具有发布订阅模型的特点。一对一通信:基于消费匿名特点,下游消费者即使有多个,但都没有自己独立的身份,因此共享队列中的消息,每一条消息都只会被唯一一个消费者处理。消费独立:相比队列模型的匿名消费方式,发布订阅模型中消费方都会具备的身份,一般叫做订阅组(订阅关系),不同订阅组之间相互独立不会相互影响。因此发布订阅模型可以实现一对多通信。
2025-02-11 19:24:54
214
原创 redis缓存击穿
缓存击穿是指在高并发场景下,当某些热点数据在缓存中失效或被删除时,多个请求同时访问这些数据,导致请求绕过缓存,直接访问数据库,给数据库带来很大的压力,甚至可能导致数据库崩溃。缓存击穿的主要原因是缓存中的数据失效,而没有及时更新或加载新的数据,多个请求并发地访问这些失效数据,从而对数据库造成过大的压力。:当缓存中的某个数据失效时,只有第一个请求会去查询数据库并更新缓存,其他请求则会等待缓存更新完成后再获取数据。:在数据库查询时,先检查缓存中是否有数据,如果没有,再加锁查询数据库并更新缓存。
2025-02-11 18:00:57
418
原创 redis缓存击穿
缓存击穿是指在高并发场景下,当某些热点数据在缓存中失效或被删除时,多个请求同时访问这些数据,导致请求绕过缓存,直接访问数据库,给数据库带来很大的压力,甚至可能导致数据库崩溃。缓存击穿的主要原因是缓存中的数据失效,而没有及时更新或加载新的数据,多个请求并发地访问这些失效数据,从而对数据库造成过大的压力。:当缓存中的某个数据失效时,只有第一个请求会去查询数据库并更新缓存,其他请求则会等待缓存更新完成后再获取数据。:在数据库查询时,先检查缓存中是否有数据,如果没有,再加锁查询数据库并更新缓存。
2025-02-11 18:00:22
427
原创 redis三大缓存问题:缓存穿透、缓存击穿、缓存雪崩
redis缓存穿透是指大量用户请求直接打到数据库,导致数据库直接奔溃的问题,因为数据库的资源是有限的,当数据库的连接数被用完后就会奔溃。恶意请求或无效请求:攻击者或者用户频繁请求一些非法或无效的数据,比如不存在的 ID,导致每次都查询数据库,增加系统负担。在一些情况下,除了使用传统的缓存层,还可以结合使用其他类型的缓存,如本地缓存、分布式缓存等,来减少数据库访问的频率。请求的数据在缓存中不存在:比如用户请求的数据并没有被缓存,系统只能直接查询数据库,而这种请求通常会很频繁。
2025-02-10 18:29:11
788
原创 设计模式之责任链模式
请求传递: 请求沿着链条传递,直到有一个处理者处理这个请求。每个处理者在链条中可以选择是否处理请求,或将请求传递给下一个处理者。Chain of Handlers(处理者链): 由多个具体处理者对象组成,请求会沿着这个链传递。解耦: 发送请求的对象不需要知道哪一个具体的处理者来处理它,处理者之间也不需要知道彼此的存在。解耦: 请求发送者和请求处理者之间解耦,发送者不需要知道哪个具体的处理者会处理它。请求可能得不到处理: 如果链条中的所有处理者都不处理该请求,最终请求会被丢弃。
2025-02-10 18:04:11
154
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人