前言
首先,大家先了解一下三者的概念究竟是什么?有哪些功能?工作原理?
一、RabbitMQ
1.消息型中间件,用于不同应用之间的通信,基于amqp协议实现
2.功能:将一些无需要及时返回而且耗时的操作提取出来,进行解耦,利用异步处理,提高系统的吞吐量
3工作原理:A生产消息,发送给服务器的exchange
exchange收到消息根据routinkey,将消息发送给匹配的queue,
queue收到消息,将消息发送给接受方
接收方接收消息后发送给ack给queue,
queue收到ack,删除队列中缓存的消息
4.集群节点分配
集群元数据:保存集群及其节点相关信息,存储在集群的每一个节点中
disc节点
ram节点
二.memcached
1.缓存型中间件,通过解耦,减轻数据库的负担
2.优势:开源,高性能,分布式,在内存中以键值方式存在
3.流程:客户端发送请求,若请求的数据在memcached服务器,则直接将结果返回用户,若结果不在,则从数据库中找出内容返回用户,并且缓存一份在memcached中,更新数据库,也会跟新memecached,若内存不足,则替换原来的数据。
三、mongodb
mongodb是一个基于分布式文件存储的数据库,由C++语言编写。
它旨在为WEB应用提供可扩展的高性能数据存储解决方案,最大的特点是支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
其次,就是给大家分享面试必备MongoDB+RabbitMQ+Memcached面试题及答案,因为内容过多,所以只展示了部分面试题和答案!!
第二版: Memcached 23道
1. Memcached是什么,有什么作用?
2、Memcached 服务在企业集群架构中有哪些应用场景?
一、作为数据库的前端缓存应用
a.完整缓存(易)。静态缓存
b.执点缓存(难)
特殊说明:
二、作业集群的session会话共享存储-
3、Memcached 服务特点及工作原理是什么?
4、简述Memcached内存管理机制原理? ....
5. Memcached是怎么工作的?
6、Memcached 最大的优势是什么?
7、Memcached 和MySQL的qee-----
8、Memcached和服务器的local cache (比如PHP的APC、mmap 文件等)相比,有什么优缺点?
9. Memcached 的cache机制是怎样的?
10、Memcached 如何实现冗余机制?
11. Memcached 如何处理容错的?
12.如何将Memcached中item批量导入导出?
13.如果缓存数据在导出导入之间过期了,您又怎么处理这些数据呢? ...
14、Memcached 是如何做身份验证的?
15. Memcached 的多线程是什么?如何使用它们?
16. Memcached 能接受的key的最大长度是多少?
17. Memcached 最大能存储多大的单个item?
18、Memcached 能够更有效地使用内存吗?
19.什么是二进制协议。我该关注吗?
20、Memcached的内存分配器是如何工作的?为什么不适用malloc/free! ?为何要使用slabs?
21、Memcached 是原子的吗?
22、如何实现集群中的session共享存储?
23、Memcached 与redis的区别?
第二版: RabbitMQ 12道
1、什么是rabbitmq
2、为什么要使用rabbitmq-
3、使用rabbitmq的场景
4、如何确保消息正确地发送至RabbitMQ?如何确保消 息接收方消费了消息?
发送方确认模式
接收方确认机制
5 ,如何避免消息重复投递或重复消费?
6、消息基于什么传输?
7、消息如何分发?
8、消息怎么路由?
9、如何确保消息不丢失?
10、使用RabbitMQ有什么好处?
11、rabbitmq的集群
12、mq的缺点:
系统可用性降低
系统复杂性提高
一致性问题
第二版: RabbitMQ 23道
什么是MQ:
MQ的优点
解耦、异步、削峰是什么? .
消息队列有什么缺点:
1.系统可用性降低
2. 系统复杂度提高
3.-致性问题
你们公司生产环境用的是什么消息中间件?
Kafka、ActiveMQ、RabbitMQ、 RocketMQ 有什么优缺点?
MQ有哪些常见问题?如何解决这些问题?
什么是RabbitMQ?
rabbitmq的使用场景-
(1)服务间异步通信
(2)顺序消费
(3)定时任务
(4)请求削峰-
RabbitMQ基本概念
RabbitMQ的工作模式
一.simple模式(即最简单的收发模式)
二.work工作模式(资源的竞争)-
三.publish/subscribe发布订阅(共享资源)
四.routing路由模式
五.topic主题模式(路由模式的一种)
如何保证RabbitMQ消息的顺序性?
消息如何分发?
消息怎么路由?
消息基于什么传输?
如何保证消息不被重复消费?或者说,如何保证消息消费时的幕等性?
如何确保消息正确地发送至RabbitMQ?如何确保消 息接收方消费了消息?
发送方确认模式
接收方确认机制
下面罗列几种特殊情况
如何保证RabbitMQ消息的可靠传输?
为什么不应该对所有的message 都使用持久化机制?
如何保证高可用的? RabbitMQ的集群
如何解决消息队列的延时以及过期失效问题?消息队列满了以后该怎么处理?有几百万消息持续积压几小时,怎么办?
设计MQ思路?
第二版: MongoDB 24道
1 nosql和关系型数据库的区别
2 nosql数据库有哪些
3 MySQL与mongodb本质之间最基本的差别是什么
4.你怎么比较MongoDB. CouchDB 及CouchBase?
5使用mongodb的优点.
8.分析器在MongoDB中的作用是什么?.
9名字空间(namespace) 是什么?
10.如果用户移除对象的属性.该属性是否从存储层中删除?
11.能否使用日志特征进行安全备份?
13.更新操作立刻fsync到磁盘?
14如何执行事务/加锁?
15为什么mongodb的数据文件那么庞大一
17.什么是master或primary?
18 getLastError的作用
19.分片(sharding) 和复制(replication) 是怎样工作的?
20.数据在什么时候才会扩展到多个分片(shard) 里?
21.当我试图更新-个正在被迁移的块(chunk) 上的文档时会发生什么? ....
22.我怎么查看Mongo正在使用的链接?
23mongodb的结构介绍
24数据库的整体结构.
MongoDB+RabbitMQ+Memcached面试题及答案