写在前面:
❌ 你还在这样算排期吗?
撕日历、数周末、翻放假通知......
项目Deadline总算错?调休上班日漏算?
"明明该完成了,怎么又撞上节假日?"
✨ 现在,一切交给「 微信小程序:排期计算器 」!
引言
本文将详细介绍如何在Linux环境下安装并配置Apache Kafka。Kafka是一个分布式流处理平台,广泛应用于消息系统、指标收集、日志聚合等场景。为了顺利运行Kafka,首先需要确保已安装JDK。
一、下载Kafka
访问Kafka官网,根据需求选择合适的版本进行下载。
二、安装Kafka
解压安装包
假设安装目录为/opt/kafka/
,执行以下命令解压下载的Kafka压缩包:
bash
tar -zvxf kafka_2.11-2.1.0.tgz -C /opt/kafka/
配置修改
编辑Kafka的配置文件server.properties
:
bash
vim /opt/kafka/kafka_2.11-2.1.0/config/server.properties
修改如下内容,确保使用正确的IP地址:
properties
listeners=PLAINTEXT://<your-ip>:9092
注:请将<your-ip>
替换为本机的实际IP地址。
三、验证安装
启动Zookeeper
进入Kafka安装目录,并启动单节点Zookeeper实例:
bash
cd /opt/kafka/kafka_2.11-2.1.0
bin/zookeeper-server-start.sh -daemon config/zookeeper.properties
启动Kafka服务
接下来,启动Kafka服务:
bash
bin/kafka-server-start.sh config/server.properties
创建Topic
创建一个具有单一副本和分区的名为test
的topic:
bash
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
发送和接收消息
使用Kafka自带的生产者脚本发送消息:
bash
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
然后,在另一个终端中使用消费者脚本接收并打印消息:
bash
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
四、配置开机自启
为了实现Kafka及其依赖的Zookeeper服务随系统启动而自动启动,可以使用systemctl进行配置。
创建Systemd服务文件
在/lib/systemd/system/
目录下创建Zookeeper和Kafka的服务配置文件。
Zookeeper服务配置(zookeeper.service
)
ini
[Unit]
Description=Zookeeper service
After=network.target
[Service]
Type=simple
Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/java/jdk1.8.0_201/bin"
User=root
Group=root
ExecStart=/usr/local/kafka/kafka_2.12-2.2.0/bin/zookeeper-server-start.sh /usr/local/kafka/kafka_2.12-2.2.0/config/zookeeper.properties
ExecStop=/usr/local/kafka/kafka_2.12-2.2.0/bin/zookeeper-server-stop.sh
Restart=on-failure
[Install]
WantedBy=multi-user.target
Kafka服务配置(kafka.service
)
ini
[Unit]
Description=Apache Kafka server (broker)
After=network.target zookeeper.service
[Service]
Type=simple
Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/java/jdk1.8.0_201/bin"
User=root
Group=root
ExecStart=/usr/local/kafka/kafka_2.12-2.2.0/bin/kafka-server-start.sh /usr/local/kafka/kafka_2.12-2.2.0/config/server.properties
ExecStop=/usr/local/kafka/kafka_2.12-2.2.0/bin/kafka-server-stop.sh
Restart=on-failure
[Install]
WantedBy=multi-user.target
注:请根据实际安装路径调整上述文件中的路径设置。
刷新配置并启用服务
刷新systemd配置并启用Zookeeper和Kafka服务:
bash
systemctl daemon-reload
systemctl enable zookeeper
systemctl enable kafka
使用systemctl管理服务
现在,你可以使用以下命令来启动、停止或重启Zookeeper和Kafka服务:
bash
systemctl start zookeeper
systemctl start kafka
systemctl status zookeeper
systemctl status kafka
注意:启动Kafka之前必须先启动Zookeeper。
故障排除
如果遇到Zookeeper无法启动的问题,尝试删除/tmp/zookeeper/version-2/log.*
下的临时文件,再重新启动服务。