一、部署JDK
- 官网下载jdk版本
https://www.oracle.com/java/technologies/javase/jdk11-archive-downloads.html
- 解压安装
tar xzvf jdk-11.0.13_linux-x64_bin.tar.gz
- 配置环境变量
vi /etc/profile
export JAVA_HOME="/usr/local/jdk11.0.13"
export PATH="$JAVA_HOME/bin:$PATH"
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
source /etc/profile
二、部署Zookeeper集群
- 下载安装包
Zookeeper下载地址:
https://www.apache.org/dyn/closer.lua/zookeeper/zookeeper-3.8.4/apache-zookeeper-3.8.4-bin.tar.gz
- 解压安装
tar xzvf apache-zookeeper-3.8.4-bin.tar.gz
- 修改配置文件
修改config/zoo.cfg
#修改数据存储目录
dataDir=/data/zookeeper/data
#文件末尾追加配置内容,添加server端口传输
server.1=192.168.0.1:2888:3888
server.2=192.168.0.2:2888:3888
server.3=192.168.0.3:2888:3888
- 创建myid文件
- 在每台服务器zookeeper的dataDir对应目录下创建 myid 文件,内容为对应ip的zookeeper服务器编号;
- dataDir目录是你在zoo.cfg中配置的目录。内容是你在zoo.cfg中配置集群时server.后面的数字。
- 添加 myid 文件时,一定要在 Linux 里面创建,不要 notepad++等工具里面创建后上传,因为可能会乱码。并且内容上下不要有空行,左右不要有空格。
第一台:
echo 1 > data/myid
第二台:
echo 2 > data/myid
第三台:
echo 3 > data/myid
- 启动Zookeeper服务
./bin/zkServer.sh start
三、部署Kafka集群
- 下载安装包
Kafka下载地址:
https://downloads.apache.org/kafka/3.7.0/kafka_2.13-3.7.0.tgz
- 解压
tar xzvf kafka_2.13-3.7.0.tgz
- 修改配置文件
进入config目录,修改server.properties。这个配置文件里面的配置项非常多,下面列出几个要重点关注的配置
#broker 的全局唯一编号,不能重复,只能是数字。
broker.id=0
#数据文件地址。同样默认是给的/tmp目录。
log.dirs=/data/kafka/logs
#默认的每个Topic的分区数
num.partitions=1
#zookeeper的服务地址
zookeeper.connect=192.168.0.1:2181,192.168.0.2:2181,
listeners=PLAINTEXT://192.168.0.1:9092
broker.id需要每个服务器上不一样,分发到其他服务器上时,要注意修改一下,比如第一台是0,第二台就是1,第三台的配置就是2。
当多个Kafka服务注册到同一个zookeeper集群上的节点,会自动组成集群。
- 启动kafka集群
cd /data/kafka
./bin/kafka-server-start.sh -daemon config/server.properties
- 测试
1)创建topic
./bin/kafka-topics.sh --create --bootstrap-server 192.168.0.1:9092 \
--replication-factor 3 --partitions 2 --topic testTopic
2) 查看topic
./bin/kafka-topics.sh --bootstrap-server 192.168.0.1:9092 --list
3) 向topic发送消息
./bin/kafka-console-producer.sh --bootstrap-server 192.168.0.1:9092 \
--topic testTopic
4) 消费消息
./bin/kafka-console-consumer.sh --bootstrap-server 192.168.0.1:9092 \
--topic testTopic