02 2024 档案

摘要:缓存雪崩:指缓存中数据大批量到过期时间,而查询数据量巨大,引起数据库压力过大甚至down机。 缓存穿透:指查询一个一定不存在的数据,由于缓存是不命中时需要从数据库查询,查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到数据库去查询,进而给数据库带来压力。 缓存击穿:指热点key在某个时间 阅读全文
posted @ 2024-02-28 10:45 云哲 阅读(7) 评论(0) 推荐(0) 编辑
摘要:![image](https://img2024.cnblogs.com/blog/1850498/202402/1850498-20240226150914594-1280352997.png) 阅读全文
posted @ 2024-02-26 15:09 云哲 阅读(3) 评论(0) 推荐(0) 编辑
摘要:scheduleAtFixedRate 该⽅法在 initialDelay 时⻓后第⼀次执⾏任务,以后每隔 period 时⻓,再次执⾏任务。注意,period是从任务开始执⾏算起的。开始执⾏任务后,定时器每隔period时⻓检查该任务是否完成,如果完成则再次启动任务,否则等该任务结束后才再次启动任 阅读全文
posted @ 2024-02-06 15:26 云哲 阅读(164) 评论(0) 推荐(0) 编辑
摘要:类 作用 Semaphore 限制线程数量 Exchanger 两个线程交换数据 CountDownLatch 递减屏障,线程等待直到计数器减为0时开始工作 CyclicBarrier 循环屏障,等屏障的线程数达到初始化值时,执行自定义的任务 Phaser 增强的CyclicBarrier Coun 阅读全文
posted @ 2024-02-04 16:51 云哲 阅读(12) 评论(0) 推荐(0) 编辑
摘要:CopyOnWrite容器即写时复制的容器,当我们往⼀个容器中添加元素的时候,不直接往容器中添加,⽽是将当前容器进⾏copy,复制出来⼀个新的容器,然后向新容器中添加我们需要的元素,最后将原容器的引⽤指向新容器,这个过程中是使用ReentrantLock加锁了的。这样做的好处在于,我们可以在并发的场 阅读全文
posted @ 2024-02-04 14:58 云哲 阅读(9) 评论(0) 推荐(0) 编辑
摘要:ConcurrentHashMap1.8之前提供了⼀种粒度更细的加锁机制来实现在多线程下更⾼的性 能,这种机制叫分段锁(Lock Striping)。 提供的优点是:在并发环境下将实现更⾼的吞吐量,⽽在单线程环境下只损失⾮常 ⼩的性能。 可以这样理解分段锁,就是将数据分段,对每⼀段数据分配⼀把锁。当 阅读全文
posted @ 2024-02-04 14:34 云哲 阅读(11) 评论(0) 推荐(0) 编辑
摘要:AQS:AbstractQueuedSynchronizer 抽象队列同步器 抽象:抽象类,只实现⼀些主要逻辑 定义一些默认的模板方法,有些⽅法由⼦类实现; 队列:使⽤先进先出(FIFO)队列存储数据; 同步:实现了同步的功能。 核心思想:被请求的共享资源空闲时,首先获得共享资源锁的线程被设置为工作 阅读全文
posted @ 2024-02-04 10:32 云哲 阅读(13) 评论(0) 推荐(0) 编辑
摘要:1.可重入锁和不可重入锁 可以对临界区资源重复加锁,如synchronized、ReentrantLock 2.公平锁和非公平锁 FIFO,如果对⼀个锁来说,先对锁获取请求的线程⼀定会先被满⾜,后对锁获取请求的线程后被满⾜,那这个锁就是公平的。反之,那就是不公平的。ReentranLock支持公平锁 阅读全文
posted @ 2024-02-02 15:34 云哲 阅读(8) 评论(0) 推荐(0) 编辑
摘要:常见多系统数据同步方案:同步双写、异步双写、监听binlog等 原文链接:https://my.oschina.net/u/3494859/blog/10931835 阅读全文
posted @ 2024-02-02 09:13 云哲 阅读(31) 评论(0) 推荐(0) 编辑
摘要:微服务之间的调用有两种方式,RPC和事件驱动。事件驱动是更好的方式,因为它是松耦合的。但如果业务逻辑是紧耦合的,RPC方式也是可行的(它的好处是代码更简单),而且你还可以通过选取合适的协议(Protobuf gRPC)来降低这种紧耦合带来的危害。 微服务的数量不宜太多,可以先创建比较大的微服务(更像 阅读全文
posted @ 2024-02-01 15:12 云哲 阅读(26) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示