端点科技一面面经
面经
写面经,攒人品
- 自我介绍
- 项目介绍
- 项目中使用到的技术(亮点)
- 分布式锁
- redis实现与zk实现的区别
- redis单机挂的情况
- 多应用服务器抢占redis锁,造成redis服务器CPU飙红
- Rocketmq - 使用场景
- 索引
- B+树
- 结构
- 如何优化查询
- 原理等
- CountDownLatch原理
- 线程池
- 线程池的参数
- 非阻塞IO与阻塞IO
解答
分布式锁
redis实现与zk实现的区别
redis单机挂的情况
redis单机挂的情况下,考虑使用集群作为分布式锁的载体,使用redlock作为分布式锁的实现,这里的集群采用redis cluster而不采用主从复制模式,主从复制模式下,故障转移可能导致锁丢失,cluster的几率小很多。
多应用服务器抢占redis锁,造成redis服务器CPU飙红
redlock模式下,加分布式锁是给每一台redis服务器一台一台加锁的,加锁成功一半以后,就认为是分布式加锁成功。
检查当前锁状态只是一次读而已,写入锁也只是一次写入。本质上就是读写,另外单次锁状态的读取和写入数据量都很小。理论上来说你的业务量没有大到一定程度,锁的操作不会带来redis服务器的太多压力,如果有,那么你的其他业务的读写可能更要值得关注了。另外真有问题,就锁这一块的读写也不会引起CPU飙升。
RocketMQ使用场景
mysql中索引结构
索引结构分为两种,Hash索引和B+树索引。
B+树
结构
如何优化查询
减少IO次数。
CountDownLatch原理
线程池
非阻塞IO与阻塞IO
相关文章