面试官:讲讲Kafka核心概念

Kafka 概述

  • Kafka 介绍:Kafka 是一款基于发布与订阅模式的消息系统,被全球财富前100强公司中的80%以上使用。
  • GitHub 统计:拥有27.6k的star数和13.6k的fork数。

Kafka 组成模块

  1. 消息生产者:负责创建消息并发送到特定的主题。
  2. 消息消费者:作为消息的读取者和消费者,可以订阅多个主题。
  3. Broker:Kafka服务器,接收生产者的消息并进行持久化保存。
  4. 主题(Topic):消息的分类标识,生产者和消费者通过主题进行消息的发送和接收。
  5. 分区(Partition):提高Kafka处理消息的吞吐量,一个主题下的消息可以分布在多个分区中。

Kafka 设计理念

  • Kafka 不是直接将消息从生产者发送给消费者,而是通过中间的Broker进行消息的分类和存储。

Kafka 功能特性

  • 高吞吐量:设计用于处理大量业务消息,单台Broker可以处理每秒百万级的消息。
  • 高可用性:通过Broker集群实现。
  • 可扩展性:通过增加Broker节点来扩展系统。

Kafka 代码示例

  • 消息生产者示例:使用KafkaTemplate发送消息到指定主题。
  • 消息消费者示例:使用@KafkaListener注解监听特定主题的消息。

分区的作用

  • 提高吞吐量:通过分区实现消息的负载均衡,提高系统处理能力。
  • 消息顺序性:同一个分区下的消息可以保证顺序消费,但不同分区间无法保证。

异步回调

  • 定义:在异步发送消息时,可以指定一个回调函数,用于处理Broker服务器的响应。
  • 用途:通常用于异常日志记录。

消费者消息提交

  • 自动提交:默认情况下,消费者客户端每5秒自动提交最大偏移量。
  • 手动提交:需要消费者在消费消息后手动提交偏移量,可以是同步或异步。

提交方式的优缺点

  • 自动提交
    • 优点:方便,无需额外配置。
    • 缺点:可能导致消息丢失或重复消费。
  • 手动提交
    • 优点:提供更细粒度的控制,减少消息丢失风险。
    • 缺点:可能影响应用程序的吞吐量,需要额外的日志记录。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值