📖 PLAN

分类 名称 状态 优先级
书籍 《深入理解分布式事务》 进行中 🌟🌟🌟🌟🌟
书籍 《消息队列高手课》 进行中 🌟🌟🌟🌟
书籍 《Redis核心技术与实践》 进行中 🌟🌟🌟🌟
书籍 《深入理解Java虚拟机》 进行中 🌟🌟🌟

📋学习日志(一周)

2022-06-15

Spring解决循环依赖

  • Spring为什么会出现循环依赖?
    • Spring的启动流程是怎么样的?
    • Spring Bean的生命周期是怎么样的?
  • 既然Spring循环依赖会导致Spring会发生死循环,那么如何避免死循环?
  • 如果发生了多线程并发问题,上面的解决方案可靠吗?该怎么办?
  • 前面也说到Spring使用到了三级缓存,那么你二级缓存就足以解决并发问题,那么三级缓存有什么意义?
  • 那是否解决了多例Bean的循环依赖问题?
  • 如果构造阶段出现了循环依赖该怎么办呢?

消息和事务:

  • 什么是事务?为什么引入消息中间件以后事务问题还得单独考虑?
  • 那么,分布式事务是什么?
    • 分布式事务有哪些常见的实现?
    • 2PC 和 TCC 有哪些异同点?
  • 那么消息队列如何实现的事务机制呢?
    • 本地事务完成之后,在向 Broker 发送消息的时候网络断开怎么办?
    • RocketMQ是如何解决这种问题的?事务反查是一个什么样的机制?

消息的可靠投递:

  • 如何检测到消息丢失了呢?
  • 消息投递的过程是怎么样的?
    • 消息投递如果在生产阶段发生消息丢失怎么办?
    • 消息投递过程中在存储阶段怎么避免消息丢失?
    • 消费者在消费过程中,如何避免消息丢失?

2022-6-15 18:30 北森云面试-二面

  • RabbitMQ 的 Exchanger 类型有哪些?
  • RabbitMQ 不需要Exchanger嘛?解释一下 Direct 类型的 Exchanger?
  • Raft 算法脑裂问题怎么解决?

2022-06-20

重复消息

  • 为什么会出现重复消息的问题?
  • 消息队列服务质量标准有哪些?目前主流的MQ质量服务标准是那个?
  • 既然主流MQ使用了At Least Once业务上如何保证不会重复消费?
    • 那什么是幂等性?
    • 幂等性在那些方面的设计中会使用到?
    • 举例一个不符合幂等性的案例?
  • 业务幂等性设计方案
    • 唯一性约束
    • 设置版本号
    • 记录并检查
  • 为什么现在主流的MQ都使用 At Least Once 而不是 Excantly Once 呢?

消息积压

  • 一般什么样的原因会导致消息积压?
  • 从发送方优化性能的角度来看,有哪些方案可以进行优化?
  • 一般来说消费端才是造成消息积压的主要原因,应该如何进行优化?
    • 消费端可以使用类似于发送方的优化方案嘛?为什么?

2022-06-21

键值数据库基本架构

  • Redis缓存常用于那些场景?
  • 一个 K/V 数据库架构主要包含那些内容?
  • Redis数据库可以存储那些基本类型?
  • 一个键值数据库有哪些数据操作?
  • 键值数据库应该存放到内存还是外存中?
  • 键值数据库的访问模式?
    • 如果键值数据库使用了Socket的方式来访问,会带来什么样的问题?
    • 为什么说Redis是单线程高性能的?
  • 如何快速定位键值对的位置?
  • 键值数据库重启后如何快速提供服务?

Redis数据结构

  • Redis存储类型与数据结构的关系是怎么样的?
  • Redis作为键值数据库,键值的数据结构是怎么样的?
    • 如果使用到哈希表出现哈希冲突该怎么解决?
    • 如果使用拉链法,链长度过长影响查询速度怎么办?
    • Redis是怎么优化这个过程的?
  • Redis集合主要使用哪几种数据结构?
  • 介绍以下压缩列表
    • 压缩列表(ziplist)和整数数组时间复杂度基本一致,为什么List要使用压缩列表?
    • 压缩列表有哪些弊端?
    • Redis的List数据类型使用到了ziplist,那么什么条件下使用linkedlist

Redis的高性能IO,为什么Redis单线程这么快?

  • 多线程真的就一定快嘛?为什么Redis使用了单线程仍然有可观的吞吐量?
  • Redis是如何使用多路复用机制提高整体性能的?
  • Redis使用了多路复用IO以后的性能瓶颈主要在什么方面?

2022-06-23 20:00 视源股份(CVTE) 后端暑假实习生二面
面试准备:

  • 约瑟夫环问题
  • 数据库三大范式是什么?
    • 是数据库设计中,一定要遵循第三范式吗?为什么?
  • 宽表、窄表?
    • 宽表如何优化?
  • sleep和wait有哪些区别?

面试问题:

  • Spring Cloud是什么?
    • Spring Cloud Alibaba 有哪些中间件?
    • 负责熔断流控控制的中间件?有哪些?
    • 负责链路追踪的中间件有哪些?
    • 服务发现的中间件有哪些?
  • MySQL 和 Redis 双写问题。

2022-06-24
深入理解分布式事务 - 事务基本概念

  • 事务有哪些特性?方便解释一下?
  • 事务类型有哪些?
    • 分布式事务是什么?和本地事务有什么区别嘛?