Kafka:集群

架构图

Kafka集群架构图:

image-20210220170006364

每个Broker即一个Kafka服务实例,多个Broker构成一个Kafka集群。生产者发布的消息将保存在Broker中消费者将从Broker中拉取消息进行消费。

为了达到高可用,Zookeeper自身也必须是集群。

Zookeeper集群

搭建三个节点的zookeeper伪集群。

cp -r apache-zookeeper-3.5.9-bin zookeeper-01
cp -r apache-zookeeper-3.5.9-bin zookeeper-02
cp -r apache-zookeeper-3.5.9-bin zookeeper-03

在三个zoo.cfg中分别配置不同的数据目录dataDir,以及不同端口号clientPort 2181,2182,2183

myid配置:

在每个zookeeper的data目录下创建一个myid文件,内容分别是0,1,1,这个文件就是记录每个服务器的ID

mkdir -p /tmp/zookeeper-01/data
vi /tmp/zookeeper-01/data/myid

在每个zookeeper的zoo.cfg配置客户端访问端口(clientPort)和集群服务器IP列表

server.服务器ID=服务器IP地址:服务器之间通信端口:服务器之间投票选举端口
server.0=127.0.0.1:2888:3888
server.1=127.0.0.1:2889:3889
server.2=127.0.0.1:2890:3890

配置完成后,分别启动三台zookeeper

zookeeper-01/bin/zkServer.sh start
zookeeper-02/bin/zkServer.sh start
zookeeper-03/bin/zkServer.sh start

查看三台节点的状态:

zookeeper-01/bin/zkServer.sh status
zookeeper-02/bin/zkServer.sh status
zookeeper-03/bin/zkServer.sh status

image-20210222093503729

一主两从。至此,zookeeper的集群搭建完毕。

Kafka集群

cp -r kafka_2.13-2.7.0 kafka-01
cp -r kafka_2.13-2.7.0 kafka-02
cp -r kafka_2.13-2.7.0 kafka-03
rm -rf kafka-01/logs/*
rm -rf kafka-02/logs/*
rm -rf kafka-03/logs/*

分别修改三个kafka的配置文件server.properties(这里以其中一台kafka为例)

vi kafka-01/config/server.properties

##broker.id必须全局唯一,分别配置为0,1,2
broker.id=0
#listeners这一行注释
#listeners=PLAINTEXT://localhost:9092
host.name=localhost
#端口配置成不一样的
port=9092
#配置日志地址
log.dirs=/opt/kafka-01/logs
#zk集群连接地址
zookeeper.connect=192.168.1.51:2181,192.168.1.51:2182,192.168.1.51:2183

启动三台kafka

kafka-01/bin/kafka-server-start.sh -daemon kafka-01/config/server.properties
kafka-02/bin/kafka-server-start.sh -daemon kafka-02/config/server.properties
kafka-03/bin/kafka-server-start.sh -daemon kafka-03/config/server.properties
jps

image-20210222100643381

kafka集群至此搭建完毕

原文地址:https://www.cnblogs.com/wwjj4811/p/14428670.html