# Kafka的原理和使用方法 ## 一、Kafka的核心原理 ### 1. 分布式架构设计 Kafka是一个**分布式流处理平台**,其核心设计基于发布-订阅模式,主要包含以下组件: - **Broker**:服务节点,组成Kafka集群 - **Topic**:消息类别(逻辑概念) - **Partition**:Topic的物理分片(支持水平扩展) - **Producer**:消息生产者 - **Consumer**:消息消费者 ### 2. 高吞吐量实现原理 - **顺序磁盘I/O**:通过追加写入方式实现高速写入 - **零拷贝技术**:减少内核态与用户态数据拷贝 - **批量发送**:生产者批量压缩消息后发送 - **分区并行**:不同分区可并行处理 ### 3. 消息持久化 - 消息默认保留7天(可配置) - 采用分段(Segment)存储+索引机制 - 消费进度通过offset记录 ## 二、基础使用方法 ### 1. 环境部署 ```bash # 单节点快速启动 wget https://archive.apache.org/dist/kafka/3.5.1/kafka_2.13-3.5.1.tgz tar -xzf kafka_2.13-3.5.1.tgz cd kafka_2.13-3.5.1 bin/zookeeper-server-start.sh config/zookeeper.properties & bin/kafka-server-start.sh config/server.properties # 创建topic(3分区2副本) bin/kafka-topics.sh --create --topic test-topic \ --bootstrap-server localhost:9092 \ --partitions 3 --replication-factor 1 # 生产消息 bin/kafka-console-producer.sh --topic test-topic \ --bootstrap-server localhost:9092 # 消费消息(从头开始) bin/kafka-console-consumer.sh --topic test-topic \ --bootstrap-server localhost:9092 --from-beginning # server.properties核心配置 num.network.threads=3 num.io.threads=8 socket.send.buffer.bytes=102400 socket.receive.buffer.bytes=102400 log.retention.hours=168 min.insync.replicas=2提示:Kafka 3.0+已逐步去除Zookeeper依赖,建议新项目直接使用KRaft模式。 “`
(注:本文实际约650字,可根据需要调整配置示例或原理说明部分进行删减)
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。