kafka常用术语、命令及参数

一、常见术语

  • broker:kafka集群包括一个或多个服务器,这种服务器叫做broker。broker接受来自生产者的消息,为消息设置偏移量,并提交消息到磁盘保存。broker为消费者提供服务,对读取分区的请求作出相应,返回已经提交到磁盘上的信息。
  • topic(主题):每条发布到kafka的消息都有一个类别,这个类别叫做topic。topic就好比数据库的表或者文件系统中的文件夹。一个主题可以分为多个分区,一个分区就是一个提交日志。消息以追加的方式写入分区,然后以先入先出的顺序读取。注意,由于一个主题可以多个分区,因此无法在整个主题范围内保证消息的顺序,但可以保证消息在单个分区内的顺序。其实就是队列存储
  • message(消息):kafka的数据单元。
  • 批次:就是一组消息,这些消息属于同一个主题和分区。为了提高效率,消息被分批次写入kafka。
  • partition(分区):物理上的概念,一个topic通常有多个partition,类似队列。
  • offset(偏移量):一种元数据,它是一个不断递增的整数值,在创建消息时,kafka会把它添加到消息里。kafka为每条在分区的消息保存这个offset,这也是消费者在分区的位置。比如一个偏移量为10的消费者,表示它已经消费了0-9偏移量的消息,下一个要消费的消息是偏移量为10的。
  • producer(生产者):消息的生产者,负责发送指定topic的消息到broker。默认情况下把消息均衡地分布到主题的所有分区上。
  • consumer(消费者):消息读取客户端,通过订阅一组topic的消息从broker拉取消息
  • consumer group(消费者群组):消费者是消费者群组的一部分,就是说,会有一个或者多个消费者共同读取一个topic。群组保证每个分区只能被一个消费者使用。可以为消费者指定group name,若不指定则属于默认的group。

二、启动zookeeper

bin/zookeeper-server-start.sh config/zookeeper.properties &

三、启动kafka

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

四、kafka生产者

 bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test_topic

producer参数:

参数 值类型 说明 有效值
--bootstrap-server String

要连接的服务器(kafka_2.12-2.5.0版本后加入的)

必需(除非指定--broker-list)

形如:host1:prot1,host2:prot2
--topic String (必需)接收消息的主题名称  
--broker-list String (kafka_2.12-2.5.0版本前)要连接的服务器 形如:host1:prot1,host2:prot2
--batch-size Integer 单个批处理中发送的消息数 200(默认值)
--compression-codec String 压缩编解码器 none、gzip(默认值)snappy、lz4、zstd
--max-block-ms Long 在发送请求期间,生产者将阻止的最长时间 60000(默认值)
--max-memory-bytes Long 生产者用来缓冲等待发送到服务器的总内存 33554432(默认值)
--max-partition-memory-bytes Long 为分区分配的缓冲区大小 16384
--message-send-max-retries Integer 最大的重试发送次数 3
--metadata-expiry-ms Long 强制更新元数据的时间阈值(ms) 300000
--producer-property String 将自定义属性传递给生成器的机制 形如:key=value
--producer.config String

生产者配置属性文件

[--producer-property]优先于此配置

配置文件完整路径
--property String 自定义消息读取器

parse.key=true|false

key.separator=<key.separator>

ignore.error=true|false

--request-required-acks String 生产者请求的确认方式 0、1(默认值)、all
--request-timeout-ms Integer 生产者请求的确认超时时间 1500(默认值)
--retry-backoff-ms Integer 生产者重试前,刷新元数据的等待时间阈值 100(默认值)
--socket-buffer-size Integer TCP接收缓冲大小 102400(默认值)
--timeout Integer 消息排队异步等待处理的时间阈值 1000(默认值)
--sync   同步发送消息  
--version  

显示 Kafka 版本

不配合其他参数时,显示为本地Kafka版本

 
--help   打印帮助信息  

五、kafka消费者

bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test_topic --from-beginning

consumer参数:

参数 值类型 说明 有效值
--topic string 被消费的topic  
--whitelist string 正则表达式,指定要包含以供使用的主题的白名单  
--partition integer 指定分区 除非指定’–offset’,否则从分区结束(latest)开始消费  
--offset string 执行消费的起始offset位置 默认值:latest latest earliest <offset>
--consumer-property string 将用户定义的属性以key=value的形式传递给使用者  
--consumer.config string

消费者配置属性文件

请注意,[consumer-property]优先于此配置

 
--formatter string

用于格式化kafka消息以供显示的类的名称

默认值:kafka.tools.DefaultMessageFormatter

kafka.tools.DefaultMessageFormatter

kafka.tools.LoggingMessageFormatter

kafka.tools.NoOpMessageFormatter

kafka.tools.ChecksumMessageFormatter

--property string 初始化消息格式化程序的属性

print.timestamp=true|false

print.key=true|false

print.value=true|false

key.separator=<key.separator>

line.separator=<line.separator>

key.deserializer=<key.deserializer>

value.deserializer=<value.deserializer>

--from-beginning   从存在的最早消息开始,而不是从最新消息开始  
--max-messages integer 消费的最大数据量,若不指定,则持续消费下去  
--timeout-ms integer 在指定时间间隔内没有消息可用时退出  
--skip-message-on-error   如果处理消息时出错,请跳过它而不是暂停  
--bootstrap-server string 必需(除非使用旧版本的消费者),要连接的服务器  
--key-deserializer string    
--value-deserializer string    
--enable-systest-events   除记录消费的消息外,还记录消费者的生命周期 (用于系统测试)  
--isolation-level string

设置为read_committed以过滤掉未提交的事务性消息

设置为read_uncommitted以读取所有消息

默认值:read_uncommitted

 
--group string 指定消费者所属组的ID  
--blacklist string 要从消费中排除的主题黑名单  
--csv-reporter-enabled   如果设置,将启用csv metrics报告器  
--delete-consumer-offsets   如果指定,则启动时删除zookeeper中的消费者信息  
--metrics-dir string 输出csv度量值 需与[csv-reporter-enable]配合使用  
--zookeeper string

必需(仅当使用旧的使用者时)连接zookeeper的字符串。

可以给出多个URL以允许故障转移

 

参考:https://blog.csdn.net/qq_29116427/article/details/80206125

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章