ubuntu

Kafka配置Ubuntu上有哪些最佳实践

小樊
43
2025-04-10 10:34:17
栏目: 智能运维

在Ubuntu上配置Apache Kafka时,以下是一些最佳实践:

1. 安装Java环境

Kafka是用Scala编写的,运行在JVM上,因此需要先安装JDK。推荐使用JDK 1.8。

sudo apt update
sudo apt install openjdk-11-jdk -y

2. 下载和解压Kafka

从Apache Kafka官网下载预编译的Kafka二进制文件,而不是源文件。例如,下载Kafka 3.6.2版本。

wget https://downloads.apache.org/kafka/3.6.2/kafka_2.12-3.6.2.tgz
tar -xzf kafka_2.12-3.6.2.tgz
sudo mv kafka_2.12-3.6.2 /usr/local/kafka

3. 配置Zookeeper

/usr/local/kafka/config目录下编辑zookeeper.properties文件。

sudo vi /usr/local/kafka/config/zookeeper.properties

主要配置项包括:

4. 配置Kafka

/usr/local/kafka/config目录下编辑server.properties文件。

sudo vi /usr/local/kafka/config/server.properties

主要配置项包括:

5. 启动Zookeeper和Kafka服务

使用systemd管理服务,创建并启动Zookeeper和Kafka服务。

# 创建并启动Zookeeper服务
sudo bash -c 'cat <<EOF > /etc/systemd/system/zookeeper.service
[Unit]
Description=Apache Zookeeper server
Documentation=http://zookeeper.apache.org
Requires=network.target
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/kafka/bin/zookeeper-server-start.sh /usr/local/kafka/config/zookeeper.properties
ExecStop=/usr/local/kafka/bin/zookeeper-server-stop.sh
Restart=always
User=kafka
Group=kafka

[Install]
WantedBy=multi-user.target
EOF'

sudo systemctl daemon-reload
sudo systemctl start zookeeper
sudo systemctl enable zookeeper

# 创建并启动Kafka服务
sudo bash -c 'cat <<EOF > /etc/systemd/system/kafka.service
[Unit]
Description=Apache Kafka Server
Documentation=http://kafka.apache.org/documentation.html
Requires=zookeeper.service
After=zookeeper.service

[Service]
Type=simple
Environment="JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64"
ExecStart=/usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties
ExecStop=/usr/local/kafka/bin/kafka-server-stop.sh
Restart=always
User=kafka
Group=kafka

[Install]
WantedBy=multi-user.target
EOF'

sudo systemctl daemon-reload
sudo systemctl start kafka
sudo systemctl enable kafka

6. 防火墙配置

开放Kafka需要的端口(例如:9092和9093)。

sudo firewall-cmd --zone=public --add-port=9092/tcp --permanent
sudo firewall-cmd --zone=public --add-port=9093/tcp --permanent
sudo firewall-cmd --reload

7. 验证安装

使用以下命令检查Kafka是否在监听端口9092。

netstat -tulnp | grep 9092

8. 创建和测试主题

创建一个测试主题并测试生产者和消费者。

# 创建测试主题
/usr/local/kafka/bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic test

# 列出主题
/usr/local/kafka/bin/kafka-topics.sh --list --bootstrap-server localhost:9092

# 生产消息
/usr/local/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test

# 消费消息
/usr/local/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning

9. 集群配置(可选)

如果需要配置Kafka集群,可以参考以下步骤:

/usr/local/kafka/bin/kafka-storage.sh random-uuid

通过这些步骤,您可以在Ubuntu上成功配置和运行Apache Kafka。希望这些最佳实践对您有所帮助。

0
看了该问题的人还看了