Kafka集群部署

一、安装JDK

链接直达

二、安装Zookeeper集群

链接直达

三、安装Kafka集群

 

官方下载地址:http://kafka.apache.org/downloads.html

 

1、解压一份 kafka 安装包

 

tar -zxvf kafka_2.12-3.7.0.tgz -C /opt/module/

mv kafka_2.12-3.7.0/ kafka

 

2、修改server.properties

vi server.properties

配置内容参考如下:

broker.id=1   #kafka节点标识 需要对应节点改变

port=9092

listeners=PLAINTEXT://此节点IP:9092

advertised.listeners=PLAINTEXT://此节点IP:9092

num.network.threads=3

num.io.threads=8

socket.send.buffer.bytes=102400

socket.receive.buffer.bytes=102400

socket.request.max.bytes=104857600

log.dirs=/data/kafka/data/log   #数据日志文件路径

num.partitions=5  #默认partition数量,如果topic在创建时没有指定partition数量,默认使用此值。要注意,我们可以增加主题分区的个数,但不能减少分区的个数。所以,如果要让一个主题的分区个数少于num.partitions指定的值,需要手动创建该主题。

num.recovery.threads.per.data.dir=1

offsets.topic.replication.factor=3 #偏移量提交主题的复制因子。表示kafka的内部topic consumer_offsets副本数。当该副本所在的broker宕机,consumer_offsets只有一份副本,该分区宕机。使用该分区存储消费分组offset位置的消费者均会收到影响,offset无法提交,从而导致生产者可以发送消息但消费者不可用。所以需要设置该字段的值大于1

transaction.state.log.replication.factor=2

transaction.state.log.min.isr=2

log.retention.hours=168

log.segment.bytes=1073741824

log.retention.check.interval.ms=300000

#zk集群地址

zookeeper.connect=zkip1:2181,zkip2:2181,zkip3:2181

zookeeper.connection.timeout.ms=6000

delete.topic.enable=true

confluent.support.customer.id=anonymous

group.initial.rebalance.delay.ms=0

 

3、启动命令

1zk启动命令(如用kafka自带的zk,如果单独部署的zk请忽略)

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

/usr/local/zookeeper/bin/zkServer.sh  start

 

2kafka启动命令

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

/usr/local/kafka/bin/kafka-server-start.sh -daemon /usr/local/kafka/config/server.properties

 

集群安装(Kraft模式)

官方下载地址:http://kafka.apache.org/downloads.html

1、解压一份 kafka 安装包

tar -zxvf kafka_2.12-3.7.0.tgz -C /opt/module/

mv kafka_2.12-3.7.0/ kafka

2、修改config/kraft/下的server.properties 配置文件

vim server.properties

参考配置如下:

#kafka 的角色controller (相当于zk)、broker  

process.roles=broker, controller

node.id=1

#controller 服务协议别名

controller.listener.names=CONTROLLER

#Controller 列表

controller.quorum.voters=1@hostnameA:9093,2@hostnameB:9093,3@hostnameC:9093

#不同服务器绑定的端口

listeners=PLAINTEXT://:9092,CONTROLLER://:9093

#broker 服务协议别名

inter.broker.listener.name=PLAINTEXT

#broker 对外暴露的地址

advertised.Listeners=PLAINTEXT://hostnameA:9092

#协议别名到安全协议的映射

listener.security.protocol.map=CONTROLLER:PLAINTEXT,PLAINTEXT:PLA

INTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL

 

#其他配置可参考上文配置文件

如果对于性能要求较高,可将controller broker分开部署,如3IPcontroller 集群,7IPbroker集群,config/kraft/下有分开部署的文件broker.propertiescontroller.properties,配置大同小异。

3、集群元数据配置 集群id

生成集群id:

./kafka-storage.sh random-uuid

在每个集群节点下配置:

bin/kafka-storage.sh format -t 上述命令生成的id -c config/kraft/server.properties

4、启动命令

bin/kafka-server-start.sh -daemon config/kraft/server.properties

posted @ 2024-11-05 17:22  TimeSay  阅读(5)  评论(0编辑  收藏  举报