案例分为两部分:
- ZooKeeper集群部署
- Kafka集群部署 (本章)
二、kakfa集群部署
2.1 案例目标
- 了解Kafka分布式发布订阅消息系统
- 搭建Kafka分布式发布订阅消息系统
- 使用Kafka分布式发布订阅消息系统
2.2 案例分析
2.2.1 节点规划
公网IP | 内网IP | 主机名 |
---|---|---|
175.27.161.123 | 10.0.0.13 | ZK001 |
1.13.174.89 | 10.0.0.12 | ZK002 |
1.13.175.9 | 10.0.0.16 | ZK003 |
2.2.2 基础准备
软件包:kafka_2.11-1.1.1.tgz
因Kafka集群依赖于ZooKeeper服务,所以这里使用**Kafka集群搭建实战(一)**搭建好的zookeeper集群
2.3 案例实施
2.3.1 搭建Kafka集群
(1)解压Kafka软件包
将软件包上传至三个节点的/root/目录解压
tar -zxvf kafka_2.11-1.1.1.tgz
(2) 修改3个节点的配置文件
在配置文件(/root/kafka_2.11-1.1.1/config/server.properties)中找到以下两行并注释掉(在文本前加#)如下所示:
#broker.id=0
#zookeeper.connect=localhost:2181
broker.id:每台机器不能一样
zookeeper.connect:因为有3台ZooKeeper服务器,所以在这里zookeeper.connect设置为3台。
listeners:在配置集群的时候,必须设置,不然以后的操作会报找不到leader的错误。
zk001:
broker.id=1
zookeeper.connect=10.0.0.13:2181,10.0.0.12:2181,10.0.0.16:2181
listeners = PLAINTEXT://10.0.0.13:9092
zk002:
broker.id=2
zookeeper.connect=10.0.0.13:2181,10.0.0.12:2181,10.0.0.16:2181
listeners = PLAINTEXT://10.0.0.12:9092
zk003:
broker.id=3
zookeeper.connect=10.0.0.13:2181,10.0.0.12:2181,10.0.0.16:2181
listeners = PLAINTEXT://10.0.0.16:9092
(3)启动服务
ZK001:
[root@zk001 bin]# sh kafka-server-start.sh -daemon ../config/server.properties
[root@zk001 bin]#
[root@zk001 bin]# netstat -ntpl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1008/sshd
tcp6 0 0 10.0.0.13:9092 :::* LISTEN 14732/java
tcp6 0 0 :::46117 :::* LISTEN 14732/java
tcp6 0 0 :::2181 :::* LISTEN 4526/java
tcp6 0 0 10.0.0.13:3888 :::* LISTEN 4526/java
tcp6 0 0 :::39376 :::* LISTEN 4526/java
[root@zk001 bin]# jps
15299 Jps
14732 Kafka
4526 QuorumPeerMain
ZK002:
[root@zk002 bin]# sh kafka-server-start.sh -daemon ../config/server.properties
[root@zk002 bin]# jps
28839 Kafka
20028 QuorumPeerMain
28958 Jps
ZK003:
[root@zk003 bin]# sh kafka-server-start.sh -daemon ../config/server.properties
[root@zk003 bin]# jps
28552 Jps
20296 QuorumPeerMain
28509 Kafka
(4) 测试服务
ZK001:
[root@zk001 ~]# cd kafka_2.11-1.1.1/bin/
[root@zk001 bin]#
[root@zk001 bin]# ./kafka-topics.sh --create --zookeeper 10.0.0.13:2181 --replication-factor 1 --partitions 1 --topic test
Created topic "test". #出现这个表示成功
[root@zk001 bin]#
在zk002、zk003查看topic
ZK002:
[root@zk002 ~]# cd kafka_2.11-1.1.1/bin/
[root@zk002 bin]# ./kafka-topics.sh --list --zookeeper 10.0.0.12:2181
test
[root@zk002 bin]#
ZK003:
[root@zk003 ~]# cd kafka_2.11-1.1.1/bin/
[root@zk003 bin]# ./kafka-topics.sh --list --zookeeper 10.0.0.16:2181
test
[root@zk003 bin]#
测试完成~