天天看点

Kafka 2.4.0 安装配置

OS:CentOS 7.5

kafka:kafka_2.12-2.4.0.tgz

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

Kafka 2.4.0 安装配置
10.240.21.24 zookeeper kafka
10.240.21.25 zookeeper kafka
10.240.21.26 zookeeper kafka

1 zookeeper安装配置

参考:https://blog.csdn.net/linwenhai2018/article/details/116023111

2 Kafka配置

vi config/server.properties
##########################################################################
# 唯一标识,和zookeeper的myid性质一样
broker.id=1
# 当前kafka服务侦听的地址和端口
listeners=PLAINTEXT://10.240.21.24:9092
# borker进行网络处理的线程数
num.network.threads=3
# borker进行I/O处理的线程数
num.io.threads=8
# 发送缓冲区buffer大小
socket.send.buffer.bytes=102400
# 接收缓冲区大小
socket.receive.buffer.bytes=102400
# 向kafka请求消息或者向kafka发送消息的请请求的最大数,这个值不能超过java的堆栈大小
socket.request.max.bytes=104857600
# 消息日志存放的路径
log.dirs=/opt/kafka/data
# 默认的分区数
num.partitions=1
# 每个数据目录用来日志恢复的线程数目
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
# 默认消息的最大持久化时间,168小时,7天
log.retention.hours=168
# kafka的消息是以追加的形式落地到文件,当超过这个值的时候,kafka会新起一个文件
log.segment.bytes=1073741824
# 每隔300000毫秒去检查上面配置的log失效时间
log.retention.check.interval.ms=300000
# zookeeper的连接信息
zookeeper.connect=10.240.21.24:2181,10.240.21.25:2181,10.240.21.26:2181
# zookeeper的连接超时时间
zookeeper.connection.timeout.ms=6000
group.initial.rebalance.delay.ms=0
           
 其余集群节点修改 broker.id 与 listeners
vi ~/.bashrc
###################################################
export KAFKA_HOME=/opt/kafka
export PATH=$PATH:$KAFKA_HOME/bin
           
vi bin/kafka-server-start.sh
##############################################
export KAFKA_HEAP_OPTS="-Xmx4G -Xms4G"
           
mkdir -p /opt/kafka/data
           

3 kafka启停

bin/kafka-server-start.sh config/server.properties &
bin/kafka-server-stop.sh stop
           

4 Kafka命令

  • 创建主题
#### 创建一个topic,1个分区,3个副本
bin/kafka-topics.sh --create --bootstrap-server 10.240.21.24:9092 --partitions 1 --replication-factor 3 --topic test1
           
### 查看topic的信息
bin/kafka-topics.sh --describe --bootstrap-server 10.240.21.24:9092 --topic test1
           
  •  生产和消费消息
### 生产者发布主题消息
bin/kafka-console-producer.sh --broker-list 10.240.21.24:9092 --topic test1
           
### 消费者订阅主题消息
bin/kafka-console-consumer.sh --bootstrap-server 10.240.21.24:9092 --from-beginning --topic test1 --group consumer1
           
  •  查看消费组信息
### 查看正在消费的组或已经消费完成的组
bin/kafka-consumer-groups.sh --bootstrap-server 10.240.21.24:9092,10.240.21.25:9092,10.240.21.26:9092 --list
           
### 查看消费组积压情况
bin/kafka-consumer-groups.sh --bootstrap-server 10.240.21.24:9092,10.240.21.25:9092,10.240.21.26:9092 --describe --group consumer1
           
### 查询结果
GROUP           TOPIC           PARTITION  CURRENT-OFFSET  LOG-END-OFFSET  LAG             CONSUMER-ID     HOST            CLIENT-ID
consumer1       test1           0          1000004         1100004         100000          -               -               -
           

结果参数:

LogEndOffset 下一条将要被加入到日志的消息的位移

CurrentOffset 当前消费的位移

LAG 消息堆积量

5 性能压测

  • 生产者吞吐量测试
### 生产者吞吐量测试
bin/kafka-producer-perf-test.sh --producer-props bootstrap.servers=10.240.21.24:9092,10.240.21.25:9092,10.240.21.26:9092 --topic test1 --num-records 1000000 --record-size 2000 --throughput 100000
           

命令参数:

–num-records :总共需要发送的消息数

–record-size :每个记录的字节数

–throughput  :每秒钟发送的记录数

### 压测结果
1000000 records sent, 41614.648356 records/sec (79.37 MB/sec), 381.77 ms avg latency, 653.00 ms max latency, 378 ms 50th, 483 ms 95th, 531 ms 99th, 637 ms 99.9th.
           

结果参数

1000000 records sent :总写入消息数

41614.648356 records/sec (79.37 MB/sec) : 每秒写入消息数

381.77 ms avg latency :平均延迟时间(单位:毫秒)

653.00 ms max latency :最大延迟时间(单位:毫秒)

  • 消费组测试吞吐量
bin/kafka-consumer-perf-test.sh --broker-list 10.240.21.24:9092,10.240.21.25:9092,10.240.21.26:9092 --topic test1 --fetch-size 10000 --messages 1000000 --threads 1 --group consumer1
           

命令参数:

--fetch-size :指定每次fetch的数据的大小

--messages :总共要消费的消息个数

### 压测结果
start.time, end.time, data.consumed.in.MB, MB.sec, data.consumed.in.nMsg, nMsg.sec, rebalance.time.ms, fetch.time.ms, fetch.MB.sec, fetch.nMsg.sec
2021-07-22 18:35:43:363, 2021-07-22 18:36:07:190, 1717.5675, 72.0849, 1000004, 41969.3625, 1626950143872, -1626950120045, -0.0000, -0.0006
           

结果参数:

data.consumed.in.MB :总消费数据(单位M)

MB.sec :每秒的消费量(单位M)

data.consumed.in.nMsg :总共消费的消息条数

nMsg.sec :每秒消费的消息数

继续阅读