独孤九剑-------面试题

preview
需积分: 0 3 下载量 149 浏览量 更新于2022-07-12 收藏 1.05MB DOCX 举报
独孤九剑-------面试题 以下是从给定的文件中生成的相关知识点: Spring * Spring 优点:开源、免费、轻量级、非入侵式、支持事务处理、支持对其他框架整合 * Spring 核心: + 控制反转(IOC):Spring 容器使用工厂模式为我们创建需要的对象 + 依赖注入(DI):Spring 使用 JavaBean 对象的 set 方法或构造方法来注入依赖对象 * Spring 生命周期: + Spring 容器启动 + Bean 的创建和初始化 + Bean 的依赖注入 + Bean 的生命周期管理 * Spring@Resource 和 Autowired 区别: + @Resource 是 JavaEE 的注解,用于注入资源 + @Autowired 是 Spring 的注解,用于注入依赖对象 * Spring 设计模式: + Factory 模式 + Singleton 模式 + Prototype 模式 * Spring 注解: + @Controller + @Service + @Repository + @Autowired + @Resource 微服务 * 微服务架构: + 服务发现 + 服务注册 + 服务调用 * SpringBoot 和 SpringCloud 的区别: + SpringBoot 是一个基于 Spring 的框架,用于快速构建基于 Spring 的应用程序 + SpringCloud 是一个基于 SpringBoot 的分布式系统框架,用于构建微服务架构 Redis * Redis 基础: + NoSQL 数据库 + key-value 数据存储 + 支持多种数据结构 * Redis 过期策略: + TTL(Time To Live) + SETEX 命令 * Redis 的缓存雪崩、缓存击穿、缓存穿透: + 缓存雪崩:大量缓存同时失效 + 缓存击穿:缓存中没有数据,导致数据库压力增加 + 缓存穿透:缓存中没有数据,导致缓存服务器压力增加 * Redis 持久化: + RDB(Redis Database) + AOF(Append-Only File) * Redis 主从同步: + 全量同步 + 增量同步 + 是否第一次同步? * Redis 哨兵: + Sentinel + Redis Cluster * Redis 分片集群: + Horizontal Partitioning + Vertical Partitioning * Redis 缓冲并发: + Redis Transaction + Redis Lock 微服务专题 * Eureka 和 Nacos 的区别: + Eureka: Netflix 公司开源的服务发现框架 + Nacos:阿里巴巴开源的服务发现框架 * Nacos 配置热更新: + 动态配置更新 + 实时配置推送 * Nacos 集群搭建步骤: + 部署 Nacos Server + 配置 Nacos 客户端 * Feign 远程调用: + 声明式 RESTful 客户端 + 支持负载均衡和熔断 * Feign 优化: + 缓存优化 + 熔断优化 分布式专题 *分布式事务基础: + ACID 原则 + 两阶段提交 * Seata 基础: + 一个开源的分布式事务框架 + 支持多种事务模型 * Seata-XA 模式: + 两阶段提交 + 支持多个资源管理器 * Seata-AT 模式: + 一个事务管理器 + 支持多个资源管理器 * Seata-TCC 模式: + 一个事务管理器 + 支持多个资源管理器 * TCC 空回滚和业务悬挂: + 空回滚:回滚操作没有执行 + 业务悬挂:业务操作没有完成 Gateway * Gateway 服务网关: + 一个反向代理服务器 + 支持负载均衡和熔断 * filter 过滤器及顺序: + 一个 Filter 链 + 支持多个 Filter * 网关过滤器工厂: + 一个工厂模式 + 支持多个过滤器 * 全局过滤器: + 一个全局的 Filter + 支持多个 Filter * 跨域问题: + 一个跨域访问问题 + 支持 CORS Kafka * Kafka 专题: + 一个高性能的消息中间件 + 支持高吞吐量和低延迟 * Kafka 如何保证消息可靠性: + Partition 机制 + Replication 机制 * Kafka 的优点和缺点: + 优点:高性能、可扩展、支持多种语言 + 缺点:学习曲线陡峭、需要大量资源 * 如何保证消息幂等: + 一个幂等操作 + 支持多种幂等策略 * 为什么要使用消息队列?: + 解耦合应用程序 + 提高系统的可扩展性 * 为什么要使用 Kafka?: + 高性能 + 可扩展性强 RabbitMQ * RabbitMQ 专题: + 一个高性能的消息中间件 + 支持高吞吐量和低延迟 * RabbitMQ 五种模型: + point-to-point 模型 + publish-subscribe 模型 + request-response 模型 + topic 模型 + headers 模型 * 为什么使用消息队列(优缺点): + 优点:解耦合应用程序、提高系统的可扩展性 + 缺点:增加系统的复杂性、需要大量资源 * RabbitMQ 持久化: + 一个持久化机制 + 支持多种持久化策略 * RabbitMQ 如何保证消息的可靠性: + 一个可靠性机制 + 支持多种可靠性策略 Mysql * Mysql 专题: + 一个关系型数据库管理系统 + 支持高性能和高可用性 * Mysql 优点: + 高性能 + 可扩展性强 * Mysql 缺点: + 学习曲线陡峭 + 需要大量资源 * Mysql 索引: + 一个索引机制 + 支持多种索引类型 * Mysql 事务: + 一个事务机制 + 支持多种事务类型 * Mysql 的引擎: + MyISAM + InnoDB * Mysql 的 mvcc: + 一个多版本并发控制机制 + 支持高并发 基础知识 * 多线程: + 一个线程机制 + 支持多种线程模型 * 多线程创建: + 7 大参数 + 支持多种线程创建方式 * 悲观锁和乐观锁: + 一个锁机制 + 支持多种锁类型 * 基础集合: + 一个集合机制 + 支持多种集合类型 * Java垃圾回收机制: + 一个垃圾回收机制 + 支持多种垃圾回收策略 * GC是什么?: + 一个垃圾回收器 + 支持多种垃圾回收方式 * JVM 调优的工具: + 一个 JVM 调优工具 + 支持多种 JVM 调优方式 * 什么是程序计数器?: + 一个程序计数器 + 支持多种程序计数器类型 * 什么双亲委派模型?: + 一个类加载机制 + 支持多种类加载策略