首页 » 软件优化 » 那是真的惨(是个队列那是消息线程)

那是真的惨(是个队列那是消息线程)

admin 2024-11-02 05:22:35 0

扫一扫用手机浏览

文章目录 [+]

一、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面试题集锦

最后

小编分享的面试题到这就结束了,整理不易,欢迎大家一起交流,喜欢文章记得关注我点赞哟,感谢支持!
重要的事情说三遍,转发+转发+转发,一定要记得转发哦!


标签:

相关文章

智慧城市沙盘模型(沙盘城市智慧模型技术)

智慧城市沙盘在使用中的范围还是很广的,应用在房地产项目上最多。采用“多位一体”多媒体数字沙盘集成技术,综合运用同步播放系统、追光捕...

软件优化 2024-12-23 阅读492 评论0