- 博客(5)
- 收藏
- 关注
原创 高并发场景的应对策略有哪些?
高并发场景的应对策略:数据层做索引、业务层做缓存异步解耦、服务层做限流熔断降级、物理层做CDN加速和增加服务器资源服务器做集群和负债均衡。
2023-08-14 16:04:17
344
原创 mysql的MVCC模式和其原理
MVCC全称为Multi-Version Concurrency Control,即多版本并发控制。用于控制多个用户同时对同一数据进行读写的情况,为了实现读-写冲突不加锁,而这个读指的就是快照读, 而非当前读,也是当前innoDB的隔离级别可重复下所支持的。
2023-08-04 14:01:33
206
1
原创 如何用redis实现延迟队列?
延迟队列的基本思路是将需要延迟执行的任务按照执行时间放入有序集合中,使用任务的执行时间作为分值,任务的唯一标识作为成员,然后使用Redis的定时器功能定时检查有序集合中是否有任务的执行时间到达,如果到达则将任务取出执行。另外,延迟队列中的任务执行时间应尽量精确,避免任务过早或过晚执行的问题。2、当到了超时时间后变成死信,MQ把死信交给绑定好的死信交换机,由死信交换机在交给目标队列,监听者监听这个目标队列即可。将任务按照执行时间放入有序集合中,使用任务的执行时间作为分值,任务的唯一标识作为成员。
2023-08-02 23:31:13
358
原创 双重校验的单例模式#枚举是最好的单例
当一个Java类第一次被真正使用到的时候静态资源被初始化、Java类的加载和初始化过程都是线程安全的(虚拟机在加载枚举的类的时候,会使用ClassLoader的loadClass方法,而这个方法使用同步代码块保证了线程安全)。同时在序列化的时候Java仅仅是将枚举对象的name属性输出到结果中,反序列化的时候则是通过java.lang.Enum的ValueOf()方法来根据名字查找对象。编译器对这种方式还禁用掉了readResolve的方法(),所以创建一个enum类型是线程安全的。
2023-08-01 22:50:58
130
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人