kafka集群部署

kafka集群部署

一、准备

1、部署Kafka集群搭建需要服务器至少3台,奇数台

2、Kafka的安装需要java环境,jdk1.8

3、Kafka安装包版本:kafka_2.13-2.6.0.tgz
下载地址: https://www.apache.org/dyn/closer.cgi?path=/kafka/2.6.0/kafka_2.13-2.6.0.tgz

Kafka单机部署官方文档: https://kafka.apache.org/quickstart

4、修改/etc/host文件

192.168.172.2 kafka1
192.168.172.3 kafka2
192.168.172.4 kafka3

二、Zookeeper集群搭建

直接使用kafka自带的zookeeper建立zk集群

1、将安装包kafka_2.13-2.6.0.tgz上传到/opt /kafka目录下

2、解压:tar -zxvf kafka_2.13-2.6.0.tgz

3、进入目录:cd /opt/kafka/kafka_2.13-2.6.0/

4、创建zookeeper目录:mkdir zk_data

5、进入目录:cd /opt/kafka/kafka_2.13-2.6.0/config

6、修改zookeeper.properties文件(三台机器上的zookeeper.properties文件配置相同):

dataDir=/opt/kafka/kafka_2.13-2.6.0/zk_data
maxClientCnxns=0
tickTime=2000
initLimit=10
syncLimit=5

server.1=kafka1:2888:3888
server.2=kafka2:2888:3888
server.3=kafka3:2888:3888
  • server.1、server.2、server.3 为集群信息。

    2888端口号是zookeeper服务之间通信的端口

    3888端口是zookeeper与其他应用程序通信的端口。

  • tickTime:CS通信心跳数

Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。该参数用来定义心跳的间隔时间,zookeeper的客户端和服务端之间也有和web开发里类似的session的概念,而zookeeper里最小的session过期时间就是tickTime的两倍。

  • initLimit:LF初始通信时限

    集群中的follower服务器(F)与leader服务器(L)之间 初始连接 时能容忍的最多心跳数(tickTime的数量)

  • syncLimit:LF同步通信时限

  • 如果是云服务器,需要绑定公网地址是,需要增加一行配置 quorumListenOnAllIPs=true

7、创建myid文件:进入/opt/kafka/kafka_2.13-2.6.0/zk_data目录,创建myid文件,将三台服务器上的myid文件分别写入1,2,3。myid是zookeeper集群用来发现彼此的标识,必须创建,且不能相同。

8、执行启动zookeeper命令:

nohup /opt/kafka/kafka_2.13-2.6.0/bin/zookeeper-server-start.sh /opt/kafka/kafka_2.13-2.6.0/config/zookeeper.properties &>> /opt/kafka/kafka_2.13-2.6.0/zookeeper.log &

三、Kafka集群搭建

1、进入目录:cd /opt/kafka/kafka_2.13-2.6.0/
2、创建kafka日志数据目录:mkdir kafka-logs
3、进入目录:cd /opt/kafka/kafka_2.13-2.6.0/config
4、修改server.properties配置文件:

修改参数如下:

broker.id=0
advertised.listeners=PLAINTEXT://kafka1:9092
offsets.topic.replication.factor=3
log.dirs=/opt/kafka/kafka_2.13-2.6.0/kafka-logs
num.partitions=40
zookeeper.connect=kafka1:2181,kafka2:2181,kafka3:2181

参数说明

参数名称参数值备注
broker.id0broker.id的值三个节点要配置不同的值,分别配置为0,1,2
advertised.listenersPLAINTEXT://kafka1:9092在hosts文件配置kafka1域名,另外两台分别为:kafka2,kafka3
offsets.topic.replication.factor3topics "__consumer_offsets"的副本数
log.dirs/opt/kafka/kafka_2.13-2.6.0/kafka-logsKafka日志数据目录
num.partitions40分区数
zookeeper.connectkafka1:2181,kafka2:2181,kafka3:2181zookeeper连接地址,多个以逗号隔开

5、 启动kafka集群(三个节点都要启动):

nohup /opt/kafka/kafka_2.13-2.6.0/bin/kafka-server-start.sh /opt/kafka/kafka_2.13-2.6.0/config/server.properties &>> /opt/kafka/kafka_2.13-2.6.0/kafka.log &

四、测试Kafka集群

1、创建topic:test

/opt/kafka/kafka_2.13-2.6.0/bin/kafka-topics.sh --create --zookeeper kafka1:2181,kafka2:2181,kafka3:2181 --replication-factor 3 --partitions 3 --topic test

2、列出已创建的topic列表

/opt/kafka/kafka_2.13-2.6.0/bin/kafka-topics.sh --list --bootstrap-server kafka1:9092,kafka2:9092,kafka3:9092

或者

/opt/kafka/kafka_2.13-2.6.0/bin/kafka-topics.sh --describe --bootstrap-server kafka1:9092,kafka2:9092,kafka3:9092

3、模拟客户端去发送消息

/opt/kafka/kafka_2.13-2.6.0/bin/kafka-console-producer.sh --bootstrap-server kafka1:9092,kafka2:9092,kafka3:9092 --topic test

4、模拟客户端去接受消息

/opt/kafka/kafka_2.13-2.6.0/bin/kafka-console-consumer.sh --bootstrap-server kafka1:9092,kafka2:9092,kafka3:9092 --from-beginning --topic test
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值