菜鸟刷面试题(二、RabbitMQ篇)
目录:
- 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篇)的更多相关文章
- 菜鸟刷面试题(四、Spring/Spring MVC/Spring Boot/Spring Cloud篇)
目录: 为什么要使用 spring? 解释一下什么是 aop? 解释一下什么是 ioc? spring 有哪些主要模块? spring 常用的注入方式有哪些? spring 中的 bean 是线程安全 ...
- 菜鸟刷面试题(三、Redis篇)
目录: redis是什么?都有哪些使用场景? redis有哪些功能? redis和memecache有什么区别? redis为什么是单线程的? 什么是缓存穿透?怎么解决? redis支持的数据类型有哪 ...
- 菜鸟刷面试题(一、Java基础篇)
目录: JDK 和 JRE 有什么区别? == 和 equals 的区别是什么? 两个对象的 hashCode()相同,则 equals()也一定为 true,对吗? final 在 java 中有什 ...
- 菜鸟刷面试题(五、Java容器篇)
目录: java 容器都有哪些? Collection 和 Collections 有什么区别? List.Set.Map 之间的区别是什么? HashMap 和 Hashtable 有什么区别? 如 ...
- Java面试题(RabbitMQ篇)
RabbitMQ 135. rabbitmq 的使用场景有哪些? ①. 跨系统的异步通信,所有需要异步交互的地方都可以使用消息队列.就像我们除了打电话(同步)以外,还需要发短信,发电子邮件(异步)的通 ...
- 【转】BAT及各大互联网公司2014前端笔试面试题:JavaScript篇
原文转自:http://blog.jobbole.com/78738/ 很多面试题是我自己面试BAT亲身经历碰到的.整理分享出来希望更多的前端er共同进步吧,不仅适用于求职者,对于巩固复习前端基础更是 ...
- (转)BAT及各大互联网公司2014前端笔试面试题--Html,Css篇
BAT及各大互联网公司2014前端笔试面试题--Html,Css篇 很多面试题是我自己面试BAT亲身经历碰到的.整理分享出来希望更多的前端er共同进步吧,不仅适用于求职者,对于巩固复习前端基础更是 ...
- web前端面试试题总结---css篇
CSS 介绍一下标准的CSS的盒子模型?低版本IE的盒子模型有什么不同的? (1)有两种, IE 盒子模型.W3C 盒子模型: (2)盒模型: 内容(content).填充(padding).边界(m ...
- web前端面试试题总结---javascript篇
JavaScript 介绍js的基本数据类型. Undefined.Null.Boolean.Number.String. ECMAScript 2015 新增:Symbol(创建后独一无二且不可变的 ...
随机推荐
- 【大厂】389- 解密国内BAT等大厂前端技术体系-阿里篇(长文建议收藏)
进入2019年,大前端技术生态似乎进入到了一个相对稳定的环境,React在2013年发布至今已经6年时间了,Vue 1.0在2015年发布,至今也有4年时间了. 整个业界在前端框架不断迭代中,也寻找到 ...
- 阿里巴巴的26款Java开源项目
阿里巴巴的26款Java开源项目 开源展示了人类共同协作,成果分享的魅力.没有任何一家网络公司可以不使用开源技术,仅靠自身技术发展起来.“取之于开源,用之于开源,才能促进开源的良性发展”,阿里巴巴各个 ...
- python 中 and or
在Python 中,and 和 or 执行布尔逻辑演算,如你所期待的一样,但是它们并不返回布尔值:而是,返回它们实际进行比较的值之一. 一.and: 在布尔上下文中从左到右演算表达式的值,如果布尔上下 ...
- Python 分支、循环、条件与枚举
单行注释:# 注释内容多行注释:''' 注释内容 ''' Python 中有三种控制流语句: if for while 注:Python 中没有 Switch 这种开关语句 if 语句检测条件真, ...
- Centos6.5 Intel X722 编译安装网卡驱动
1,编译环境准备,安装好kernel-devl ,kenel-headers等; 注意: 一定要注意kernel 的内核,一定要保持被安装的机器与编译的内核保持一致; 下载驱动地址:https://d ...
- 一种分片更新ubi卷的方式(基于ubiupdatevol,拓展fifo支持)
ubi卷的更新方式 对于ubi卷,不能像普通块设备一样进行随机读写.每次更新需要从头写入. 具体的,需要在打开对应的设备之后,先执行一个ioctl UBI_IOCVOLUP,同时传入要更新的数据大小. ...
- 1、看源码MVC如何实例化控制器?
我们知道MVC请求进来,然后路由匹配,然后找到控制器和Action,最后会调用Action方法,但是大家想想控制器是个普通的类,Action是个普通的实例方法,要想调用Action必须先实例化控制器, ...
- C#中怎样连接数据库并将查询结果转为实体类以及如何加入事务
场景 新建一个程序,需要对数据的表进行查询并将查询结果转换为实体类,然后将多个实体类 再插入到另一个数据库的表中,执行插入的过程中要使用事务. 注: 博客主页: https://blog.csdn.n ...
- abp模块生命周期设计思路剖析
abp中将生命周期事件抽象为4个接口: //预初始化 public interface IOnPreApplicationInitialization { void OnPreApplicationI ...
- JPA中实现双向一对多的关联关系
场景 JPA入门简介与搭建HelloWorld(附代码下载): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103473937 ...