GaryLee's Blog
07
29
场景题 2023.07.29
如何排查CPU飙升问题?
一、CPU飙升可能的原因背景:CPU是整个电脑的核心计算资源,对于一个应用进程来说,CPU的最小执行单元是线程导致CPU飙高的原因有几个方面: CPU上下文切换过多:由于在同一时刻下每个CPU核心只能运行一个线程,如果存在多个线程,CPU
2023-07-29
29
25
面试 2023.07.25
Java面试题
一、随手记录的Java面试题 ==和equals有什么区别? 浅拷贝和深拷贝有什么区别? 线程的sleep和wait有什么区别? 什么是动态代理?有什么优点和缺点? 关于锁的synchronized和ReentrantLock有什么区别?
2023-07-25
24
23
21
并发 2023.07.21
如何解决幂等性问题?
一、什么是幂等?幂等指一个方法被多次重复执行的时候产生的影响和第一次执行的影响相同 二、哪些行为会导致幂等性问题? 用户行为:用户的重复提交或用户的恶意攻击,导致这个请求被多次重复进行 网络异常:在分布式架构中,为了避免网络通信导致的数据丢
2023-07-21
19
并发 2023.07.19
如何设计分布式ID?
一、为什么要使用分布式ID? 比如MySQL的主键ID一般用自增的方式,但如果用分表的话,多个表中会生成重复的ID 二、设计方案 使用MySQL的全局表:每获取一次都需要更新数据库,性能差 使用redis的自增id UUID 雪花算法
2023-07-19
19
并发 2023.07.19
如何设计一个高并发系统?
一、背景二、如何设计一个高并发系统?通常设计一个高并发系统要从多个方面优化,大概方面如下: 分布式架构:将系统拆分为多个模块,采用分布式架构来降低单点故障的风险,并提高系统的可伸缩性和性能 集群部署:即多机器部署,结合负载均衡技术将请求均
2023-07-19
19
并发 2023.07.19
如何限流?
一、限流目的限流算法是一种系统保护策略,主要是避免流量高峰导致系统被压垮,造成系统不可用的问题 二、常见的限流算法 计数器限流:一般用在单一维护的访问频率限制上(如短信验证码每60s只能发送一次) 滑动窗口限流:本质也是计数器,区别是通过时
2023-07-19
17
场景题 2023.07.17
如何设计一个秒杀系统?
一、分析秒杀系统1、秒杀系统的特点 高并发:瞬间流量大 超卖问题:秒杀商品库存少 接口防刷:秒杀前刷新频繁 2、秒杀系统需要考虑的点秒杀前: 页面资源访问多:资源静态化,存CDN就近访问,开启资源压缩,减少传输数据量,提高速度 秒杀按钮
2023-07-17
17
12
Kafka 2023.07.12
Kafka面试题
一、Kafka面试题1、Kafka的副本机制有什么用?Kafka的副本机制是保证消息可靠性的重要手段之一,它可以: 提高可用性:Kafka每个topic有多个分区,每个分区有多个副本,但其中只能有一个是leader副本,其余的都是foll
2023-07-12
10 / 11