kafka集群部署(kafka+zk模式)
「这是我参与11月更文挑战的第15天,活动详情查看:2021最后一次更文挑战」
kafka+zk模式
1. 集群规划
如果没有物理机,也可以弄3台虚拟机。ubuntu系统不会安装的话可以自己百度哦,这里就不细说了。
作者用的是虚拟机,下面是3台电脑的配置
主机名 | ip地址 | broker.id | myid |
---|---|---|---|
kafka1 | 192.168.56.107 | 0 | 1 |
kafka2 | 192.168.56.108 | 1 | 2 |
kafka3 | 192.168.56.109 | 2 | 3 |
注:环境篇 一一 Virtualbox+Vagrant安装Centos7
2. 下载安装包
wget https://dlcdn.apache.org/kafka/3.0.0/kafka_2.13-3.0.0.tgz
3. kafka集群搭建
- 解压安装包指定目录
tar -zxvf kafka_2.13-3.0.0.tgz -C /app
- 创建数据文件夹
cd kafka_2.13-3.0.0/ & mkdir /app/kafka_2.13-3.0.0/logs
- 修改配置文件server.properties
vi config/server.properties
1 | sh复制代码#advertised_listeners` 是对外暴露的服务端口,真正建立连接用的是 `listeners`,集群要改为自己的iP |
注:
- 如果kafaka启动时加载的配置文件中server.properties没有配置delete.topic.enable=true,那么此时的删除并不是真正的删除,而是把topic标记为:marked for deletion
- kafka如何彻底删除topic及数据
- advertised.listeners 集群中不一样
- broker.id 集群中不一样
- 配置环境变量
注:其他两台服务器相同操作,broker.id在集群中要唯一
4. 配置自带的zk
- 创建文件夹
快照日志的存储路径mkdir /app/zookeeper/data -p
事物日志的存储路径
mkdir /app/zookeeper/datalog -p
- 修改配置文件zookeeper.properties
vi /app/kafka_2.13-3.0.0/config/zookeeper.properties
1 | sh复制代码# Licensed to the Apache Software Foundation (ASF) under one or more |
- 在配置dataDir路径下创建myid文件
服务器 | 创建命令 |
---|---|
192.168.56.107 | echo “1” > /app/zookeeper/data/myid |
192.168.56.108 | echo “2” > /app/zookeeper/data/myid |
192.168.56.109 | echo “3” > /app/zookeeper/data/myid |
注:
- myid文件和server.myid 在快照目录下存放的标识本台服务器的文件,他是整个zk集群用来发现彼此的一个重要标识。
- 其他两台服务器相同操作,myid文件内容在集群中要唯一
5. jdk安装并配置环境变量
注:
- 环境篇 一一 linux安装jdk(收藏篇)
- zookeeper是用java写的所以他的需要java环境
6. kafka环境变量配置
新建一个配置sudo vi /etc/profile.d/kafka.sh
1 | sh复制代码#KAFKA_HOME |
刷新配置source /etc/profile
7. 启动集群
- 先启动zookeeper
1 | sh复制代码bin/zookeeper-server-start.sh -daemon config/zookeeper.properties |
1 | sh复制代码nohup bin/zookeeper-server-start.sh config/zookeeper.properties > log/zookeeper/zookeeper.log 2>1 & |
- 再启动kafka
1 | sh复制代码bin/kafka-server-start.sh -daemon config/server.properties |
1 | sh复制代码nohup bin/kafka-server-start.sh config/server.properties > zklog/kafka.log 2>1 & |
依次在 kafka1、kafka2、kafka3 节点上启动
8. 关闭集群
依次在 kafka1、kafka2、kafka3 节点上关闭 kafka
1 | sh复制代码bin/kafka-server-stop.sh stop |
本文转载自: 掘金