CentOS 7 Kafka集群搭建指南

Kafka简介
Kafka是一种分布式流处理平台,由LinkedIn开发,现已成为Apache软件基金会的一部分,Kafka主要用于构建实时数据流应用,如实时分析、数据监控、事件源等,Kafka具有高吞吐量、可扩展性、持久化、容错性等特点。
CentOS 7环境准备
安装Java
Kafka是基于Java开发,因此需要安装Java环境,以下是在CentOS 7上安装Java的步骤:
# 安装Java开发包 sudo yum install java-1.8.0-openjdk-devel -y # 验证Java版本 java -version
安装Zookeeper
Kafka依赖于Zookeeper进行分布式协调,以下是在CentOS 7上安装Zookeeper的步骤:
# 安装Zookeeper sudo yum install zookeeper -y # 启动Zookeeper sudo systemctl start zookeeper # 设置Zookeeper开机自启 sudo systemctl enable zookeeper
Kafka集群搭建
下载Kafka

访问Kafka官网(https://kafka.apache.org/)下载最新版本的Kafka,解压到指定目录。
# 下载Kafka wget https://www.apache.org/dyn/closer.cgi?path=/mirror.apache.org/kafka/2.4.1/kafka_2.4.1-2.4.1.tar.gz # 解压Kafka tar -xvf kafka_2.4.1-2.4.1.tar.gz
配置Kafka
进入Kafka解压后的目录,复制config/server.properties到config/server.properties.template,然后修改配置文件:
# 复制配置文件 cp config/server.properties config/server.properties.template # 修改配置文件 vi config/server.properties
主要配置项如下:
| 配置项 | 说明 |
|---|---|
| broker.id | Kafka集群中每个节点的唯一标识 |
| listeners | Kafka监听的地址和端口 |
| log.dirs | Kafka日志存放路径 |
| zookeeper.connect | Zookeeper连接地址 |
| num.partitions | 主题分区数 |
| replication.factor | 主题副本因子 |
启动Kafka
进入Kafka解压后的目录,启动Kafka:
# 启动Kafka bin/kafka-server-start.sh config/server.properties
Kafka客户端操作
创建主题
# 创建一个名为test的主题,分区数为1,副本因子为1 bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
生产者发送消息

# 启动生产者 bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test # 发送消息 This is a test message
消费者接收消息
# 启动消费者 bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning # 接收消息 This is a test message
FAQs
Q1:Kafka集群中如何设置安全认证?
A1:Kafka支持安全认证,需要在config/server.properties中配置以下参数:
# 启用安全认证 sasl.mechanism.inter.broker.protocol=SCRAM-SHA-256 # 设置用户名和密码 sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required username="admin" password="admin-secret";
Q2:Kafka集群中如何设置数据备份?
A2:Kafka支持数据备份,需要在config/server.properties中配置以下参数:
# 设置数据备份路径 log.dirs=/path/to/backup
在Kafka解压后的目录下,创建config/kafka-configs-backup.properties文件,并复制相关配置,然后执行以下命令进行数据备份:
bin/kafka-configs.sh --zookeeper localhost:2181 --alter --add-config 'log.dirs=/path/to/backup' --entity-type brokeracls --entity-name 'kafka'

