让kafka支持外网访问
1.修改config/下的server.properties
listeners=PLAINTEXT://192.168.230.130:9092
host.name=192.168.230.130 #这里的ip填成你的kafka的ip
继续修改
advertised.listeners=PLAINTEXT://192.168.230.130:9092
2.至此,配置完成,记得重启kafka服务,可以下载kafka tools来验证是否可以外网访问
注:配置完以后,操作脚本时记得改为--bootstrap-server 192.168.230.130:9092,否则连不上。
常用操作
启动ZooKeeper:
bin/zookeeper-server-start.sh config/zookeeper.properties
启动kafka:
bin/kafka-server-start.sh -daemon(可选) config/server.properties
创建一个topic:
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
删除一个topic:
在server.properties中增加设置,默认未开启
delete.topic.enable=true
删除主题命令
/bin/kafka-topics --delete --topic test --zookeeper localhost:2181
查看topic列表:
bin/kafka-topics.sh --list --zookeeper localhost:2181
显示topic信息:
bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic test
删除topic数据:
如果想保留主题,只删除主题现有数据(log)。可以通过修改数据保留时间实现
-
bin/kafka-configs --zookeeper localhost:2181 --entity-type topics --entity-name test --alter --add-config retention.ms=3000
-
//修改保留时间为三秒,但不是修改后三秒就马上删掉,kafka是采用轮训的方式,轮训到这个主题发现三秒前的数据都是删掉。时间由自己在server.properties里面设置,设置见下面。
数据删除后,继续使用主题,那主题数据的保留时间就不可能为三秒,所以把上面修改的配置删掉,采用server.properties里面统一的配置。
bin/kafka-configs --zookeeper localhost:2181 --entity-type topics --entity-name test --alter --delete-config retention.ms
server.properties里面数据保留时间的配置
-
log.retention.hours=168 //保留时间,单位小时
-
log.retention.check.interval.ms=300000 //保留时间检查间隔,单位毫秒
生产者:
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
消费者:
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
group当前偏移量:
bin/kafka-consumer-groups.sh --bootstrap-server 192.168.230.130:9092 --describe --group test3
group偏移设最早:
bin/kafka-consumer-groups.sh --bootstrap-server 192.168.230.130:9092 --reset-offsets --group test3 --topic test --to-earliest
关闭kafka:
kafka提供了关闭脚本,但是我运行的时候报错:
- # ./bin/kafka-server-stop.sh
- usage: kill [ -s signal | -p ] [ -a ] pid ...
- kill -l [ signal ]
先查看一下运行的Java进程,用ps -def | grep java命令吧。
然后 /proc/进程ID目录,确认果然是kafka的进程
- ll /proc/49494
直接kill吧
详解:https://segmentfault.com/a/1190000016106045#item-4