消息中间件-面试题

本文深入探讨了Kafka与RocketMQ的消息中间件特性,包括Kafka的可靠性保证、架构、消费者模式、Zookeeper作用、消息顺序与幂等性、分区Leader选举,以及RocketMQ的特点、架构、事务性消息和持久化机制。这些知识点对于理解消息中间件的面试题至关重要。
摘要由CSDN通过智能技术生成

MQ选择

一、Kafka

1、消息队列如何保证消息可靠性

  • 消息不重复
    • 生产者控制
    • 消费者幂等
  • 消息不丢失
    • 生产者发送,要确认broker收到并持久化
    • broker确认消费者消费完,再删除消息

2、kafka是什么

  • Kafka是一种高吞吐量、分布式、基于发布/订阅的消息中间件,是Apache的开源项目。
  • broker: Kafka服务器,负责消息存储和转发
  • topic:消息类别,Kafka按照topic来分类消息
  • partition: topic的分区,一个topic可以包含多个partition, topic 消息保存在各个partition上。offset:消息在日志中的位置,可以理解是消息在partition上的偏移量,代表该消息的唯一序号
  • Producer:消息生产者
  • Consumer:消息消费者
  • Consumer Group:消费者分组,每个Consumer必须属于一个group
  • Zookeeper:保存着集群 broker、 topic、 partition等数据;另外,还负责broker故障发现, partition leader选举,负载均衡等功能

3、kafka的架构

  • Producers(生产者):生产者将数据PUSH给broker

  • Consumers(消费者):因为Kafka代理是无状态的,这意味着消费者必须通过使用分区偏移来维护已经消耗了多少消息。消费者向broker拉取消息

  • Broker(代理):一台 kafka 服务器就是一个 broker。一个集群由多个 broker 组成。一个 broker 可以容纳多个 topic。

  • Topic :可以理解为一个队列,一个 Topic 又分为一个或多个分区

  • Consumer Group:这是 kafka 用来实现一个 topic 消息的广播(发给所有的 consumer)和单播(发给任意一个 consumer)的手段。一个 topic 可以有多个 Consumer Group

  • ZooKeeper:用于管理和协调broker。 

4、kafka的消费者是pull(拉)还是push(推)模式

  • Kafka 遵循了一种大部分消息系统共同的传统的设计:producer 将消息推送到 broker,consumer 从broker 拉取消息。

  • 优点:pull模式消费者自主决定是否批量从broker拉取数据,而push模式在无法知道消费者消费能力情况下,不易控制推送速度&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值