《Kafka 安装、配置与快速上手》
Kafka 是分布式流处理平台,具备高吞吐、可持久化、可分区复制等特点。本文基于 Kafka 2.5.0(自带 ZooKeeper)演示下载、启动、生产消费与多 broker 集群搭建。
1 下载
wget https://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.5.0/kafka_2.12-2.5.0.tgz --no-check-certificate
tar -xzf kafka_2.12-2.5.0.tgz
cd kafka_2.12-2.5.0
2 启动 kafka
2.1 启动 Zookeeper
# 前台启动
bin/zookeeper-server-start.sh config/zookeeper.properties
# daemon 模式启动
bin/zookeeper-server-start.sh -daemon config/zookeeper.properties
2.2 启动 Kafka broker
# 前台启动
bin/kafka-server-start.sh config/server.properties
# 后台运行
bin/kafka-server-start.sh -daemon config/server.properties
3 创建 Topic
bin/kafka-topics.sh --create --bootstrap-server localhost:9092 \
--replication-factor 1 --partitions 1 --topic test
# 列出当前所有 topic
bin/kafka-topics.sh --list --bootstrap-server localhost:9092
4 控制台生产与消费
# producer:输入一行发送一条消息(Ctrl+D 退出)
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
# consumer:从最早消息开始消费
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 \
--topic test --from-beginning
5 启动多 Broker 构成集群
Kafka 目录自带 server-1、server-2 配置示例。核心差异项:
# config/server-1.properties
broker.id=1
listeners=PLAINTEXT://:9093
log.dirs=/tmp/kafka-logs-1
# config/server-2.properties
broker.id=2
listeners=PLAINTEXT://:9094
log.dirs=/tmp/kafka-logs-2
分别启动即可组成多 broker 集群。
6 创建多分区、多副本的 Topic
# 删除 topic(需配置 delete.topic.enable=true)
bin/kafka-topics.sh --bootstrap-server localhost:9092 --delete --topic test
bin/kafka-topics.sh --create --bootstrap-server localhost:9092 \
--replication-factor 3 --partitions 3 --topic my-replicated-topic
7 查看 Topic 描述信息
bin/kafka-topics.sh --describe --bootstrap-server localhost:9092 \
--topic my-replicated-topic
Topic: my-replicated-topic PartitionCount: 3 ReplicationFactor: 3
Topic: my-replicated-topic Partition: 0 Leader: 1 Replicas: 1,0,2 Isr: 1,0,2
Topic: my-replicated-topic Partition: 1 Leader: 0 Replicas: 0,2,1 Isr: 0,2,1
Topic: my-replicated-topic Partition: 2 Leader: 2 Replicas: 2,1,0 Isr: 2,1,0
Leader:负责该分区的读写节点。Isr:与 leader 保持同步的副本集合。
8 补充参考
- 官方文档:http://kafka.apache.org/documentation/
- API 文档:https://kafka.apache.org/22/javadoc/overview-summary.html
- server.properties 配置详解:CSDN 解读
- Kafka 优化建议:InfoQ 文章
- 相似产品对比:RocketMQ(https://github.com/apache/rocketmq)同为高吞吐实时消息中间件。
阅读 —
·
全站 —