一、集群环境
IP地址 | 角色 |
---|---|
10.11.113.181 | 源端:zk 集群、kafka 集群 |
10.11.113.182 | 源端:zk 集群、kafka 集群 |
10.11.113.183 | 源端:zk 集群、kafka 集群 |
10.11.113.184 | 目标端:zk 集群、kafka 集群 |
10.11.113.185 | 目标端:zk 集群、kafka 集群 |
10.11.113.186 | 目标端:zk 集群、kafka 集群 |
二、JDK 环境
tar -zxvf jdk-8u321-linux-x64.tar.gz -C /opt
echo "export PATH=$PATH:/opt/jdk1.8.0_321/bin" >> ~/.bashrc
source ~/.bashrc
# java -version
java version "1.8.0_321"
Java(TM) SE Runtime Environment (build 1.8.0_321-b07)
Java HotSpot(TM) 64-Bit Server VM (build 25.321-b07, mixed mode)
三、Zookeeper 集群
tar -zxvf apache-zookeeper-3.7.1-bin.tar.gz -C /opt
cd /opt/apache-zookeeper-3.7.1-bin/
mkdir dataLog data
注意 myid 内的数字不能重复,作为 zookeeper 的独立标志
# 身份标识,区别其他 zookeeper
echo 1 > data/myid
echo 2 > data/myid
echo 3 > data/myid
修改配置文件
cp conf/zoo_sample.cfg conf/zoo.cfg
修改内容
dataDir=/opt/apache-zookeeper-3.7.1-bin/data/
dataLogDir=/opt/apache-zookeeper-3.7.1-bin/dataLog/
server.1=10.11.113.181:2888:3888
server.2=10.11.113.182:2888:3888
server.3=10.11.113.183:2888:3888
添加环境变量
echo "export PATH=$PATH:/opt/apache-zookeeper-3.7.1-bin/bin" >> ~/.bashrc
source ~/.bashrc
启动 zookeeper
zkServer.sh start
查看状态
zkServer.sh status
四、Kafka 集群
tar -zxvf kafka_2.13-2.7.0.tgz -C /opt
cd /opt/kafka_2.13-2.7.0
编辑配置文件
vim config/server.properties
# kafka 身份标识,区别其他 kafka
broker.id=1
# 当前主机 IP
listeners=PLAINTEXT://10.11.113.181:9092
# 广播地址
advertised.listeners=PLAINTEXT://10.11.113.181:9092
# 日志数据文件
log.dirs=/opt/kafka_2.13-2.7.0/logs
# zookeeper 集群地址
zookeeper.connect=10.11.113.181:2181,10.11.113.182:2181,10.11.113.183:2181
echo "export PATH=$PATH:/opt/kafka_2.13-2.7.0/bin" >> ~/.bashrc
source ~/.bashrc
启动 kafka 集群
bin/kafka-server-start.sh -daemon config/server.properties
tailf logs/server.log
查看进程含有 QuorumPeerMain、Kafka
# jps
3378 Jps
2726 QuorumPeerMain
3278 Kafka
五、Kafka 集群测试
5.1 创建 topic
bin/kafka-topics.sh --zookeeper 10.11.113.181:2181 \
--create \
--topic my-test-topic \
--replication-factor 2 \
--partitions 1
# 参数解释
--topic: topic 名称
--replication-factor: 副本数量
--partitions: 分区数量
5.2 查看当 topic 列表
bin/kafka-topics.sh --zookeeper 10.11.113.181:2181 --list
5.3 查看 topic 详细信息
bin/kafka-topics.sh --zookeeper 10.11.113.181:2181 --describe --topic my-test-topic
5.4 消息生产者
运行一个消息生产者,指定 topic 为刚刚创建的 my-test-topic
$ bin/kafka-console-producer.sh --bootstrap-server 10.11.113.181:9092 --topic my-test-topic
>1
>2
>3
>4
>5
>6
>7
>8
>9
5.5 消息消费者
运行一个消息消费者,同样指定 topic 为 my-test-topic
--from-beginning: 从头开始接收消息
$ bin/kafka-console-consumer.sh --bootstrap-server 10.11.113.181:9092 --topic my-test-topic --from-beginning
1
2
3
4
5
6
7
8
9
5.6 删除 topic
bin/kafka-topics.sh --zookeeper 10.11.113.181:2181 --delete --topic my-test-topic
想要彻底删除 topic,需要一个参数处于启用状态: delete.topic.enable = true