阿里 P8 精心整理 MongoDB+RabbitMQ+Memcached 面试题,100% 拿 offer
前言
首先,大家先了解一下三者的概念究竟是什么?有哪些功能?工作原理?
一、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 的区别?
Memcached 23 道面试题答案
第二版: RabbitMQ 12 道
1、什么是 rabbitmq
2、为什么要使用 rabbitmq-
3、使用 rabbitmq 的场景
4、如何确保消息正确地发送至 RabbitMQ?如何确保消 息接收方消费了消息?
发送方确认模式
接收方确认机制
5 ,如何避免消息重复投递或重复消费?
6、消息基于什么传输?
7、消息如何分发?
8、消息怎么路由?
9、如何确保消息不丢失?
10、使用 RabbitMQ 有什么好处?
11、rabbitmq 的集群
12、mq 的缺点:
系统可用性降低
系统复杂性提高
一致性问题
RabbitMQ 12 道面试题答案
第二版: 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 思路?
RabbitMQ 23 道面试题答案
第二版: 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 24 道面试题答案
MongoDB+RabbitMQ+Memcached 面试题及答案
需要阿里 p8 大佬整理的这份面试题及答案的小伙伴,抓紧时间转发关注小编查看下方名片免费获取!
评论