目录:

  • rabbitmq 的使用场景有哪些?
  • rabbitmq 有哪些重要的角色?
  • rabbitmq 有哪些重要的组件?
  • rabbitmq 中 vhost 的作用是什么?
  • rabbitmq 的消息是怎么发送的?
  • rabbitmq 怎么保证消息的稳定性?
  • rabbitmq 怎么避免消息丢失?
  • 要保证消息持久化成功的条件有哪些?
  • rabbitmq 持久化有什么缺点?
  • rabbitmq 有几种广播类型?
  • rabbitmq 怎么实现延迟消息队列?
  • rabbitmq 集群有什么用?
  • rabbitmq 节点的类型有哪些?
  • rabbitmq 集群搭建需要注意哪些问题?
  • rabbitmq 每个节点是其他节点的完整拷贝吗?为什么?
  • rabbitmq 集群中唯一一个磁盘节点崩溃了会发生什么情况?
  • rabbitmq 对集群节点停止顺序有要求吗?

rabbitmq 的使用场景有哪些?

1、异步调用

2、应用解耦

3、流量削峰

4、数据冗余

5、延迟队列

6、分布式事务

......

rabbitmq 有哪些重要的角色?

1、生产者:发送消息的角色。

2、消费者:接收并处理消息的角色。

3、消息代理者:传递消息的角色,本身不产生和消费消息。

rabbitmq 有哪些重要的组件?

1、生产、消费者

2、消息、信道

3、交换器、路由键、队列、broker

rabbitmq 中 vhost 的作用是什么?

vhost可以看作是小型的RabbitMQ服务器,他拥有自己独立的交换器、队列、绑定关系、以及权限管理

客户端连接RabbitMQ时必须制定一个vhost,默认使用"/"

也就是说一个RabbitMQ服务可以拥有很多个子RabbitMQ服务,这些字RabbitMQ服务可以为其它很多应用程序提供服务;这样可以减少RabbitMQ服务器搭建的成本

rabbitmq 的消息是怎么发送的?

生产者通过信道将消息发送到交换器,然后交换器再根据路由键将消息路由到对应的队列中。

rabbitmq 怎么保证消息的稳定性?

对于发送方来说,可以使用事务或更轻量级别的发送方确认机制来保证消息达到RabbitMQ服务器。

对于接收方来说,autoAck设置成false,在处理完消息后再手动确认

rabbitmq 怎么避免消息丢失?

1、队列的durable设为true,将消息持久化到磁盘。

2、采用消费者确认模式。

3、对RabbitMQ集群,通过镜像队列备份数据。

4、可以将requeue设置为true,将漏处理的消息重新入队。

要保证消息持久化成功的条件有哪些?

1、队列必须为持久化的

2、消息的投递模式必须是持久化的,deliveryMode=2

3、消息已到达持久化的交换器和队列

rabbitmq 持久化有什么缺点?

持久化会多一次IO操作,在一定程度上会降低RabbitMQ的吞吐量,如果不计服务器成本的话可以考虑使用固态硬盘(SSD)来优化

rabbitmq 有几种广播类型?

fanout、direct、topic。

rabbitmq 怎么实现延迟消息队列?

采用死信交换器,也有些人叫做死信队列,在创建队列时指定x-message-ttl、x-dead-letter-exchange这两个参数来实现(利用消息过期会进入死信队列的特性)。

rabbitmq 集群有什么用?

1、不仅可以线性扩展RabbitMQ的吞吐量。

2、还可以使用镜像队列来降低消息丢失的风险。

3、以及某台服务器出现问题后RabbitMQ还能正常的提供服务。

rabbitmq 节点的类型有哪些?

磁盘节点和内存节点:

1、磁盘节点主要用于持久化交换器、队列及用户角色权限等

2、内存节点主要用于读写RabbitMQ消息,但消息都存储在内存中,服务器重启则消息丢失;但其性能高于磁盘节点。

rabbitmq 集群搭建需要注意哪些问题?

1、保证各个节点的cookie一致,否则节点之间无法通信。

2、必须存在一个磁盘节点,高可用的话最好一个以上

rabbitmq 每个节点是其他节点的完整拷贝吗?为什么?

不是;集群节点不对其它节点的队列进行复制,只会存储队列所在节点及元数据

rabbitmq 集群中唯一一个磁盘节点崩溃了会发生什么情况?

虽然还能够正常的读写消息,但无法创建交换器、队列、绑定关系以及用户和用户的权限角色等

rabbitmq 对集群节点停止顺序有要求吗?

停止服务:应当先关闭内存节点,再关闭磁盘节点。先关闭磁盘节点的话会导致无法创建交换器、队列、绑定关系,从而可能会导致数据丢失。

启动服务:先启动磁盘节点,再启动内存节点。

