Kafka集群部署

EMQX 企业版技术支持发表于:2022年03月02日 10:04:15更新于:2022年03月02日 10:51:34

  1. 目标机器

    1.1. Kafka1

    内网 IP:192.168.0.45 服务器系统:CentOS 7.6

    1.2. Kafka2

    内网 IP:192.168.0.95 服务器系统:CentOS 7.6

    1.3. Kafka3

    内网 IP:192.168.0.9 服务器系统:CentOS 7.6

  2. 依赖安装

    安装 zookeeper、kafka 确定三台(zookeeper、kafka1、kafka2、kafka3)

    服务器 java 依赖已经安装,具体安装方式:

    yum install java-1.8.0

    验证,查询 java 的 version

    输入 java -version

    image.png

  3. Kafka安装

    (1)软件下载

    三台服务器(kafka1、kafka2、kafka3)通过 wget 下载安装 kafka 安装包并解压具 体命令:采用国内镜像的方式下载比较快

    wget https://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.8.1/kafka_2.12-2.8.1.tgz --no-check-certificate

    image.png


    tar xvf kafka_2.12-2.8.1.tg

    image.png

    (2)Zookeeper服务

    服务器1:

    新建 data/zookeeper 目录和 log/zookeeper 目录

    mkdir -p /root/data/zookeeper

    mkdir -p /root/log/zookeeper

    这一台我们用的是 192.168.0.45 这台 

    新建文件 myid,写入 1

    echo 1 > /root/data/zookeeper/myid

    image.png

    服务器2:

    新建 data/zookeeper 目录和 log/zookeeper 目录

    mkdir -p /root/data/zookeeper

    mkdir -p /root/log/zookeeper

    这一台我们用的是 192.168.0.95 这台 

    新建文件 myid,写入 2

    echo 2 > /root/data/zookeeper/myid

    image.png

    服务器3:

    新建 data/zookeeper 目录和 log/zookeeper 目录

    mkdir -p /root/data/zookeeper

    mkdir -p /root/log/zookeeper

    这一台我们用的是 192.168.0.9 这台 

    新建文件 myid,写入 3

    echo 3 > /root/data/zookeeper/myid

    image.png

    配置zookeeper.properties

    vi /root/kafka_2.12-2.8.1/config/zookeeper.properties

    3 台 zookeeper 的配置文件可以配置成一样的,在 config/zookeeper.properties 中进 行改动,改动的地方如下:

    dataDir=/root/data/zookeeper

    server.1=192.168.0.45:2888:3888

    server.2=192.168.0.95:2888:3888

    server.3=192.168.0.9:2888:3888

    initLimit=10

    tickTime=2000

    syncLimit=5

    image.png

    (3)Kafka服务部署

    kafka存储目录创建

    在 Kafka1 服务器(192.168.0.45)执行

    cd /root , vi kafka_2.12-2.8.1/config/server.properties

    修改配置文件

    broker.id=1

    listeners=PLAINTEXT://192.168.0.45:9092

    host.name=192.168.0.45

    zookeeper.connect=192.168.0.95:2181,192.168.0.45:2181,192.168.0.9:2181 下面箭头的地方是需要修改的地方

    image.png

    image.png

    在Kafka2服务器(192.168.0.95)执行

    cd /root , vi kafka_2.12-2.8.1/config/server.properties

    修改配置文件

    broker.id=2

    listeners=PLAINTEXT://192.168.0.95:9092

    host.name=192.168.0.95

    zookeeper.connect=192.168.0.95:2181,192.168.0.45:2181,192.168.0.9:2181

    image.png

    image.png

    在 Kafka3 服务器(192.168.0.9)执行

    cd /root , vi kafka_2.12-2.8.1/config/server.properties

    修改配置文件

    broker.id=3

    listeners=PLAINTEXT://192.168.0.9:9092

    host.name=192.168.0.9

    zookeeper.connect=192.168.0.95:2181,192.168.0.45:2181,192.168.0.9:2181

    image.png

    image.png

    kafka 服务启动

    先启动 zookeeper

    cd /root

    nohup./kafka_2.12-2.8.1/bin/zookeeper-server-start.sh /root/kafka_2.12-2.8.1/config/zookeeper.properties &

    image.png

    然后启动 kafka

    nohup ./kafka_2.12-2.8.1/bin/kafka-server-start.sh ./kafka_2.12-2.8.1/config/server.properties &

    image.png

    此时查看端口 2181 和 9092,显示 zookeeper 和 kafka 已经启动成功

    image.png

    在 3 台服务器上面都执行这个命令,保证 3 台服务器的 kafka 均启动成功 三个节点均要启动;启动无报错,即搭建成功

  4. zookeeper、Kafka集群验证

    (1)创建topic:TestTopic

    在Kafka2上面创建topic:

    cd kafka_2.12-2.8.1 
    ./bin/kafka-topics.sh --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic testTopic --create

   image.png(2)显示已经创建的topic

在 kafka1 和 3 上面显示创建的 topic:testTopic 

输入命令:

 /root/kafka_2.12-2.8.1/bin/kafka-topics.sh --list --zookeeper localhost:2181

image.png(3)模拟客户端发送消息

 在 kafka1 上面发布消息,命令如下:

./kafka_2.12-2.8.1/bin/kafka-console-producer.sh --broker-list 192.168.0.9:9092,192.168.0.45:9092,192.168.0.95:9092 --topic testTopic

image.png

(4)模拟客户端接收消息

在 kafka2 和 kafka3 上面查看消息,输入命令:

./bin/kafka-console-consumer.sh --bootstrap-server 192.168.0.95:9092 --topic testTopic --from-beginning 
./bin/kafka-console-consumer.sh --bootstrap-server 192.168.0.9:9092 --topic testTopic --from-beginning

可以看到消息完全一致,至此集群完成。

    您需要登录后才可以回复