GaryLee's Blog
如何实现一个分布式锁? 如何实现一个分布式锁?
一、什么是分布式锁?分布式锁,是一种跨进程、跨机器节点的互斥锁,它可以用来保证多机器节点对于共享资源访问的互斥性。 二、分布式锁的特点想要实现一个分布式锁,主要要有以下几个特点: 互斥性:同一时间只能有一个线程获取到锁,然后去访问共享资源
2023-09-05
什么是服务降级? 什么是服务降级?
一、什么是服务降级?服务降级是一种提高系统稳定性和可用性的策略,简单来说,就是当服务器压力增加时,根据业务需求判断,从而不对外提供部分非核心服务的功能。 简单举个例子,在秒杀系统中,如果秒杀过程中服务器出现宕机或者部分依赖服务不可用了,做与
2023-08-25
Redis和MySQL如何保证数据一致性? Redis和MySQL如何保证数据一致性?
一、背景一般情况下,Redis是用来实现应用和数据库之间读操作的缓存层,主要目的是减少数据库IO,还可以用来提升数据的IO性能 二、设计思想当应用需要读取某个数据的时候,会有几个步骤: 尝试去Redis查询,如果命中就直接返回 如果没有命
2023-07-23
如何解决幂等性问题? 如何解决幂等性问题?
一、什么是幂等?幂等指一个方法被多次重复执行的时候产生的影响和第一次执行的影响相同 二、哪些行为会导致幂等性问题? 用户行为:用户的重复提交或用户的恶意攻击,导致这个请求被多次重复进行 网络异常:在分布式架构中,为了避免网络通信导致的数据丢
2023-07-21
如何设计分布式ID? 如何设计分布式ID?
一、为什么要使用分布式ID? 比如MySQL的主键ID一般用自增的方式,但如果用分表的话,多个表中会生成重复的ID 二、设计方案 使用MySQL的全局表:每获取一次都需要更新数据库,性能差 使用redis的自增id UUID 雪花算法
2023-07-19
如何设计一个高并发系统? 如何设计一个高并发系统?
一、背景二、如何设计一个高并发系统?通常设计一个高并发系统要从多个方面优化,大概方面如下: 分布式架构:将系统拆分为多个模块,采用分布式架构来降低单点故障的风险,并提高系统的可伸缩性和性能 集群部署:即多机器部署,结合负载均衡技术将请求均
2023-07-19
如何限流? 如何限流?
一、限流目的限流算法是一种系统保护策略,主要是避免流量高峰导致系统被压垮,造成系统不可用的问题 二、常见的限流算法 计数器限流:一般用在单一维护的访问频率限制上(如短信验证码每60s只能发送一次) 滑动窗口限流:本质也是计数器,区别是通过时
2023-07-19
高可用学习笔记(科普向) 高可用学习笔记(科普向)
什么是高可用 高可用描述的是一个系统在大部分时间都是可用的,可以为我们提供服务的。 高可用代表系统即使在发生硬件故障或者系统升级的时候,服务仍然是可用的。 相关概念限流 限流是从用户访问压力的角度来考虑如何应对系统故障。 限流是为了对服务
2021-08-01
线程池学习笔记 线程池学习笔记
一.使用线程池的好处 降低资源消耗通过重复利用已创建的线程降低线程创建和销毁造成的消耗 提高响应速度当任务到达时,任务可以不需要等到线程创建就能立即执行 提高线程的可管理性线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的
2021-07-28
2 / 2