Kafka常用API命令汇总

Kafka常用API命令汇总:

0、启动kafka集群

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

1、列出集群里的所有主题。

$ kafka-topics.sh --zookeeper node01:2181,node02:2181,node03:2181 --list

2、 创建一个叫作my-topic的主题,主题包含8分区,每个分区拥有两个副本。 kafka-topics.sh --zookeeper node01:2181,node02:2181,node03:2181 --create --topic source_topic --replication-factor 3 --partitions 2

3、列出集群里所有主题的详细信息。 kafka-topics.sh --zookeeper node01:2181,node02:2181,node03:2181 --describe

4、列出集群里特定主题的详细信息。 kafka-topics.sh --zookeeper node01:2181,node02:2181,node03:2181 --describe --topic my-topic

5、删除一个叫作my-topic的主题。 kafka-topics.sh --zookeeper node01:2181,node02:2181,node03:2181 --delete --topic my-topic

需要设置 delete.topic.enable 为true

6、列出旧版本的所有消费者群组。 kafka-consumer-groups.sh --zookeeper node01:2181,node02:2181,node03:2181 --list

7、列出新版本的所有消费者群组。 kafka-consumer-groups.sh --new-consumer --bootstrap-server node01:9092,node02:9092,node03:9092 --list

8、获取旧版本消费者群组testgroup的详细信息。 kafka-consumer-groups.sh --zookeeper node01:2181 --describe --group testgroup

9、获取新版本消费者群组console-consumer-87024的详细信息。 kafka-consumer-groups.sh --new-consumer --bootstrap-server node01:9092,node02:9092,node03:9092 --describe --group console-consumer-87024

10、查看某一个topic对应的消息数量。 kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list node01:9092 --topic B2CDATA_COLLECTION3 --time -1

11、查看log日志片段的内容,显示查看日志的内容。 kafka-run-class.sh kafka.tools.DumpLogSegments --files 00000000000000000000.log --print-data-log

12、控制台生产者:向主题 my-topic 生成两个消息。 kafka-console-producer.sh --broker-list node01:9092 --topic my-topic

13、控制台消费者:从主题 my-topic 获取消息。 kafka-console-consumer.sh --zookeeper node01:2181,node02:2181,node03:2181 --topic my-topic --from-beginning

 

server.properties 配置项

名称说明默认值有效值重要性
bootstrap.serverskafka集群的broker-list,如:hadoop01:9092,hadoop02:9092 必选
acks确保生产者可靠性设置,有三个选项:acks=0:不等待成功返回acks=1:等Leader写成功返回acks=all:等Leader和所有ISR中的Follower写成功返回,all也可以用-1代替-10,1,-1,all 
key.serializerkey的序列化器 ByteArraySerializerStringSerializer必选
value.serializervalue的序列化器 ByteArraySerializerStringSerializer必选
buffer.memoryProducer总体内存大小33554432不要超过物理内存,根据实际情况调整建议必选
compression.type压缩类型压缩最好用于批量处理,批量处理消息越多,压缩性能越好none、gzip、snappy 
retries发送失败尝试重发次数0  
batch.size每个partition的未发送消息大小16384根据实际情况调整建议必选
client.id附着在每个请求的后面,用于标识请求是从什么地方发送过来的   
connections.max.idle.ms连接空闲时间超过过久自动关闭(单位毫秒)540000  
linger.ms数据在缓冲区中保留的时长,0表示立即发送为了减少网络耗时,需要设置这个值太大可能容易导致缓冲区满,阻塞消费者太小容易频繁请求服务端0  
max.block.ms最大阻塞时长60000  
max.request.size请求的最大字节数,该值要比batch.size大不建议去更改这个值,如果设置不好会导致程序不报错,但消息又没有发送成功1048576  
partitioner.class分区类,可以自定义分区类,实现partitioner接口默认是哈希值%partitions  
receive.buffer.bytessocket的接收缓存空间大小,当阅读数据时使用32768  
request.timeout.ms等待请求响应的最大时间,超时则重发请求,超过重试次数将抛异常3000  
send.buffer.bytes发送数据时的缓存空间大小131072  
timeout.ms控制server等待来自followers的确认的最大时间30000  
max.in.flight.requests.per.connectionkafka可以在一个connection中发送多个请求,叫作一个flight,这样可以减少开销,但是如果产生错误,可能会造成数据的发送顺序改变。5  
metadata.fetch.timeout.ms从ZK中获取元数据超时时间比如topic\host\partitions60000  
metadata.max.age.ms即使没有任何partition leader 改变,强制更新metadata的时间间隔300000  
metric.reporters类的列表,用于衡量指标。实现MetricReporter接口,将允许增加一些类,这些类在新的衡量指标产生时就会改变。JmxReporter总会包含用于注册JMX统计none  
metrics.num.samples用于维护metrics的样本数2  
metrics.sample.window.msmetrics系统维护可配置的样本数量,在一个可修正的window size。这项配置配置了窗口大小,例如。我们可能在30s的期间维护两个样本。当一个窗口推出后,我们会擦除并重写最老的窗口30000  
reconnect.backoff.ms连接失败时,当我们重新连接时的等待时间。这避免了客户端反复重连10  
retry.backoff.ms在试图重试失败的produce请求之前的等待时间。避免陷入发送-失败的死循环中100  
     
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值