【Kafka】01 基本概念
- 基本名词
- Producer
- Consumer
- Broker--服务器-->集群
- 主题和分区
主题是逻辑上的概念,分区是可以追加的日志文件。
offset是每个分区文件的偏移量,offset不跨越分区-->保证分区内消息有序。
分区解决了写文件,单个机器IO成为瓶颈的问题。 - 多副本机制
副本是为了提升容灾能力。
leader副本负责读写请求,follower负责与leader同步- AR(所有副本)=ISR(In-Sync Replicas) + OSR(Out-of-Sync Replicas)
- HW(High Watermark)
水位线,数据写到所有副本后,下一个位置的offset。消费者只能拉取HW之前的数据. - LEO(Log End Offset)
下一条待写入消息的offset。
ISR集合中最小的LEO为分区的HW。
- 服务端相关参数
log.dirs为日志文件存放的目录。log.dirs比log.dir优先级高。只有log.dir由默认值,为/tmp/kafka-logs - 简单示例
- 命令行
创建主题
# bin/kafka-topics.sh --zookeeper localhost:2181/kafka --create --topic topic-demo --replicationo-factor 3 --partitions 4
发送消息
# bin/kafka-console-consumer.sh --bootstrapserver localhost:9092 --topic topic-demo
消费消息
# bin/kafka-console-producer.sh --broker-list localhost:9092 --topic topic-demo