(1)了解Kafka分布式发布订阅消息系统。
(2)搭建Kafka分布式发布订阅消息系统。
(3)使用Kafka分布式发布订阅消息系统。
Kafka集群的节点规划,见表4-3-1。
表4-3-1节点规划
IP | 主机名 | 节点 |
172.16.51.23 | zookeeper1 | 集群节点 |
172.16.51.32 | zookeeper2 | 集群节点 |
172.16.51.41 | zookeeper3 | 集群节点 |
使用ZooKeeper集群搭建的3个节点来构建Kafka集群,因为Kafka服务依赖于ZooKeeper服务,所以不再多创建云主机来进行试验。软件包使用提供的kafka_2.11-1.1.1.tgz软件包。
# tar -zxvf kafka_2.11-1.1.1.tgz |
在配置文件中找到以下两行并注释掉(在文本前加#)如下所示:
#broker.id=0
#zookeeper.connect=localhost:2181
然后在配置文件的底部添加如下3个配置。
zookeeper1节点:
broker.id=1
zookeeper.connect=172.16.51.23:2181,172.16.51.32:2181,172.16.51.41:2181
listeners = PLAINTEXT://172.16.51.23:9092
命令解析:
l broker.id:每台机器不能一样。
l zookeeper.connect:因为有3台ZooKeeper服务器,所以在这里zookeeper.connect设置为3台。
l listeners:在配置集群的时候,必须设置,不然以后的操作会报找不到leader的错误。
另外两台服务器,zookeeper.connect的配置跟这里的一样,但是broker.id和listeners不能一样。
zookeeper2节点:
broker.id=2
zookeeper.connect=172.16.51.23:2181,172.16.51.32:2181,172.16.51.41:2181
listeners = PLAINTEXT://172.16.51.32:9092
zookeeper3节点:
broker.id=3
zookeeper.connect=172.16.51.23:2181,172.16.51.32:2181,172.16.51.41:2181
listeners = PLAINTEXT://172.16.51.41:9092
启动服务需要权限用chmod命令在增加权限
(3)启动服务
zookeeper1节点:
[root@zookeeper1 bin]# ./kafka-server-start.sh -daemon ../config/server.properties
[root@zookeeper1 bin]# jps
11416 Kafka
11464 Jps
10479 QuorumPeerMain
zookeeper2节点:
[root@zookeeper2 bin]# ./kafka-server-start.sh -daemon ../config/server.properties
[root@zookeeper2 bin]# jps
11121 Kafka
11188 Jps
10175 QuorumPeerMain
zookeeper3节点:
[root@zookeeper3 bin]# ./kafka-server-start.sh -daemon ../config/server.properties
[root@zookeeper3 bin]# jps
11080 Kafka
10188 QuorumPeerMain
11149 Jps
zookeeper1节点:
[root@zookeeper1 bin]# ./kafka-topics.sh --create --zookeeper 172.16.51.23:2181 --replication-factor 1 --partitions 1 --topic test
Created topic "test".
如果成功的话,会输出“Created topic "test".”。
zookeeper2节点:
[root@zookeeper2 bin]# ./kafka-topics.sh --list --zookeeper 172.16.51.32:2181
test
zookeeper3节点:
[root@zookeeper3 bin]# ./kafka-topics.sh --list --zookeeper 172.16.51.41:2181
test
测试成功。
因篇幅问题不能全部显示,请点此查看更多更全内容