kafka

本文介绍了Kafka的安装配置、删除与接收topic的操作,以及查看所有topic的方法。删除topic需要设置`delete.topic.enable=true`并重启服务。消息保存有效期可通过`log.retention.minutes`配置。使用`kafka-console-consumer.sh`命令接收topic消息,并通过`log`目录监控消息生产。消费者配置中的`auto.offset.reset`参数影响消息接收方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

kafka安装配置

http://blog.youkuaiyun.com/hljlzc2007/article/details/13278515


kafka配置说明( config/server.properties)

http://blog.youkuaiyun.com/lizhitao/article/details/25667831

需要注意的是:

log.retention.minutes=300 消息保存有效期,过期会被删除

num.partitions =每个topic的分区个数,只能增加不能减少

如果需要减少某个topic的分区数,只能先将该topic删除再重新创建


删除topic

./bin/kafka-topics.sh  --delete --zookeeper localhost:2181 --topic 【topic name】


需要在配置文件中加入(默认一般没有该项)

delete.topic.enable=true

重启kafka server

再次delete topic方生效

参考:

http://blog.youkuaiyun.com/fengzheku/article/details/50585972


接收topic消息

bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic 【topic name】


通过kafka的log目录判断是否有消息生产

在生产者配置中( config/server.properties),可以找到log的目录,默认为同级目录的tmp/kafka-logs

下面有各个topic的消息缓存,如下分别为test、test1、test3三个topic的目录,后面为分区序号。


这是只有一个分区的情况,如果有多个分区,则会有多个目录(__consumer_offsets为系统默认topic)


目录下是一个indix和一个log文件。其中index文件的大小一般不会变化,log刚创建时大小为0,随着消息的增加,它的大小也会增加。如果消息过期,会有新的文件替换它们。但是初始文件名均为00000000000000000000.index,00000000000000000000.log


设置文件过期时间(如2分钟),查看新log文件的大小来判断是否有消息产生

log.retention.minutes=2



接收不到消息的原因:

1.由于消息有延迟,需要等待一段时间才能接收到(大概10-20s),之前测试了好几次以为没有接收到消息,实际上是等待时间不够长。

简单说下整个系统运行的顺序:

1.         启动zookeeper的server

2.         启动kafka的server

3.         Producer如果生产了数据,会先通过zookeeper找到broker,然后将数据存放进broker

4.         Consumer如果要消费数据,会先通过zookeeper找对应的broker,然后消费。


2.生产者用代码生成时,不需要再创立同名topic,否则消息也是接收不了。

3.客户端配置问题

auto.offset.reset=latest,表示接收最新消息;earliest表示从头接收消息。

暂时理解是:earliest时,消费者只接收它创建以后的消息,必须要生产者在消费者开始监听消息后发送消息才能被接收到。



参考:

http://www.lingdonge.com/coding/java/4035.html

查看所有的topic

bin/kafka-topics.sh --list --zookeeper localhost:2181



常用命令

大消息传输问题(1M以上)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值