目录:

  • 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. 从头学pytorch(二) 自动求梯度

    PyTorch提供的autograd包能够根据输⼊和前向传播过程⾃动构建计算图,并执⾏反向传播. Tensor Tensor的几个重要属性或方法 .requires_grad 设为true的话,ten ...

  2. iOS开发 为何 大不如前?原因竟然是这个?

    前言: 近期,社会上对iOS开发行业的负面信息越来越多,并且还被一些黑骗机构的胡诌八扯越描越黑,现在iOS开发按照开发者与公司招聘的数量上来看,是显示的供大于求,但是从各公司的招人计划上来看,明显是供 ...

  3. Day 09 作业

    简述定义函数的三种方式 有参函数, 无参函数, 空函数 简述函数的返回值 函数内部代码经过一系列的逻辑处理返回的结果 简述函数的参数 函数的参数分形参和实参 形参: 定义函数阶段, 括号内定义的参数, ...

  4. MySQL的安装、启动和基础配置 —— windows版本

    下载 第一步:打开网址,https://www.mysql.com,点击downloads之后跳转到https://www.mysql.com/downloads 第二步 :跳转至网址https:// ...

  5. dart入门指南

    近来,flutter的热度在上升.flutter应用的主要开发语言是dart, 因此,欲练flutter, 必先了解dart. dart是由google开发的编程语言,可用于开发移动应用,桌面应用,h ...

  6. JAVA 使用jgit管理git仓库

    最近设计基于gitops新的CICD方案,需要通过java读写git仓库,这里简单记录下. JGit是一款pure java的软件包,可以读写git仓库,下面介绍基本使用. 引入jgit maven引 ...

  7. springboot 使用阿里云短信服务发送验证码

    一.申请阿里云短信服务 1.申请签名 2.申请模板 3.创建accesskey(鼠标悬停在右上角头像) 二.代码实现 1.springboot引入maven依赖 <dependency> ...

  8. 使用where 过滤数据

    --本章主要内容是MySQL中使用where搜索条件进行过滤数据. where条件在from子句后面给出,如下所示: select name,price from shops where price& ...

  9. C#线程学习笔记六:线程同步--信号量和互斥体

    本笔记摘抄自:https://www.cnblogs.com/zhili/archive/2012/07/23/Mutex_And_Semaphore.html,记录一下学习过程以备后续查用.     ...

  10. Python、 Pycharm、Django安装详细教程(图文)

    前言 这篇文章主要介绍了Python. Pycharm.Django安装详细教程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧. ...