综合21-40
41.RabbitMQ 中无法路由的消息会去到哪里?
展开 简单 VIP 消息队列 RabbitMQ
- 默认行为是将消息直接丢弃
- 可以指定主交换机的备用交换机,然后消息会转发到备用交换机
- 可以配置将消息返回给生产者,生产者需要监听basic.return 事件
42.MySQL 三层 B+ 树能存多少数据?
展开 中等 MySQL 数据库 索引
- 计算方法为:根节点存储行数*第二层节点存储行数*叶子节点存储行数
- 根节点和第二层节点存储行数:假设一页16KB,一个keyj加上指针占十几B,大 概1000行
- 叶子节点要看是二级索引还是主键索引,主键索引大概16行,大概2000w数据,二级索引大概能存16亿数据
43.Kafka为什么要抛弃 Zookeeper?
展开 中等 Kafka 分布式
todo:在 Kafka 旧架构,Zookeeper负责存储集群元数据,控制选举,配置管理和集群成员管理。
44.详细描述一条 SQL 语句在 MySQL 中的执行过程。
展开 中等 MySQL 数据库
- 连接器,客户端和服务端建立连接,客户端向服务端发送请求
- 查询缓存,8.0已移除
- 分析器,进行词法和语法的分析
- 优化器,决定使用哪个索引,调整sql执行顺序
- 执行器,据优化器的计划, 调用存储引擎接口执行查询。
45.Kafka 中 Zookeeper 的作用?
展开 简单 Kafka Zookeeper
todo
- 一个分布式协调服务,负责管理 Kafka 集群的元数据和协调分布式操作。
- 存储和管理元数据(主题、Broker、消费者组)。
- 协调控制器选举(确保单一控制器)。
- 管理集群成员(跟踪 Broker 状态)。
- 维护分区和副本状态(支持 Leader 选举和分配)。
- 存储动态配置(主题和 Broker 参数)。
46.MySQL 是如何实现事务的?
展开 中等 MySQL 事务
- 通过锁,日志和MVCC实现的
- undo log保证了事务的原子性
- redo log保证了事务的持久性
- 锁和MVCC实现了四种隔离级别,保证了事务的一致性和隔离性
47.为什么 Java 8 移除了永久代(PermGen)并引入了元空间(Metaspace)?
展开 简单 JVM Java
Java 8 移除永久代(PermGen)并引入元空间(Metaspace),是为了解决永久代内存大小难以配置、容易造成 OutOfMemoryError: PermGen 的问题,并将类元信息存储从堆内存转移到本地内存(Native Memory)中,以提高可扩展性和稳定性,更符合jvm的规范。
48.说一下 Kafka 中关于事务消息的实现?
展开 中等 Kafka 消息队列
todo