菜鸟刷面试题(二、RabbitMQ篇)的更多相关文章

  1. 菜鸟刷面试题(四、Spring/Spring MVC/Spring Boot/Spring Cloud篇)

    目录: 为什么要使用 spring? 解释一下什么是 aop? 解释一下什么是 ioc? spring 有哪些主要模块? spring 常用的注入方式有哪些? spring 中的 bean 是线程安全 ...

  2. 菜鸟刷面试题(三、Redis篇)

    目录: redis是什么?都有哪些使用场景? redis有哪些功能? redis和memecache有什么区别? redis为什么是单线程的? 什么是缓存穿透?怎么解决? redis支持的数据类型有哪 ...

  3. 菜鸟刷面试题(一、Java基础篇)

    目录: JDK 和 JRE 有什么区别? == 和 equals 的区别是什么? 两个对象的 hashCode()相同,则 equals()也一定为 true,对吗? final 在 java 中有什 ...

  4. 菜鸟刷面试题(五、Java容器篇)

    目录: java 容器都有哪些? Collection 和 Collections 有什么区别? List.Set.Map 之间的区别是什么? HashMap 和 Hashtable 有什么区别? 如 ...

  5. Java面试题(RabbitMQ篇)

    RabbitMQ 135. rabbitmq 的使用场景有哪些? ①. 跨系统的异步通信,所有需要异步交互的地方都可以使用消息队列.就像我们除了打电话(同步)以外,还需要发短信,发电子邮件(异步)的通 ...

  6. 【转】BAT及各大互联网公司2014前端笔试面试题:JavaScript篇

    原文转自:http://blog.jobbole.com/78738/ 很多面试题是我自己面试BAT亲身经历碰到的.整理分享出来希望更多的前端er共同进步吧,不仅适用于求职者,对于巩固复习前端基础更是 ...

  7. (转)BAT及各大互联网公司2014前端笔试面试题--Html,Css篇

    BAT及各大互联网公司2014前端笔试面试题--Html,Css篇   很多面试题是我自己面试BAT亲身经历碰到的.整理分享出来希望更多的前端er共同进步吧,不仅适用于求职者,对于巩固复习前端基础更是 ...

  8. web前端面试试题总结---css篇

    CSS 介绍一下标准的CSS的盒子模型?低版本IE的盒子模型有什么不同的? (1)有两种, IE 盒子模型.W3C 盒子模型: (2)盒模型: 内容(content).填充(padding).边界(m ...

  9. web前端面试试题总结---javascript篇

    JavaScript 介绍js的基本数据类型. Undefined.Null.Boolean.Number.String. ECMAScript 2015 新增:Symbol(创建后独一无二且不可变的 ...

随机推荐

  1. 菜鸟系列docker——docker网络(8)

    Docker网络 Docker在容器内部运行应用,这些应用之间的交互依赖于大量不同的网络,这意味着Docker需要强大的网络功能. Docker 网络从覆盖范围可分为单个 host 上的容器网络和跨多 ...

  2. Golang 怎么给WaitGroup加超时时间

    怎么给WaitGroup加超时时间呢?刚好群里有人问了我这个问题,我就把我的方法在这边贴出来了. var w = sync.WaitGroup{} var ch = make(chan bool) w ...

  3. JS操作document对象

    找到对象: document.getElementById():返回对拥有指定 id 的第一个对象的引用. document.getElementsByName():返回带有指定名称的对象集合. do ...

  4. SQL中Group By和having的用法

    转自 ITGirl笑笑   一.GROUP BY GROUP BY语句用来与聚合函数(aggregate functions such as COUNT, SUM, AVG, MIN, or MAX. ...

  5. pringboot热部署导致applicationContext获取为空

    在项目中遇到一个很奇怪的问题,写了一个SpringContextUtil工具类来获取applicationContext,初始化的时候断点来看的确是初始化了,applicationContext对象不 ...

  6. 【ES6】函数的扩展

    1.函数参数默认值[详情例子参照ESMAScript 6入门 (阮一峰)] 允许为函数的参数设置默认值,即直接写在参数定义的后面.[例子1] 参数变量是默认声明的,所以不能用let或const再次声明 ...

  7. Django之视图层与模板层

    目录 视图层 小白必会三板斧 HttpResponse render redirect JsonResponse 前后端分离 FBV CBV 给CBV加装饰器 模板层 模板语法 模板传值 过滤器 语法 ...

  8. zookeeper扫盲

    一.zookeeper概述 a.zookeeper是一个开源的分布式的项目,为分布式业务提供协调服务的apache顶级项目 那什么是分布式的呢,通俗的说就是多个机器可以同时去处理一件事情 b.zook ...

  9. TP框架对数据库的操作

    1.添加数据       1.1添加一条数据 $user = new User; $user->name = 'thinkphp'; $user->email = 'thinkphp@qq ...

  10. c++-面向对象:类和对象

    类和对象 #define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <string.h> using names ...