阅读 22

手撕面试官系列(八):分布式通讯ActiveMQ+RabbitMQ+Kafka面试专题

ActiveMQ专题

(面试题+答案领取方式见主页)

  1. 什么是 ActiveMQ?
  2. ActiveMQ 服务器宕机怎么办?
  3. 丢消息怎么办?
  4. 持久化消息非常慢。
  5. 消息的不均匀消费。
  6. 死信队列。
  7. ActiveMQ 中的消息重发时间间隔和重发次数吗?

RabbitMQ专题

  1. RabbitMQ 中的 broker 是指什么?cluster 又是指什么?
  2. 什么是元数据?元数据分为哪些类型?包括哪些内容?与 cluster 相关的元数据有哪些?元数据是如何保存的?元数据在 cluster 中是如何分布的?
  3. RAM node 和 disk node 的区别?
  4. RabbitMQ 上的一个 queue 中存放的 message 是否有数量限制?
  5. RabbitMQ 概念里的 channel、exchange 和 queue 这些东东是逻辑概念,还是对应着进程实体?这些东东分别起什么作用?
  6. vhost 是什么?起什么作用?
  7. 在单 node 系统和多 node 构成的 cluster 系统中声明 queue、exchange ,以及进行 binding 会有什么不同?
  8. 客户端连接到 cluster 中的任意 node 上是否都能正常工作?
  9. 若 cluster 中拥有某个 queue 的 owner node 失效了,且该 queue 被声明具有durable 属性,是否能够成功从其他 node 上重新声明该 queue ?
  10. cluster 中 node 的失效会对 consumer 产生什么影响?若是在 cluster 中创建了mirrored queue ,这时 node 失效会对 consumer 产生什么影响?
  11. 能够在地理上分开的不同数据中心使用 RabbitMQ cluster 么? 综合问题
  12. 为什么 heavy RPC 的使用场景下不建议采用 disk node ?
  13. 向不存在的 exchange 发 publish 消息会发生什么?向不存在的 queue 执行consume 动作会发生什么?
  14. routing_key 和 binding_key 的最大长度是多少?
  15. RabbitMQ 允许发送的 message 最大可达多大?
  16. 什么情况下 producer 不主动创建 queue 是安全的?
  17. “dead letter”queue 的用途?
  18. 为什么说保证 message 被可靠持久化的条件是 queue 和 exchange 具有durable 属性,同时 message 具有 persistent 属性才行?
  19. 什么情况下会出现 blackholed 问题?
  20. 如何防止出现 blackholed 问题?
  21. Consumer Cancellation Notification 机制用于什么场景?
  22. Basic.Reject 的用法是什么?
  23. 为什么不应该对所有的 message 都使用持久化机制?
  24. RabbitMQ 中的 cluster、mirrored queue,以及 warrens 机制分别用于解决什么问题?存在哪些问题?

Kafka专题

  1. Kafka 的设计时什么样的呢?
  2. 数据传输的事物定义有哪三种?
  3. Kafka 判断一个节点是否还活着有那两个条件?
  4. producer 是否直接将数据发送到 broker 的 leader(主节点)?
  5. Kafa consumer 是否可以消费指定分区消息?
  6. Kafka 消息是采用 Pull 模式,还是 Push 模式?
  7. Kafka 存储在硬盘上的消息格式是什么?
  8. Kafka 高效文件存储设计特点:
  9. Kafka 与传统消息系统之间有三个关键区别
  10. Kafka 创建 Topic 时如何将分区放置到不同的 Broker 中
  11. Kafka 新建的分区会在哪个目录下创建
  12. partition 的数据如何保存到硬盘
  13. kafka 的 ack 机制
  14. Kafka 的消费者如何消费数据
  15. 消费者负载均衡策略
  16. 数据有序
  17. .kafaka 生产数据时数据的分组策略