准备
集群使用的中间件版本信息
| 中间件 | 版本 |
|---|---|
| jdk | 1.8 |
| kafka | 2.7.1 |
| zookeeper | 3.7.0 |
安装kafka和zookeeper之前,请确保已经配置好java环境。
下载地址传送门
zookeeper集群安装请参照
或者使用docker-compose安装zookeeper
kafka-broker集群拓补如下
解释: 部署三个kafka-broker节点,元数据保存在zookeeper集群中。
broker端口使用如下:
| broker | id | port |
|---|---|---|
| broker—0 | 0 | 9090 |
| broker-1 | 1 | 9091 |
| broker-2 | 2 | 9092 |
由于本人条件有限,所有的kafka节点和zk节点都安装在同一台物理机上,生产环境切记不要这么干:-)
正文
1. 新建kafka集群安装目录,解压kafka安装包,改一个好听的名字,并复制三份
$ tar -xvf kafka_2.13-2.7.0.tgz
$ mv kafka_2.13-2.7.0 broker_0
$ cp -r broker_0 broker_1
$ cp -r broker_0 broker_2
2. 进入config目录编辑server.properties
$ cd config/
$ vim server.properties
3. 设置broker.id,listeners,log.dirs,zookeeper.connect
broker_0对应的配置如下
broker.id=0
listeners=PLAINTEXT://:9090
log.dirs=/usr/local/kafka-cluster/kafka_0/kafka-logs
zookeeper.connect=localhost:2181,localhost:2182,localhost:2183
broker_1对应的配置如下
broker.id=1
listeners=PLAINTEXT://:9091
log.dirs=/usr/local/kafka-cluster/kafka_1/kafka-logs
zookeeper.connect=localhost:2181,localhost:2182,localhost:2183
broker_2对应的配置如下
broker.id=2
listeners=PLAINTEXT://:9092
log.dirs=/usr/local/kafka-cluster/kafka_3/kafka-logs
zookeeper.connect=localhost:2181,localhost:2182,localhost:2183
4. 启动kafka
在每个目录下执行启动命令
$ sh ./bin/kafka-server-start.sh -daemon ./config/server.properties
5. 通过jps命令可以看到kafka已经启动成功
$ jps
4848 Jps
4204 Kafka
4846 Kafka
4527 Kafka
6. 创建一个topic
这里创建一个名字为foo,分区数为6,副本数为3,的topic
$ ./bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 6 --topic foo
7. 查看创建的topic
./bin/kafka-topics.sh --list --zookeeper localhost:2181
或者也可以直接通过查看zookeeper的topic信息
8. 停止kafka集群
在任意节点上执行
$ ./bin/kafka-server-stop.sh