2021年9月14日

摘要: 有四种: 第一种AbortPolicy:不执行新任务,直接抛出异常,提示线程池已满 第二种DisCardPolicy:不执行新任务,也不抛出异常 第三种DisCardOldSetPolicy:将消息队列中的第一个任务替换为当前新进来的任务执行 第四种CallerRunsPolicy:直接调用exec 阅读全文
posted @ 2021-09-14 16:29 超人不会灰啊 阅读(110) 评论(0) 推荐(0) 编辑
 
摘要: CachedThreadPool:可缓存的线程池,该线程池中没有核心线程,非核心线程的数量为Integer.max_value,就是无限大,当有需要时创建线程来执行任务,没有需要时回收线程,适用于耗时少,任务量大的情况。 SecudleThreadPool:周期性执行任务的线程池,按照某种特定的计划 阅读全文
posted @ 2021-09-14 16:27 超人不会灰啊 阅读(142) 评论(0) 推荐(0) 编辑

2021年8月23日

摘要: http中的post请求发生了两次(多了一次options请求)的原因 两次请求一般:第一条为options请求,第二条请求才是我们预想中的请求。为什么先发起了一条options请求: options请求 options请求的官方定义:OPTIONS方法是用于请求获得由Request-URI标识的资 阅读全文
posted @ 2021-08-23 20:23 超人不会灰啊 阅读(1540) 评论(0) 推荐(0) 编辑

2021年8月16日

摘要: 缓存雪崩 缓存雪崩指的是缓存同一时间大面积的失效,所以,后面的请求都会落到数据库上,造成数据库短时间 内承受大量请求而崩掉。 解决办法 事前:尽量保证整个 Redis 集群的高可用性,发现机器宕机尽快补上,选择合适的内存淘汰策略。 事中:本地ehcache缓存 + hystrix限流&降级,避免My 阅读全文
posted @ 2021-08-16 20:40 超人不会灰啊 阅读(110) 评论(0) 推荐(0) 编辑
 
摘要: 一、缓存双淘汰法 1. 先淘汰缓存 2. 再写数据库 3. 往消息总线esb发送一个淘汰消息,发送立即返回。写请求的处理时间几乎没有增加,这个方法淘汰 了缓存两次。因此被称为“缓存双淘汰法“,而在消息总线下游,有一个异步淘汰缓存的消费者,在拿 到淘汰消息在1s后淘汰缓存,这样,即使在一秒内有脏数据入 阅读全文
posted @ 2021-08-16 17:05 超人不会灰啊 阅读(411) 评论(0) 推荐(0) 编辑
 
摘要: 这样的问题主要是在并发读写访问的时候,缓存和数据相互交叉执行。 一、单库情况下 同一时刻发生了并发读写请求,例如为A(写) B (读)2个请求 1. A请求发送一个写操作到服务端,第一步会淘汰cache,然后因为各种原因卡主了,不在执行后面业务 (例:大量的业务操作、调用其他服务处理消耗了1s)。 阅读全文
posted @ 2021-08-16 16:58 超人不会灰啊 阅读(299) 评论(0) 推荐(0) 编辑
 
摘要: 首先说一句,你只要用缓存,就可能会涉及到缓存与数据库双存储双写,你只要是双写,就一定会有数 据一致性的问题,那么你如 何解决一致性问题? 一般来说,就是如果你的系统不是严格要求缓存+数据库必须一致性的话,缓存可以稍微的跟数据库偶 尔有不一致的 情况,最好不要做这个方案,最好将读请求和写请求串行化,串 阅读全文
posted @ 2021-08-16 16:45 超人不会灰啊 阅读(75) 评论(0) 推荐(0) 编辑
 
摘要: 所谓 Redis 的并发竞争 Key 的问题也就是多个系统同时对一个 key 进行操作,但是最后执行的顺序和我 们期望的顺序不同,这样也就导致了结果的不同! 推荐一种方案:分布式锁(zookeeper 和 Redis 都可以实现分布式锁)。(如果不存在 Redis 的并发竞争 Key 问 题,不要使 阅读全文
posted @ 2021-08-16 16:37 超人不会灰啊 阅读(216) 评论(0) 推荐(0) 编辑
 
摘要: Redis Sentinel(哨兵)着眼于高可用,在master宕机时会自动将slave提升为master,继续提供服务。 Sentinel(哨兵)可以监听集群中的服务器,并在主服务器进入下线状态时,自动从服务器中选举出新的主服务器。 Redis Cluster(集群)着眼于扩展性,在单个Redis 阅读全文
posted @ 2021-08-16 16:32 超人不会灰啊 阅读(89) 评论(0) 推荐(0) 编辑
 
摘要: AOF重写可以产生一个新的AOF文件,这个新的AOF文件和原有的AOF文件所保存的数据库状态一样, 但体积更小。 AOF重写是一个有歧义的名字,该功能是通过读取数据库中的键值对来实现的,程序无须对现有AOF文 件进行任伺读 入、分析或者写入操作。 在执行 BGREWRITEAOF 命令时,Redis 阅读全文
posted @ 2021-08-16 16:28 超人不会灰啊 阅读(138) 评论(0) 推荐(0) 编辑