当前位置:   article > 正文

kafka利用自带的zookeeper进行集群部署_kafka自带的zk部署

kafka自带的zk部署

 

一、前提条件

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

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

3、Kafka安装包版本:https://mirror-hk.koddos.net/apache/kafka/2.7.0/kafka_2.13-2.7.0.tgz

4、3台机器增加host配置:

  1. 192.168.202.129 kafka-1.local
  2. 192.168.202.130 kafka-2.local
  3. 192.168.202.131 kafka-3.local

二、Zookeeper集群搭建

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

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

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

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

4、创建zookeeper目录:mkdir zk_kfk_data

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

6、修改zookeeper.properties文件:

  1. dataDir=/opt/kafka_2.13-2.7.0/zk_kfk_data
  2. tickTime=2000
  3. initLimit=10
  4. syncLimit=5
  5. server.1=kafka-1.local:2888:3888
  6. server.2=kafka-2.local:2888:3888
  7. server.3=kafka-3.local:2888:3888

三台机器上的zookeeper.properties文件配置相同,data.Dir 为zk的数据目录,server.1、server.2、server.3 为集群信息。

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

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

tickTime:CS通信心跳数

Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。

      tickTime以毫秒为单位。

      tickTime:该参数用来定义心跳的间隔时间,zookeeper的客户端和服务端之间也有和web开发里类似的session的概念,而zookeeper里最小的session过期时间就是tickTime的两倍。

initLimit:LF初始通信时限

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

syncLimit:LF同步通信时限

集群中的follower服务器(F)与leader服务器(L)之间 请求和应答 之间能容忍的最多心跳数(tickTime的数量)

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

8、执行启动zookeeper命令:

nohup /opt/kafka_2.13-2.7.0/bin/zookeeper-server-start.sh /opt/kafka_2.13-2.7.0/config/zookeeper.properties > /opt/kafka_2.13-2.7.0/zookeeper.log 2>&1 &

三台机器都执行启动命令,查看zookeeper的日志文件,没有报错就说明zookeeper集群启动成功了。

 

三、Kafka集群搭建

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

  1. //用于区分broker,必须唯一,每台机器只需要一个broker.id
  2. //机器A
  3. broker.id=0
  4. //机器B
  5. broker.id=1
  6. //机器C
  7. broker.id=2
  8. //PLAINTEXT表示协议,配置本机IP地址
  9. listeners=PLAINTEXT://kafka-1.local:9092
  10. //PLAINTEXT表示协议,配置本机IP地址,对外公布
  11. advertised.listeners=PLAINTEXT://kafka-2.local:9092
  12. //配置zookeeper的地址,zookeeper集群地址以逗号隔开
  13. zookeeper.connect=kafka-1.local:2181,kafka-2.local:2181,kafka-3.local:2181
  14. //配置数据存放目录
  15. log.dirs=/opt/kafka_2.13-2.7.0/kafka-logs-1

5、配置其他2台机器,注意服务器地址修改

6、 启动kafka集群:

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

三个节点均要启动;启动无报错,即搭建成功,注意:配置的时候尽量使用绑定的host,而不是直接IP

 

四、测试Kafka集群

  1. //创建topic,--replication-factor指定副本个数,--partitions指定分区个数
  2. /opt/kafka_2.13-2.7.0/bin/kafka-topics.sh --create --zookeeper kafka-1.local:2181,kafka-2.local:2181,kafka-3.local:2181 --replication-factor 1 --partitions 1 --topic test
  3. //查看所有的topic信息
  4. /opt/kafka_2.13-2.7.0/bin/kafka-topics.sh --list --zookeeper kafka-1.local:2181
  5. //启动生产者
  6. /opt/kafka_2.13-2.7.0/bin/kafka-console-producer.sh --broker-list kafka-1.local:9092,kafka-2.local:9092,kafka-3.local:9092 --topic test
  7. > hello world 1
  8. > hello world 2
  9. > hello world 3
  10. //启动消费者
  11. /opt/kafka_2.13-2.7.0/bin/kafka-console-consumer.sh --bootstrap-server kafka-1.local:9092,kafka-2.local:9092,kafka-3.local:9092 --topic test --from-beginning
  12. //删除topic
  13. /opt/kafka_2.13-2.7.0/bin/kafka-topics.sh --delete --zookeeper kafka-1.local:2181 --topic test

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/661661
推荐阅读
相关标签
  

闽ICP备14008679号