kafka集群搭建
所属分类 kafka
浏览量 1180
kafka1.1.0
本机部署三个实例
一个实例需要2个端口 jmx端口 服务端口
jmx端口 在 kafka-server-start.sh 里配置
|
kafka1 |
kafka2 |
kafka3 |
id |
0 |
1 |
2 |
端口 |
9092 |
9093 |
9094 |
JMX端口 |
9995 |
9996 |
9997 |
zookeeper.connect=localhost:2182,localhost:2183/kafka
zkroot kafka
启动zk集群
请参考 zookeeper集群搭建
依次启动kafka broker
nohup ./bin/kafka-server-start.sh config/server.properties &
发送消息
https://gitee.com/dyyx/kafkademo/blob/master/src/main/java/dyyx/ProducerTest.java
自动创建topic
消费消息
https://gitee.com/dyyx/kafkademo/blob/master/src/main/java/dyyx/ConsumerTest.java
查看 offset
./bin/kafka-consumer-groups.sh --bootstrap-server 127.0.0.1:9092 --describe --group kafkademo_test_group
停止 broker
kafka-server-stop.sh
可以命令行工具 发送消费消息
kafka命令行发送接收消息
数据存储
kafka0/kafka-logs/kafka_demo_test_topic-1
00000000000000000000.index
00000000000000000000.log
00000000000000000000.timeindex
leader-epoch-checkpoint
../../bin/kafka-run-class.sh kafka.tools.DumpLogSegments --files 00000000000000000000.log
Starting offset: 0
baseOffset: 0 lastOffset: 0 baseSequence: -1 lastSequence: -1 producerId: -1 producerEpoch: -1 partitionLeaderEpoch: 3 isTransactional: false position: 0 CreateTime: 1597727377253 isvalid: true size: 128 magic: 2 compresscodec: NONE crc: 2324548880
baseOffset: 1 lastOffset: 1 baseSequence: -1 lastSequence: -1 producerId: -1 producerEpoch: -1 partitionLeaderEpoch: 3 isTransactional: false position: 128 CreateTime: 1597727377275 isvalid: true size: 128 magic: 2 compresscodec: NONE crc: 3632234908
size: 128 compresscodec: NONE
查看主题offset
./kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list localhost:9092 --time -1 --topic kafka_demo_test_topic
--time timestamp of the offsets before that (earliest) (default: -1)
查看数据文件数据
./kafka-run-class.sh kafka.tools.DumpLogSegments --files /Users/dugang/soft/elk/kafka-cluster/kafka0/kafka-logs/kafka_demo_test_topic-1/00000000000000000023.log | head -n 10
./kafka-run-class.sh kafka.tools.DumpLogSegments --deep-iteration --files /Users/dugang/soft/elk/kafka-cluster/kafka0/kafka-logs/kafka_demo_test_topic-1/00000000000000000023.log | head -n 10
./kafka-run-class.sh kafka.tools.DumpLogSegments --print-data-log --files /Users/dugang/soft/elk/kafka-cluster/kafka0/kafka-logs/kafka_demo_test_topic-1/00000000000000000023.log | head -n 10
--print-data-log 显示消息数据
offset: 23 position: 0 CreateTime: 1598148413924 isvalid: true keysize: 16 valuesize: 45 magic: 2 compresscodec: NONE producerId: -1 producerEpoch: -1 sequence: -1 isTransactional: false headerKeys: [] key: 1598148413924_14 payload: 1598148413924_14,Sun Aug 23 10:06:53 CST 2020
offset: 24 position: 130 CreateTime: 1598148413961 isvalid: true keysize: 16 valuesize: 45 magic: 2 compresscodec: NONE producerId: -1 producerEpoch: -1 sequence: -1 isTransactional: false headerKeys: [] key: 1598148413960_18 payload: 1598148413960_18,Sun Aug 23 10:06:53 CST 2020
offset: 25 position: 260 CreateTime: 1598148414002 isvalid: true keysize: 16 valuesize: 45 magic: 2 compresscodec: NONE producerId: -1 producerEpoch: -1 sequence: -1 isTransactional: false headerKeys: [] key: 1598148414001_23 payload: 1598148414001_23,Sun Aug 23 10:06:54 CST 2020
性能压测
./kafka-producer-perf-test.sh --topic kafka_demo_test_topic --num-records 1000000 --throughput -1 --record-size 128 --producer-props bootstrap.servers=localhost:9092 acks=-1 linger.ms=2000 compression.type=lz4
./kafka-consumer-perf-test.sh --broker-list localhost:9092 --messages 1000000 --topic producer
配置文件实例
kafka-cluster/kafka0/config/server.properties
broker.id=0
listeners=PLAINTEXT://localhost:9092
num.network.threads=5
num.io.threads=10
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/Users/dugang/soft/elk/kafka-cluster/kafka0/kafka-logs
num.partitions=6
default.replication.factor=2
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
log.retention.hours=3
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
zookeeper.connect=localhost:2182,localhost:2183/kafka
zookeeper.connection.timeout.ms=6000
group.initial.rebalance.delay.ms=0
常见异常
Exception in thread "main" java.util.concurrent.ExecutionException: org.apache.kafka.common.errors.UnknownTopicOrPartitionException: This server does not host this topic-partition.
UnknownTopicOrPartitionException
创建 topic 往 zk写入元数据,需要一定的时间 , 可稍后重试
This topic/partition doesn't exist.
This exception is used in contexts where a topic doesn't seem to exist based on possibly stale metadata.
This exception is retriable because the topic or partition might subsequently be created.
producer 可捕获此异常,并重试
完整例子代码
https://gitee.com/dyyx/kafkademo
kafka命令行发送接收消息
zookeeper集群搭建
kafka在zookeeper中的元数据
kafka1.1.0无法消费问题
上一篇
下一篇
降级 限流 熔断 简单理解
kafka在zookeeper中的元数据
Kafka配置参数
kafka命令行发送接收消息
zookeeper命令行zkCli使用
spring构造注入优缺点