一、RabbitMQ架构设计面试题
Broker:rabbitmq的服务节点
Queue:队列,是RabbitMQ的内部对象,用于存储消息。RabbitMQ中消息只能存储在队列中。生产者投递消息到队列,消费者从队列中获取消息并消费。多个消费者可以订阅同一个队列,这时队列中的消息会被平均分摊(轮询)给多个消费者进行消费,而不是每个消费者都收到所有的消息进行消费。

Exchange:交换器。生产者将消息发送到Exchange,由交换器将消息路由到一个或多个队列中。如果路由不到,或返回给生产者,或直接丢弃,或做其它处理。
RoutingKey:路由Key。生产者将消息发送给交换器的时候,一般会指定一个RoutingKey,用来指定这个消息的路由规则。这个路由Key需要与交换器类型和绑定键(BindingKey)联合使用才能最终生效。
Binding:通过绑定将交换器和队列关联起来,在绑定的时候一般会指定一个绑定键,这样RabbitMQ就可以指定如何正确的路由到队列了。
信道:信道是建立在Connection 之上的虚拟连接。当应用程序与Rabbit Broker建立TCP连接的时候,客户端紧接着可以创建一个AMQP 信道(Channel) ,每个信道都会被指派一个唯一的D。
1、RabbitMQ死信队列、延时队列
消息被消费方否定确认,使用 channel.basicNack 或 channel.basicReject ,并且此时requeue 属性被设置为 false 。消息在队列的存活时间超过设置的TTL时间。消息队列的消息数量已经超过最大队列长度。2、RabbitMQ如何确保消息发送 ? 消息接收?
发送方确认机制:
接收方确认机制:
3、简述kafka架构设计
4、Kafka在什么情况下会出现消息丢失及解决方案?
5、RabbitMQ镜像队列机制
6、Kafka是pull?push?优劣势分析
7、RabbitMQ事务消息
8、Kafka的性能好在什么地方
9、简述kafka的rebalance机制
10、Kafka中zk的作用
11、kafka怎么处理消息顺序、重复发送、重复消费、消息丢失
完整面试题+答案解析获取方式:关注+转发 后私信关键字【2021】获取
二、Redis面试题
RDB(Redis Data Base) 和 AOF(Append Only File) 机制
RDB:在指定的时间间隔内将内存中的数据集快照写入磁盘,实际操作过程是fork一个子进程,先将数据集写入临时文件,写入成功后,再替换之前的文件,用二进制压缩存储。
AOF:以日志的形式记录服务器所处理的每一个写、删除操作,查询操作不会记录,以文本的方式记录,可以打开文件看到详细的操作记录。
1、redis 主从复制的核心原理
2、简述Redis事务实现
3、Redis线程模型、单线程快的原因
4、缓存雪崩、缓存穿透、缓存击穿
5、Redis的过期键的删除策略
6、redis集群方案
三、分布式/微服务面试题1、分布式架构下,Session 共享有什么方案
2、分布式锁解决方案
3、如何实现接口的幂等性
4、分布式id生成方案
5、CAP理论,BASE理论
6、简述你对RPC、RMI的理解
7、负载均衡算法、类型
8、简述ZAB 协议
9、zk的数据模型和节点类型
10、Dubbo 的整体架构设计及分层
11、zk和eureka的区别
12、简述zk的命名服务、配置管理、集群管理
13、讲下Zookeeper watch机制
14、分布式事务解决方案
15、springcloud核心组件及其作用
16、Spring Cloud和Dubbo的区别
17、什么是Hystrix?简述实现机制
四、Mybatis面试题1、MyBatis 与Hibernate 有哪些不同?
开发速度的对比:开发工作量的对比:sql优化方面:对象管理的对比:缓存机制对比:2、简述 Mybatis 的插件运行原理,如何编写一个插件。
3、#{}和${}的区别是什么?
4、mybatis的优缺点
五、MySQL数据库面试题
1、mysql聚簇和非聚簇索引的区别
2、索引的基本原理
3、mysql索引的数据结构,各自优劣
4、什么是最左前缀原则?什么是最左匹配原则
5、索引设计的原则?
6、关心过业务系统里面的sql耗时吗?统计过慢查询吗?对慢查询都怎么优化过?
7、InnoDB存储引擎的锁的算法
8、ACID靠什么保证的?
9、事务的基本特性和隔离级别
10、什么是MVCC
11、mysql主从同步原理
12、分表后非sharding_key的查询怎么处理,分表后的排序?
13、简述mysql中索引类型及对数据库的性能的影响
14、mysql执行计划怎么看
15、简述MyISAM和InnoDB的区别
完整面试题+答案解析获取方式:关注+转发 后私信关键字【2021】获取
六、Spring面试题1、什么是bean的自动装配,有哪些方式?
2、如何实现一个IOC容器
3、spring事务什么时候会失效?
4、spring是什么?
5、spring事务传播机制
6、谈谈你对IOC的理解
7、谈谈你对AOP的理解
8、Spring事务的实现方式和原理以及隔离级别?
9、Spring框架中的单例Bean是线程安全的么?
10、Spring 框架中都用到了哪些设计模式?
11、解释下Spring支持的几种bean的作用域。
12、描述一下Spring Bean的生命周期?
13、BeanFactory和ApplicationContext有什么区别?
七、Spring MVC、Spring Boot面试题1、SpringMVC 工作流程
2、Spring Boot、Spring MVC 和 Spring 有什么区别
3、Spring Boot 自动配置原理?
4、Spring MVC的主要组件?
5、什么是嵌入式服务器?为什么要使用嵌入式服务器?
6、如何理解 Spring Boot 中的 Starter
八、Java基础
1、GC如何判断对象可以被回收
2、Java类加载器
3、双亲委托模型
4、Java中的异常体系
5、ConcurrentHashMap原理,jdk7和jdk8版本的区别
6、什么是字节码?采用字节码的好处是什么?
7、==和equals比较
8、JDK JRE JVM
9、final
10、hashCode与equals
11、重载和重写的区别
12、String、StringBuffer、StringBuilder
13、接口和抽象类的区别
14、面向对象
15、HashMap和HashTable有什么区别?其底层实现是什么?
16、ArrayList和LinkedList区别
17、List和Set的区别
九、线程、并发相关面试题1、sleep()、wait()、join()、yield()的区别
2、对线程安全的理解
3、线程的生命周期?线程有几种状态
4、对守护线程的理解
5、Thread、Runable的区别
6、ThreadLocal内存泄露原因,如何避免
7、并发的三大特性
8、并发、并行、串行的区别
9、ThreadLocal的原理和使用场景
10、为什么用线程池?解释下线程池参数?
11、volatile
12、线程池中阻塞队列的作用?为什么是先添加列队而不是先创建最大线程?
13、简述线程池处理流程
该资料获取方式:关注+转发后,私信【2021】获取2021最新Java面试题集锦
最后
小编分享的面试题到这就结束了,整理不易,欢迎大家一起交流,喜欢文章记得关注我点赞哟,感谢支持!
重要的事情说三遍,转发+转发+转发,一定要记得转发哦!
!
!