Linux系统下kafka集群环境的搭建

1:搭建kafka集群环境需要安装JDK、Zookeeper集群环境

JDK的安装可以参考https://mp.csdn.net/postedit/84196901这篇博客

Zookeeper集群环境的安装可以参考https://mp.csdn.net/postedit/84201320这篇博客,具体的步骤在博客上面有详细的说明

2:kafka的安装和配置

kafka下载地址:https://www.apache.org/dyn/closer.cgi?path=/kafka/1.0.0/kafka_2.11-1.0.0.tgz

#我的目录统一放在/opt

#首先创建kafka文件夹

cd /opt

mkdir kafka  创建kafka文件夹

cd kafka\

mkdir kafkalogs      #创建kafka消息目录,主要存放kafka消息,对应server1服务器

mkdir kafkalogs1    #创建kafka消息目录,主要存放kafka消息,对应server2服务器

mkdir kafkalogs2    #创建kafka消息目录,主要存放kafka消息,对应server3服务器

#解压kafka_2.11-1.0.0.tgz到kafka目录下

tar -zvxf kafka_2.11-1.0.0.tgz

#如果是三台真实的linux服务器,只需要将kafka_2.11-1.0.0.tgz解压到三台服务器的/opt/kafka目录下,再新建kafkalogs即可

修改kafka配置文件

#进入到config目录

cd /opt/kafka/kafka_2.11-1.0.0/config/

我们可以看到目录下有zookeeper的一些文件,这是kafka内置的zookeeper集群,我们可以使用它来直接启动,但建议使用独立的zookeeper集群。

-rw-r--r--. 1 root root  906 Oct 27 08:56 connect-console-sink.properties
-rw-r--r--. 1 root root  909 Oct 27 08:56 connect-console-source.properties
-rw-r--r--. 1 root root 5807 Oct 27 08:56 connect-distributed.properties
-rw-r--r--. 1 root root  883 Oct 27 08:56 connect-file-sink.properties
-rw-r--r--. 1 root root  881 Oct 27 08:56 connect-file-source.properties
-rw-r--r--. 1 root root 1111 Oct 27 08:56 connect-log4j.properties
-rw-r--r--. 1 root root 2730 Oct 27 08:56 connect-standalone.properties
-rw-r--r--. 1 root root 1221 Oct 27 08:56 consumer.properties
-rw-r--r--. 1 root root 4727 Oct 27 08:56 log4j.properties
-rw-r--r--. 1 root root 1919 Oct 27 08:56 producer.properties
-rw-r--r--. 1 root root  173 Jan  7 05:54 server-1.properties
-rw-r--r--. 1 root root  173 Jan  7 05:56 server-2.properties
-rw-r--r--. 1 root root  172 Jan  7 05:55 server.properties
-rw-r--r--. 1 root root 1032 Oct 27 08:56 tools-log4j.properties
-rw-r--r--. 1 root root 1023 Oct 27 08:56 zookeeper.properties

我们主要修改 server.properties 这个文件即可

broker.id=0
listeners=PLAINTEXT://127.0.0.1:9092
port=9092
host.name=127.0.0.1
log.dirs=/opt/kafka/kafkalogs
zookeeper.connect=127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183

因为我是在一台服务器搭建,可以将server.properties复制两份,分别命名为server1.properties,server2.properties,来模拟三台服务器。如果是在三台不同服务器,则不需要复制多份,只需要在三台服务器分别对server.properties进行配置即可.

#在config目录下复制两份server.properties,并命名 server-1.propertis, server-2.propertis

cp server.properties server-1.propertis

cp server.properties server-2.propertis

修改server1.properties如下:

broker.id=1
listeners=PLAINTEXT://127.0.0.1:9093
port=9093
host.name=127.0.0.1
log.dirs=/opt/kafka/kafkalogs1
zookeeper.connect=127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183

修改server2.properties如下:

broker.id=2
listeners=PLAINTEXT://127.0.0.1:9094
port=9094
host.name=127.0.0.1
log.dirs=/opt/kafka/kafkalogs2
zookeeper.connect=127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183

启动kafka集群并测试

1、启动服务

#从后台启动Kafka集群(3台都需要启动)

#进入到kafka的根目录 
cd /opt/kafka/kafka_2.11-1.0.0

#模拟启动三个配置文件,代表三台服务器
./bin/kafka-server-start.sh -daemon config/server.properties
./bin/kafka-server-start.sh -daemon config/server1.properties
./bin/kafka-server-start.sh -daemon config/server2.properties

# 启动命令中的 -daemon 表示以守护进程的方式启动

2、测试kafka

创建主题:

#创建一个test主题,分区数为3,备份数为3
#在kafka根目录执行下面命令
bin/kafka-topics.sh --create --zookeeper 127.0.0.1:2181 --replication-factor 3 --partitions 3 --topic test

启动生产者:

#kafka根目录执行,启动一个生产者
bin/kafka-console-producer.sh --broker-list 127.0.0.1:9092 --topic test

不要关闭生产者窗口,再打开一个新窗口,进入到kafka根目录,启动消费者:

#启动消费者命令
bin/kafka-console-consumer.sh --zookeeper 127.0.0.1:2181 --topic test --from-beginning

生产者发送消息列表:

消费者接收信息列表:

在生产者发送一条消息,查看消费者是否有接收成功。接收成功后kafka集成环境搭建完成。

猜你喜欢

转载自blog.csdn.net/qq_37469055/article/details/84205530