1、kafka脚本操作
1.1、kafka-topics命令
l 查看当前服务器中的所有topic
kafka-topics --zookeeper zk01:2181/kafka --list
l 创建topic(分区、副本)
kafka-topics --zookeeper zk01:2181/kafka --create --topic test --partitions 1 --replication-factor 1
l 查看某个Topic的详情
kafka-topics --zookeeper zk01:2181/kafka --describe --topic test
l 对分区数进行修改
kafka-topics --zookeeper zk01:2181/kafka --alter --topic utopic --partitions 15
l 删除topic
kafka-topics --zookeeper zk01:2181/kafka --delete --topic test
需要server.properties中设置delete.topic.enable=true否则只是标记删除或者直接重启。
1.2、kafka-console-producer命令
l 发送消息(手动一行行发送)
kafka-console-producer --broker-list kafka01:9092 --topic test
l 发送消息(管道,批量上传一个文件内容)
tail -F /root/log.log | kafka-console-producer --broker-list kafka01:9092 --topic test
1.3、kafka-console-consumer命令
l 消费消息
kafka-console-consumer --zookeeper zk01:2181/kafka --topic test --from-beginning
1.4、kafka-run-class/kafka-consumer-offset-checker命令(查看消费情况)
l 查看消费位置
kafka-run-class kafka.tools.ConsumerOffsetChecker --zookeeper zk01:2181/kafka --group testgroup
具体到topic
kafka-run-class kafka.tools.ConsumerOffsetChecker --zookeeper zk01:2181/kafka --group testgroup --topic test
或者
kafka-consumer-offset-checker --zookeeper zk01/kafka --group testgroup --topic test
2、通过Java的api操作:
maven依赖
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka_2.10</artifactId>
<version>0.9.0.0</version>
<exclusions>
<exclusion>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</exclusion>
</exclusions>
</dependency>
生产者API
import kafka.javaapi.producer.Producer; //注意:一定是Javaapi
import kafka.producer.KeyedMessage;
import kafka.producer.ProducerConfig;
import java.util.Properties;
/**
* @Company 任子行网络技术股份有限公司