Cyan Blog Cyan Blog
首页
  • Java (opens new window)
  • JUC (opens new window)
  • JVM (opens new window)
  • Redis

    • Redis安装 (opens new window)
    • Redis基础 (opens new window)
    • Redis实战 (opens new window)
    • Redis集群安装 (opens new window)
    • Redis分布式缓存 (opens new window)
    • Redis多级缓存 (opens new window)
    • Redis原理 (opens new window)
  • 管理工具

    • Maven (opens new window)
    • Git (opens new window)
  • SSM

    • Spring (opens new window)
    • SpringBoot (opens new window)
    • Mybatis (opens new window)
    • MybatisPlus (opens new window)
  • 微服务

    • Docker (opens new window)
    • RabbitMQ (opens new window)
    • SpringCloud (opens new window)
    • Dubbo (opens new window)
    • MongoDB (opens new window)
    • Zookeeper (opens new window)
  • Java面试题 (opens new window)
  • JUC面试题 (opens new window)
  • JVM面试题 (opens new window)
  • Linux面试题 (opens new window)
  • SQL面试题 (opens new window)
  • Maven面试题 (opens new window)
  • Redis面试题 (opens new window)
  • SSM面试题 (opens new window)
  • SpringCloud面试题 (opens new window)
  • Linux (opens new window)
  • C++ (opens new window)
  • 数据库

    • MySQL (opens new window)
    • NoSQL (opens new window)
  • 软件测试

    • 软件测试 (opens new window)
  • 加密解密 (opens new window)
  • bilibili字幕提取 (opens new window)
  • 道理 (opens new window)
  • 关于博主

    • Github (opens new window)
    • CSDN (opens new window)
  • 关于本站

    • 如何搭建博客网站 (opens new window)
首页
  • Java (opens new window)
  • JUC (opens new window)
  • JVM (opens new window)
  • Redis

    • Redis安装 (opens new window)
    • Redis基础 (opens new window)
    • Redis实战 (opens new window)
    • Redis集群安装 (opens new window)
    • Redis分布式缓存 (opens new window)
    • Redis多级缓存 (opens new window)
    • Redis原理 (opens new window)
  • 管理工具

    • Maven (opens new window)
    • Git (opens new window)
  • SSM

    • Spring (opens new window)
    • SpringBoot (opens new window)
    • Mybatis (opens new window)
    • MybatisPlus (opens new window)
  • 微服务

    • Docker (opens new window)
    • RabbitMQ (opens new window)
    • SpringCloud (opens new window)
    • Dubbo (opens new window)
    • MongoDB (opens new window)
    • Zookeeper (opens new window)
  • Java面试题 (opens new window)
  • JUC面试题 (opens new window)
  • JVM面试题 (opens new window)
  • Linux面试题 (opens new window)
  • SQL面试题 (opens new window)
  • Maven面试题 (opens new window)
  • Redis面试题 (opens new window)
  • SSM面试题 (opens new window)
  • SpringCloud面试题 (opens new window)
  • Linux (opens new window)
  • C++ (opens new window)
  • 数据库

    • MySQL (opens new window)
    • NoSQL (opens new window)
  • 软件测试

    • 软件测试 (opens new window)
  • 加密解密 (opens new window)
  • bilibili字幕提取 (opens new window)
  • 道理 (opens new window)
  • 关于博主

    • Github (opens new window)
    • CSDN (opens new window)
  • 关于本站

    • 如何搭建博客网站 (opens new window)
  • 简历项目
  • Java面试题

  • 后端开发
  • 数据库面试题
  • Maven
  • MyBatis面试题
  • Spring面试题
  • SpringBoot面试题
  • SpringCloud面试题

  • Redis面试题

  • 设计模式
  • 中间件

    • MQ

      • RabbitMQ
      • Kafka
        • 1. Kafka是如何保证消息不丢失?
        • 2. Kafka中消息的重复消费问题如何解决?
        • 3. Kafka是如何保证消费的顺序性?
        • 4. Kafka的高可用机制了解吗?
        • 5. 解释一下复制机制中的ISR?
        • 6. Kafka数据清理机制了解吗?
        • 7. Kafka中实现高性能的设计有了解过吗?
  • 场景题
  • Other

  • Random

  • 项目面试题

  • 面试
  • 中间件
  • MQ
2025-04-05
0
0
目录

Kafka

# 1. Kafka是如何保证消息不丢失?

Kafka保证消息不丢失的措施包括:

  1. 生产者使用异步回调发送消息,设置重试机制应对网络问题。
  2. 在Broker中通过复制机制,设置acks参数为all,确保消息在所有副本中都得到确认。
  3. 消费者手动提交消费成功的offset,避免自动提交可能导致的数据丢失或重复消费。

# 2. Kafka中消息的重复消费问题如何解决?

通过以下方法解决Kafka中的重复消费问题:

  • 禁用自动提交offset,手动控制offset提交时机。
  • 确保消息消费的幂等性,例如通过唯一主键或分布式锁。

# 3. Kafka是如何保证消费的顺序性?

Kafka默认不保证消息顺序性,但可以通过以下方法实现:

  • 将消息存储在同一个分区,通过指定分区号或相同的业务key来实现。

# 4. Kafka的高可用机制了解吗?

Kafka的高可用性主要通过以下机制实现:

  • 集群部署,多broker实例,单点故障不影响整体服务。
  • 复制机制,每个分区有多个副本,leader和follower,leader故障时从follower中选举新leader。

# 5. 解释一下复制机制中的ISR?

ISR(In-Sync Replicas)指与leader保持同步的follower副本。

  • 当leader故障时,优先从ISR中选举新leader,因为它们数据一致性更高。

# 6. Kafka数据清理机制了解吗?

Kafka的数据清理包括:

  • 基于消息保留时间的清理。
  • 基于topic数据大小的清理,可配置删除最旧消息。

# 7. Kafka中实现高性能的设计有了解过吗?

Kafka高性能设计包括:

  • 消息分区,提升数据处理能力。
  • 顺序读写,提高磁盘操作效率。
  • 页缓存,减少磁盘访问。
  • 零拷贝,减少数据拷贝和上下文切换。
  • 消息压缩,减少IO负载。
  • 分批发送,降低网络开销。
#面试
上次更新: 2025/4/13 14:39:08
RabbitMQ
场景题

← RabbitMQ 场景题→

最近更新
01
项目优化
05-06
02
项目优化
05-06
03
延迟消息
05-05
更多文章>
Theme by Vdoing | Copyright © 2025-2025 Cyan Blog
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式