CentOS下安装Kafka3

kafka是分布式消息队列,本文讲述其在centos(centos 7.5)下的安装。安装过程可以参考其官方文档https://kafka.apache.org/36/documentation.html

首先在官网 https://kafka.apache.org/downloads 下载Kafka二进制文件(官网的压缩包里面已经包含了Linux和windows的Kafka可执行文件了),选择目前比较新的3.6.1版本下载。

一、安装Java环境

Kafka 是用 Java 开发的,因此需要安装java环境。 从Kafka的官方文档 Apache Kafka 可以看到,Kafka3.6.1需要的java环境为Java8 或以上(不同版本的Kafka需要的Java环境版本也不一样)。

从Java官网Java Downloads | Oracle 下载 JDK(SUN公司提供的一套Java开发环境,简称JDK(JavaDevelopmentKit),它是整个Java的核心,其中包括Java编译器、Java运行工具、Java文档生成工具、Java打包工具)

将java jdk拷贝到CentOS中,执行命令:

bash 复制代码
tar -zxvf jdk-21_linux-x64_bin.tar.gz
cd jdk-21.0.2
mkdir /usr/lib/jdk
cd ..
mv jdk-21.0.2/ /usr/lib/jdk

配置java环境变量,将环境变量配置在etc/profile或/etc/bashrc中

bash 复制代码
vi /etc/bashrc

在末尾添加以下几行文字:

bash 复制代码
#set java env
export JAVA_HOME=/usr/lib/jdk/jdk1.8.0_291
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

让环境变量生效

bash 复制代码
source /etc/bashrc

执行命令:

bash 复制代码
java -version

如果出现现版本号说明Java环境安装成功:

二、安装部署Kafka

然后我们来安装Kafka,将之前下载下来的Kafka二进制文件kafka_2.12-3.6.1.tgz拷贝到CentOS中,执行命令:

bash 复制代码
tar -zxvf kafka_2.12-3.6.1.tgz
mv kafka_2.12-3.6.1 kafka_3.6.1
cd kafka_3.6.1

可以看到目录结构如下:

.kafka3版本之后自带zookeeper。配置zookeeper的配置文件:

bash 复制代码
vi config/zookeeper.properties

设置快照存贮路径

配置Kafka的配置文件:

bash 复制代码
vi config/server.properties

设置日志文件的存贮路径:

启动zookeeper:

bash 复制代码
bin/zookeeper-server-start.sh -daemon config/zookeeper.properties

启动kafka:

bash 复制代码
bin/kafka-server-start.sh -daemon config/server.properties

通过netstat命令查看到9092端口被一个java进程占用,说明启动成功了

三、Kafka的基本操作

创建主题:

bash 复制代码
bin/kafka-topics.sh --create --topic quickstart-events --bootstrap-server localhost:9092

Kafka 中的消息以主题为单位进行归类,生产者负责将消息发送到特定的主题(发送到 Kafka 集群中的每一条消息都要指定一个主题),而消费者负责订阅主题并进行消费。

查看主题属性:

bash 复制代码
bin/kafka-topics.sh --describe --topic quickstart-events --bootstrap-server localhost:9092

新建两个终端,分别执行命令,通过生产者发送消息:

bash 复制代码
bin/kafka-console-producer.sh --topic quickstart-events --bootstrap-server localhost:9092

通过消费者消费消息:

bash 复制代码
bin/kafka-console-consumer.sh --topic quickstart-events --from-beginning --bootstrap-server localhost:9092

然后就可以看到生产者和消费者进行通讯了:

四、遇到问题

Kafka生产者、消费者通讯时可能会报错:Error connecting to node xxxxx:9092,可以参考:《kafka发送数据报错: Error connecting to node xxxxx:9092 (id: 1 rack: null)java.net.UnknownHostExceptio

相关推荐
喝醉酒的小白7 小时前
Kafka 集群应急故障排查手册
分布式·kafka
无籽西瓜a7 小时前
【西瓜带你学Kafka | 第八期】 Kafka的主从同步、消息可靠性、流处理与顺序消费(文含图解)
java·分布式·后端·kafka·消息队列·mq
qqVHU7 小时前
kafka笔记
笔记·分布式·kafka
醉颜凉7 小时前
Kafka 消息过期时间设置与清理机制全解析
分布式·kafka·linq
Jinkxs7 小时前
SkyWalking - Kafka _ RabbitMQ 消息链路追踪支持
kafka·rabbitmq·skywalking
犬小哈7 小时前
滴滴二面:你项目为什么选择 RocketMQ,而不是 Kafka? 我:支支吾吾....
分布式·kafka·rocketmq
Jinkxs7 小时前
Kafka - 日志刷盘策略优化:sync.ms、flush.messages配置
分布式·kafka
武子康8 小时前
Java-219 RocketMQ Spring Boot 集成指南:生产者与消费者实战
java·spring boot·分布式·kafka·消息队列·rocketmq·java-rocketmq
清平乐的技术专栏8 小时前
【Kafka笔记】(一)认识 Kafka
笔记·分布式·kafka
清平乐的技术专栏9 小时前
【Kafka笔记】(四)Kafka 三种消费模式
笔记·分布式·kafka