当前位置: 首页 > 后端技术 > Java

面试官:RabbitMQ有哪些工作模式?

时间:2023-04-01 17:05:53 Java

您好!大家好,我是小七,不靠谱的程序员小七打算在轻松幽默的对话中分享一些技术。如果你觉得通过小七的文章有所收获,那就给小七点个赞吧。文章持续更新中1.前言今天又来面试了,又来了,又来了,和往常一样,先做两道面试题,然后填半斤表,什么血型,什么星座,我不不知道我是什么血型。可以为空。..今天公司环境还不错,大堂可以看到外面的世界,我已经想好以后去哪里钓鱼了(前提是可以面试)。..用完两支签字笔后,重要的是填写半斤表,然后交给面试官等待面试。..2.面试面试官:小七,路还远吗?我:不远,只有两英里。..面试官:好,那我们直接进入正题。我看到你的简历说你对RabbitMQ很了解,对吧?..三、RabbitMQ的工作模式面试官:哦~,那你说说RabbitMQ有哪些工作模式吧。我:RabbitMQ一般有五种工作模式。1:简单模式2:工作模式3:pub/sub发布订阅模式4:Routing路由模式5:Topics主题模式面试官:能介绍一下这几种模式的原理和区别吗?简单模式:一个生产者和一个消费者,中间通过一个队列直接连接。工作模式:有多个消费者消费队列中的消息,队列中的消息只能被一个消费者消费。如此一来,布局更多的消费者就可以缓解压力,比如过年期间抢票。成功后会发短信给你。这时候可以把发送短信的任务放到队列中,然后有多个短信服务来处理队列中的任务。pub/sub发布订阅模式:以上两种模式下生产者的消息只能被一个消费者消费,不符合一些实际场景。如果我们有一个国家气象局的天气预报系统,他发消息的时候,其他的服务商,比如百度、网易、腾讯等公司,要从国家气象预报系统获取天气,我们怎么办?不能百度获取今天的天气,其他公司获取不到天气,还是让全国的天气预报系统给各个服务商发消息,显然是很麻烦的。所以我们需要使用一个Exchange交换角色来帮助我们向所有订阅我们的服务提供商发送消息。Routing路由模式:路由模式是交换机不向所有订阅它的队列发送消息,而是根据routingkey来决定向哪个队列发送消息。queue在绑定switch的时候,需要传递routingkey,producer发送消息的时候,也需要指定routingkey,这样才能确定将消息发送到哪个queue。这里我们可以看到消息是发给张三的,所以消息只会发给routingkey为张三的队列。主题模式:主题模式相当于模糊匹配。如果我想给小张发消息,那么我可以通过话题模式给所有小张发消息。面试官:你说的很全面,就是想不起来了。你能用你生活中的例子来描述吗?..如果我今天去公司会议室上班,公司会议室只有一根网线,我可以接上这根网线自己用吗?这是简单模式,一对一。下午,张三也来到会议室上班。只有一根网线怎么办,这时候我想到了一个方法,我们两个人插网线一会儿,比如我写邮件的时候不需要插网线,但是我发邮件你把网线给我,我就发过去。就这样,我和张三各用网线五分钟。这就是工作模式。一根网线两个人用。它不再可用。不一会儿,李斯也来到了会议室。怎么回事,三个人用一根网线太难了,不过我又想到了一个办法,我们找了个路由器,把网线接在路由器上,然后我们每台笔记本电脑接上无线路由器的网络,让我们都可以上网。这是发布/订阅发布订阅模型。所有订阅路由器的笔记本电脑都可以接收流量并访问互联网。哈。一段时间后,网络越来越卡。我看到后台有8个人连接到我们的无线网络。原来我们没有设置密码。必须设置密码,再设置密码,只有知道密码的人才可以连接路由器。这相当于Routing路由模式。但是有人说密码太长记不住,我就说记得密码请打勾,谢谢,但是有人不打勾天天问,没办法,我说不然,就设置一个模糊的密码,前三位你们都输入123,后面的数字随意输入。我判断前面带123的密码是正确的,就让你上网了。这个相当于主题模式,这里的主题是123。面试官:哇哦,听你说的我都忘不了我:请不要迷恋哥,哥只是个传说。..面试官:小伙子,你真好。您可以一次生动地谈论这些模式。你通过了面试。你明天就可以开始工作了。我:啊,这么着急吗?面试官:别担心。你进来之后,慢慢听你说。你不是已经找到钓鱼的地方了吗?我们一起去那里聊天吧。我:你发现了这个。..4.小结到这里,RabbitMQ暂未整理完毕,后续会继续更新文章,推荐收藏。文中涉及的命令必须像我一样多敲几次。只有在敲打的过程中,才能发现自己是否真正掌握了命令。如果觉得我的文章还不错,请点个赞。本文参与SegmentFault思维随笔《如何“反杀”面试官?如果您正在阅读,欢迎您加入。