写点什么

阿里 P8 精心整理 MongoDB+RabbitMQ+Memcached 面试题,100% 拿 offer

  • 2024-12-04
    湖南
  • 本文字数:2252 字

    阅读完需:约 7 分钟

前言

首先,大家先了解一下三者的概念究竟是什么?有哪些功能?工作原理?

一、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 大佬整理的这份面试题及答案的小伙伴,抓紧时间转发关注小编查看下方名片免费获取!



用户头像

公众号:程序员高级码农 2022-07-03 加入

公众号:程序员高级码农

评论

发布
暂无评论
阿里P8精心整理MongoDB+RabbitMQ+Memcached面试题,100%拿offer_Java_程序员高级码农_InfoQ写作社区