陪你一起学kafka(三)——集群篇

290 阅读2分钟

简介

微服务的三高,高并发,高可用,高可靠,作为微服务中必不可少的MQ中间件,kafka也必须要满足这三点。kafka如何如何保证高并发,高可用,高可靠,两个字——集群。

前置条件

  • 三台服务器,用来部署三个kafak
  • java环境,jdk1.8+
  • kafka安装包版本kafka_2.13-3.0.0
  • zookeeper(非必须,可以使用kafka自带的)

zookeeper集群安装

kafka本身是没有调度能力,需要借助zookeeper来进行任务调度,所以需要安装zookeeper

单机安装

解压zookeeper安装包

tar -zxvf apache-zookeeper-3.7.0-bin.tar.gz

修改配置

cp apache-zookeeper-3.7.0-bin/conf/zoo_sample.cfg apache-zookeeper-3.7.0-bin/conf/zoo.cfg
vi apache-zookeeper-3.7.0-bin/conf/zoo.cfg

末尾添加内容:

#事务日志输出目录
dataDir=../zkdatas
#集群服务器配置,数字1/2/3需要与myid文件一致。右边两个端口,2888表示数据同步和通信端口;3888表示选举端口
server.1=server1:2888:3888
server.2=server2:2888:3888
server.3=server3:2888:3888

创建日志目录和myid文件

#创建数据存储目录:
    mkdir zkdatas 
#创建myid: 
  cd zkdatas 
  touch myid
  并编辑myid内容为1

启动

apache-zookeeper-3.7.0-bin/bin/zkServer.sh start

复制到其他两台服务器并启动

将以上的步骤在其他两台服务器上一模一样的执行,其中注意myid文件的内容,三台服务器要分别是1,2,3

查看集群状态

apache-zookeeper-3.7.0-bin/bin/zkServer.sh status

kafka集群安装

安装单机kafka

参考: juejin.cn/post/707589…

复制该kafka到其他服务器

复制该kafka到其他服务器

修改配置文件

修改server.properties,主要参数是:

  • broker.id,保证三台服务器都是唯一的
  • zookeeper.connect,zookeeper集群地址
  • log.dirs 日志目录
vi kafka_2.13-3.0.0/config/server.properties

分别启动三台服务器上的kafka

kafka_2.13-3.0.0/bin/kafka-server-start.sh –daemon config/server.properties &

测试

创建主题

./kafka_2.13-3.0.0/bin/kafka-topics.sh --zookeeper localhost:2181 --create --topic test --replication-factor 3 --partitions 2

发送消息

./kafka_2.13-3.0.0/kafka-console-producer.sh --broker-list localhost:9092 --topic test

消费消息

./kafka_2.13-3.0.0/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning