实战案例——Kafka集群部署

1. 规划节点

IP 主机名 节点
192.168.100.10 zookeeper1 集群节点
192.168.100.20 zookeeper2 集群节点
192.168.100.30 zookeeper 集群节点

2. 基础准备

使用ZooKeeper集群搭建的3个节点来构建Kafka集群,因为Kafka服务依赖于ZooKeeper服务, 所以不再多创建云主机来进行试验。软件包使用提供的kafka_2.11-1.1.1.tgz软件包。

1. 搭建Kafka集群

(1)解压Kafka软件包

提供的kafka_2.11-1.1.1.tgz软件包,上传至3个节点的/root目录下,并执行解压操作,3个节点 执行的解压命令如下:

# tar -zxvf kafka_2.11-1.1.1.tgz

(2)修改3个节点配置文件

在zookeeper1节点,进入kafka_2.11-1.1.1/config目录下,编辑server.properties文件。 在配置文件中找到以下两行并注释掉(在文本前加#)如下所示:

#broker.id=0
#zookeeper.connect=localhost:2181

然后在配置文件的底部添加如下3个配置。

zookeeper1节点:

broker.id=1
zookeeper.connect=192.168.100.10:2181,192.168.100.20:2181,192.168.100.30:2181
listeners = PLAINTEXT://192.168.100.10:9092

zookeeper2节点:

broker.id=2
zookeeper.connect=192.168.100.10:2181,192.168.100.20:2181,192.168.100.30:2181
listeners = PLAINTEXT://192.168.100.20:9092

zookeeper3节点:

broker.id=3
zookeeper.connect=192.168.100.10:2181,192.168.100.20:2181,192.168.100.30:2181
listeners = PLAINTEXT://192.168.100.30:9092

命令解析:

 broker.id:每台机器不能一样。

 zookeeper.connect:因为有3台ZooKeeper服务器,所以在这里zookeeper.connect设置为3 台。

 listeners:在配置集群的时候,必须设置,不然以后的操作会报找不到leader的错误。 另外两台服务器,zookeeper.connect的配置跟这里的一样,但是broker.id和listeners不能一样。

(3)启动服务

在zookeeper1节点,进入kafka_2.11-1.1.1/bin目录下,启动服务命令如下。

zookeeper1节点:

[root@zookeeper1 bin]# cd /root/zookeeper-3.4.14/bin/
[root@zookeeper1 bin]# ./zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /root/zookeeper-3.4.14/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[root@zookeeper1 bin]# cd /root/kafka_2.11-1.1.1/bin/
[root@zookeeper1 bin]# ./kafka-server-start.sh -daemon ../config/server.properties
[root@zookeeper1 bin]# jps
4850 Kafka
4922 Jps
4556 QuorumPeerMain

zookeeper2节点:

[root@zookeeper2 bin]# cd /root/zookeeper-3.4.14/bin/
[root@zookeeper2 bin]# ./zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /root/zookeeper-3.4.14/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[root@zookeeper2 bin]# cd /root/kafka_2.11-1.1.1/bin/
[root@zookeeper2 bin]# ./kafka-server-start.sh -daemon ../config/server.properties
[root@zookeeper2 bin]# jps
3561 Kafka
3261 QuorumPeerMain
3629 Jps

zookeeper3节点:

[root@zookeeper3 conf]# cd /root/zookeeper-3.4.14/bin/
[root@zookeeper3 bin]# ./zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /root/zookeeper-3.4.14/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[root@zookeeper3 bin]# cd /root/kafka_2.11-1.1.1/bin/
[root@zookeeper3 bin]# ./kafka-server-start.sh -daemon ../config/server.properties
[root@zookeeper3 bin]# jps
3794 QuorumPeerMain
4088 Kafka
4157 Jps

(4)测试服务

在zookeeper1节点,进入kafka_2.11-1.1.1/bin目录下,创建topic命令如下。

zookeeper1节点:

[root@zookeeper1 bin]# ./kafka-topics.sh --create --zookeeper 192.168.100.10:2181 --replication-factor 1 --partitions 1 --topic test
Created topic "test".

如果成功的话,会输出“Created topic "test".”。

查看topic,虽然topic是在192.168.100.10上创建的,但是在其他机器上也能看到。例如在任意启 动的机器kafka_2.11-1.1.1/bin的目录中执行命令如下:

zookeeper2节点:

[root@zookeeper2 bin]# ./kafka-topics.sh --list --zookeeper 192.168.100.20:2181
test

zookeeper3节点:

[root@zookeeper3 bin]# ./kafka-topics.sh --list --zookeeper 192.168.100.30:2181
test

相关推荐

  1. Kafka部署

    2024-03-12 08:30:04       59 阅读
  2. 实战部署三台kafka服务

    2024-03-12 08:30:04       31 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-12 08:30:04       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-12 08:30:04       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-12 08:30:04       87 阅读
  4. Python语言-面向对象

    2024-03-12 08:30:04       96 阅读

热门阅读

  1. 单调栈的用法

    2024-03-12 08:30:04       48 阅读
  2. 初级爬虫实战——巴黎圣母院新闻

    2024-03-12 08:30:04       42 阅读
  3. 手写redis机制

    2024-03-12 08:30:04       44 阅读
  4. Spring Data访问 MongoDB(十六)----CDI集成

    2024-03-12 08:30:04       42 阅读
  5. 3.11笔记3

    2024-03-12 08:30:04       39 阅读
  6. 云原生周刊:Helm Charts 深入探究 | 2024.3.11

    2024-03-12 08:30:04       73 阅读
  7. Docker创建openresty容器

    2024-03-12 08:30:04       42 阅读
  8. 阿里云服务 安装 Node.js

    2024-03-12 08:30:04       36 阅读