安装和配置

依赖

需要Java 1.8+

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#1.选择版本下载tar.gz文件
#https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

#2.解压压缩文件
tar zxvf jdk-8u281-linux-x64.tar.gz

#3.将解压的文件放在user/local/java/下,没有文件夹创建
mv jdk1.8.0_281 /usr/local/java/

#4.编辑profile文件
vim /etc/profile
##########################################
export JAVA_HOME=/usr/local/java/jdk1.8.0_281
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
##########################################

#5.生效环境变量
source /etc/profile

下载和安装

安装包 指定安装包 kafka 2.11-2.3.0.tgz

1
tar -zxvf kafka_2.11-2.3.0.tgz #解压

配置kafka

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#修改 config/server.properties配置文件的
vim /usr/local/kafka/kafka_2.11-2.3.0/config/server.properties
##########################################
#如果要更换端口号,当前文件中没有包含端口号的设置,可自行设置
#port=2026

#监听端口
#如果ip设置为0.0.0.0,需要设置advertised.listeners为外网/内网地址(非localhost/127.0.0.1),否则kafka将无法启动,producer和consumer找不到该broker
listeners = PLAINTEXT://0.0.0.0:9092

#广播地址,将该配置通告给producer和consumer,如果不设置,使用listeners的配置
#PLAINTEXT://{内网/外网地址}:9092
advertised.listeners=PLAINTEXT://106.14.76.175:9092

#如果要修改zookeeper端口,需要同步修改kafka配置文件
zookeeper.connect=localhost:2181
##########################################

配置zookeeper

1
2
#设置zookeeper端口号,需要同步修改kafka配置文件
clientPort=2181

启动kafka和zookeeper

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#赋予/bin 下的sh 文件可执行权限 
chmod +x *.sh

#创建软连接(可不做)
cd /usr/local/kafka
ln -s kafka_2.11-2.3.0/ kafka

#启动zookeeper
./bin/zookeeper-server-start.sh -daemon config/zookeeper.properties

#启动kafka
./bin/kafka-server-start.sh config/server.properties


# [[服务管理]]
#/usr/lib/systemd/system 下创建 kafka.service 和 zookeeper.service 文件
#服务文件配置详情可见 基础工具与设置-建立服务启动文件

#应用配置
systemctl daemon-reload

#设置开机自启
systemctl enable kafka.service
systemctl enable zookeeper.service

#启动进程
systemctl start kafka.service
systemctl start zookeeper.service

kafka部署测试

进入kafka根目录下的bin/目录中,需要bin/目录下的.sh脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#查看topic列表
kafka-topics.sh --list --zookeeper 127.0.0.1:2181

#查看特定topic
kafka-topics.sh --list --zookeeper 127.0.0.1:2181

#创建topic,主题名为test
kafka-topics.sh --create --zookeeper 127.0.0.1:2181 --replication-factor 1 --partitions 1 --topic test

#发送和接收消息需要两个终端连接
#发送消息
kafka-console-producer.sh --broker-list 127.0.0.1:9092 --topic test

#接收消息
kafka-console-consumer.sh --bootstrap-server 127.0.0.1:9092 --topic test --from-beginning

#删除topic
kafka-topics.sh --zookeeper 127.0.0.1:2181 --delete --topic test

kafka运行日志

kafka运行时间越长,自身运行所产生的与消息无关的日志会越来越多,需要配置log4j.properties文件

1
2
3
4
5
6
vim /usr/local/kafka/kafka_2.11-2.3.0/config/log4j.properties
##########################################
#将以下参数进行修改,将kafkaAppender去除
#log4j.rootLogger=INFO, stdout, kafkaAppender
log4j.rootLogger=INFO, stdout
##########################################