kafka的基本介绍

企业中离线业务场景实时业务场景都需要使用到kafka
Kafka具备数据的计算能力和存储能力,但是两个能力相对(MR/SPARK,HDFS)较弱.
Kafka角色的角色与hbase比较像,层级关系比较多。
消息:应用之间传送的数据,或点与点之间,点与多点之间传递的数据,传递的信息。
消息队列:是一种应用间的通信方式以队列的形式传递。

消息队列的应用场景
应用解耦合:多应用间通过消息队列对同一消息进行处理
在这里插入图片描述
异步处理:多应用对消息队列中同一消息进行处理
在这里插入图片描述
限流削峰:用于秒杀或抢购活动中,避免流量过大导致应用系统挂掉的情况;
在这里插入图片描述
消息驱动的系统:有前面消息传递到后,后面的才会触发动作。
在学习MR时做的游戏,后面的同学在没有接收到前面同学的信息之前是不允许操作的,这个就是消息系统。
消息系统的方式
1、点对点的方式
消息队列
发送者 (生产者):生产数据的程序/人/对象
接收者(消费者):处理队列内的数据的程序/人/对象

每个消息只有一个接收者,发送者和接收者间没有依赖性,接收者在成功接收消息之后需向队列应答成功。
2、发布-订阅的方式
角色主题(Topic):消息得分类,分组(王者荣耀,QQ飞车)
发布者(Publisher):生产者
订阅者(Subscriber):消费者

每个消息可以有多个订阅者,发布者和订阅者之间有时间上的依赖性,订阅者需要提前订阅该角色主题。
在这里插入图片描述
Kafka:是一个分布式的(可以多节点),分区的,多副本的,多订阅者的消息发布订阅系统。
Kafka对消息分类使用topic
生产者:Producer
消费者:Consumer
服务器:Broker

在这里插入图片描述

<think>嗯,用户想了解Apache Kafka基本概念和核心功能。首先,我需要回忆一下Kafka的定义和主要用途。Kafka是一个分布式流处理平台,主要用于处理实时数据流,支持发布-订阅模式,这在消息队列系统中很常见。根据引用[1]和[3],Kafka具有高吞吐量、可扩展性和容错性,适合企业级消息传递和大规模数据处理。 接下来,核心功能方面,用户可能需要知道Kafka的四个核心API,如生产者API、消费者API等,这些在引用[1]和[4]里提到过。另外,Kafka的架构包括Broker、Topic、Partition这些概念,需要详细解释。比如,Topic是消息的分类,Partition用于横向扩展和并行处理,引用[3]和[4]中的信息可以支持这部分内容。 用户可能还会关心Kafka的存储机制,比如它的高性能存储模块,这部分在引用[3]里有提到。另外,Kafka与其他系统的集成能力,比如通过Kafka Connect进行数据导入导出,以及流处理能力如Kafka Streams,这些也是核心功能的一部分。 需要注意的是,用户的问题可能涉及Kafka的分布式特性,比如ZooKeeper的作用和KRaft模式的引入,引用[5]中提到Kafka 3.0开始使用KRaft替代ZooKeeper,这一点要说明清楚。 此外,应用场景部分需要举例说明,比如在微服务架构中的异步通信,日志聚合,实时分析等,引用[4]中的例子可以作为参考。还要提到Kafka数据管道中的作用,连接不同系统进行数据流转。 最后,生成相关问题时要覆盖用户可能进一步想了解的内容,比如架构组件、消息模式、存储机制、ZooKeeper和KRaft的区别,以及应用场景。确保问题有针对性,帮助用户深入理解Kafka的不同方面。</think>### Apache Kafka 简介及核心功能 #### 1. **基本概念** Apache Kafka 是一个**分布式流处理平台**,主要用于实时数据流的处理、存储和传输。其核心设计目标是实现高吞吐量、水平扩展和容错能力,适用于大规模数据处理场景[^1][^3]。 #### 2. **核心功能** - **分布式流系统** Kafka 通过分布式架构将数据分片存储在多个节点(Broker)上,支持横向扩展。每个 Topic 分为多个 Partition,每个 Partition 可在不同 Broker 上复制以提高容错性[^3][^5]。 - **发布-订阅模式** 生产者(Producer)将消息发布到 Topic,消费者(Consumer)订阅 Topic 并按需消费消息。例如,微服务中可用 Kafka 实现服务间异步通信,确保解耦和可靠传输[^4]。 - **高性能存储** Kafka 采用顺序读写和零拷贝技术优化磁盘 I/O,支持高吞吐量(百万级消息/秒)。数据按时间或大小策略持久化存储,便于回溯和批量处理。 - **流处理能力** 通过 Kafka Streams API 或集成外部框架(如 Flink),可直接对数据流进行实时处理(如聚合、过滤)。 #### 3. **核心组件** - **Broker**:Kafka 集群中的单个节点,负责消息存储和转发。 - **Topic**:逻辑上的消息分类,例如 `user_activity` 或 `payment_events`。 - **Partition**:Topic 的分区,每个 Partition 是一个有序、不可变的消息队列。 - **Producer/Consumer**:生产者推送消息到 Topic,消费者按需拉取消息[^3]。 #### 4. **关键特性** - **容错性**:通过副本机制(Replication)保障数据可靠性,即使部分节点故障,数据仍可用。 - **扩展性**:新增 Broker 可自动分配负载,无需停机。 - **持久化**:消息可配置保留时间(如 7 天),支持历史数据重放[^3]。 #### 5. **应用场景** - **日志聚合**:集中收集多服务的日志数据。 - **实时分析**:结合流处理框架进行实时指标计算(如用户行为分析)。 - **事件溯源**:记录系统状态变化事件,用于审计或回放[^4]。 ```plaintext 示例架构: 生产者 → Kafka Topic(Partition 1, Partition 2) → 消费者组 ``` #### 6. **生态集成** - **Kafka Connect**:工具库,支持与数据库、Hadoop 等系统集成。 - **KRaft 模式**:Kafka 3.0+ 版本支持去 ZooKeeper 的元数据管理,简化集群运维。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值