RabbitMq面试题


简述RabbitMQ架构设计

rabbitmq生产者发送消息到rabbitmq

rabbitmq接收到到消息,先到交换机,交换机根据规则routingkey,路由到指定的队列queue

队列向消费者推送消息,消费者进行消费


RabbitMQ如何确保消息发送 ? 消息接收?

rabbitmq消息的可靠性可以从三方面考虑

(1)生产者丢失消息

生产者生产消息发送到交换机的时候消息丢失,可能是网络波动丢失,我们可以在配置文件中使用publisher-confirm,消息正确发送到交换机,返回ack,没有正确到交换机,返回nack,返回之后重新发送

交换机到队列也可能消息丢失,可以使用publsher-return,消息没有正确到队列,就会返回nack,返回之后重新发送

(2)rabbitmq宕机也可能造成消息丢失,在创建交换机和队列的时候选择持久化,消息也要持久化

(3)消费者服务器宕机或者消费者代码发生异常之后可能造成消息丢失,可以使用本地重试机制,失败策略可以使用RepublishMessageRecoverer,将消息发送到error交换机,在路由到error队列


在RabbitMQ中场见工作工作模式?

简单模式

工作模式

发布订阅模式

路由模式

通配符模式


RabbitMQ死信队列、延时队列

队列满了,溢出的消息就是死信

当消息时间到期也会变成死信

被消费者拒绝后的消息也会变成死信

我们可以设置队列消息的存活时间,当消息过期的时间的时候,消息会发送到死信交换机,死信交换机路由到死信队列,写一个消费者,用来消费死信队列


简述RabbitMq的交换机类型

Direct路由模式

Fanout 发布订阅模式

Topic 通配符模式


rabbitmq可以直连队列么.

不可以,简单模式,是由默认交换机来路由消息


简述rabbitmq的持久化机制

rabbitmq的要保证持久化,如果要是rabbitmq宕机,就会造成消息,队列,交换机丢失

在创建队列和交换机的时候可以持久化

在发送消息的时候,会将消息转换为Massage对象,这个对象默认就进行了持久化


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值