kafka-基础

一、一些概念

主题类似与数据库表或文件夹的概念,主题可分为多个分区,一个分区就是一个提交日志,消息以追加的方式写入分区,读取数据按照先入先出方式顺序读取(只能保证单个分区消息顺序读取)。

1.通过分区实现数据的冗余和伸缩性。

2.分区可分布在不同服务器上,一个主题可横跨多个服务器。

生产者:创建消息,发布到特定的主题上。默认情况是均衡的发布到当前主题的所有分区。可通过消息键和分区器指定写入某个分区。

消费者:读取消息,按照消息生成的顺序读取,通过检查消息的偏移量区分已读消息。偏移量:一个不断递增的整数值,单个分区内是唯一的,读取消息后会把每个分区最后读取的偏移量存储到zookeeper或kafka,关闭或重启后读取状态不会丢失。每个分区只能有一个消费者。

消费者组:多个消费者组成消费者组,增加消费速度,一个消费者组订阅同一个topic,每个消费者接受这个topic的一部分分区消息。

broker:一个独立的kafka服务器成为broker。broker接受消息,为消息设置偏移量同时提交消息到磁盘,他为消费者提供服务,响应读取分区请求,返回已提交到磁盘的消息,消息保留策略:1.保存一定的时间后过期删除;2.保留到一定的字节数,超过后删除(可用消息总量一定小于配置参数指定的大小)。

集群:多个broker组成集群。每个集群会有一个leader管理整个集群的broker;一个分区可分配给多个broker,分区复制,为消息提供的消息的冗余,一个broker失效,其他broker可继续接管。

二、配置参数

官方文档--配置参数

三、常用命令

##kafka服务启动:
bin/kafka-server-start.sh  -daemon ../config/server.properties
## 创建主题(4个分区,2个副本)
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 2 --partitions 4 --topic test

## 查询集群描述
bin/kafka-topics.sh --describe --zookeeper 

## topic列表查询
bin/kafka-topics.sh --zookeeper 127.0.0.1:2181 --list

## topic列表查询(支持0.9版本+)
bin/kafka-topics.sh --list --bootstrap-server localhost:9092

## 新消费者列表查询(支持0.9版本+)
bin/kafka-consumer-groups.sh --new-consumer --bootstrap-server localhost:9092 --list

## 新消费者列表查询(支持0.10版本+)
bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --list

## 显示某个消费组的消费详情(仅支持offset存储在zookeeper上的)
bin/kafka-run-class.sh kafka.tools.ConsumerOffsetChecker --zookeeper localhost:2181 --group test

## 显示某个消费组的消费详情(0.9版本 - 0.10.1.0 之前)
bin/kafka-consumer-groups.sh --new-consumer --bootstrap-server localhost:9092 --describe --group test-consumer-group

## 显示某个消费组的消费详情(0.10.1.0版本+)
bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --describe --group my-group

## 生产者
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test

## 消费者
bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test

## 新生产者(支持0.9版本+)
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test --producer.config config/producer.properties

## 新消费者(支持0.9版本+)
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --new-consumer --from-beginning --consumer.config config/consumer.properties

## 高级点的用法
bin/kafka-simple-consumer-shell.sh --brist localhost:9092 --topic test --partition 0 --offset 1234  --max-messages 10



 

发布了24 篇原创文章 · 获赞 1 · 访问量 1270

猜你喜欢

转载自blog.csdn.net/birdswillbecomdragon/article/details/104156374