面试官:RabbitMQ怎么实现消费的可靠投递

2022年05月11日 阅读数:3
这篇文章主要向大家介绍面试官:RabbitMQ怎么实现消费的可靠投递,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

哈喽!你们好,我是小奇,一位不靠谱的程序员
小奇打算以轻松幽默的对话方式来分享一些技术,若是你以为经过小奇的文章学到了东西,那就给小奇一个赞吧
文章持续更新程序员

1、前言

RabbitMQ咱们常常的使用,可是它有不少高级的特性咱们也须要熟练的掌握才能应对现实场景中复杂的业务逻辑。面试

2、面试

面试官:小奇是吧,咱们开始面试吧函数

我:快点吧,早就饥渴难耐了blog

在这里插入图片描述

面试官:有用过RabbitMQ吗rabbitmq

我:用过队列

3、RabbitMQ怎么实现消费的可靠投递

面试官:RabbitMQ消息生产者发送消息后怎么知道消费者有没有收到消息呢图片

我:生产者能够经过setConfirmCallback方法设置回调函数,判断方法中的ack,若是ack为true则表示发送成功,若是ack为false则表示发送失败,这里是生产者向路由器发送消息的时候失败。路由

在这里插入图片描述

我:咱们还能够经过setReturnCallback方法设置回调函数,这里是路由器向队列发送消息失败,好比该条消息根据路由键没有找到要发送到哪一个队列中去。回调函数

在这里插入图片描述

面试官:那消费端这里怎么判断是否收到消息了呢it

我:消费端这里能够经过channel.basicAck()方法来确认收到消息。

在这里插入图片描述

面试官:那消费端这里处理收到的消息的时候发生异常怎么办?

我:可使用channel.basicNack()方法来拒绝消息,让MQ从新发送消息

在这里插入图片描述

面试官:咱们消费端每次处理完消息都须要手动确认消息吗

我:能够配置手动确认,也能够配置自动确认消息,在配置文件中配置

在这里插入图片描述

面试官:那一共有几种确认方式呢

我:一共有三种确认方式。
一、自动确认:acknowledge=none
二、手动确认:acknowledge=manual
三、根据异常状况确认:acknowledge=auto

面试官:能够呀小伙子,这块掌握的不错

我:还行还行,都是平常的积累

面试官:小伙子真厉害啊,一会儿就把RabbitMQ怎么实现消费的可靠投递讲明白了,你面试经过了,明天上岗吧

我:啊,这么急吗,我后面还有好多东西没有讲呢。

面试官:不着急,进来了之后慢慢听你讲,加班让你跟我讲

我:啊。。。这也太难了吧

4、总结

这里关于RabbitMQ尚未整理完毕,文章后面持续更新,建议收藏。

文章中涉及到的命令你们必定要像我同样每一个都敲几遍,只有在敲的过程当中才能发现本身对命令是否真正的掌握了。

若是以为个人文章还不错的话就点个赞吧