kafkacat 是基于kafka C语言的librdkafka库的 kafka客户端,不依赖java,小巧轻便,支持主流系统。
在高版本的debain、Ubuntu下可以直接apt-get install kafkacat,maxos下可以用brew install kafkacat
也可以自己编译,也是非常简单(需要先安装好curl和 cmake)
apt-get install cmake
git clone https://github.com/edenhill/kafkacat
cd kafkacat && https://blog.csdn.net/liuyuinsdu/article/details/bootstrap.sh
支持docker使用
1、查看kafka信息(kafka_broker表示kafka服务器的地址,下同)
kafkacat -L -b kafka_broker
2、消费者
a、订阅所有消息
kafkacat -C -b kafkabroker -t topicname
b、读取制指定个数的消息(可以查看kafka里是否有消息)
kafkacat -C -b kafkabroker -t topicname -p 0 -o -个数 -e
3、生产者
a、直接发送 按下enter键后,等待连接成功就可以发送消息了,ctrl+d 退出发送消息
kafkacat -b kafkabroker -t topic -P
b、通过管道发送
cat msg.txt | kafkacat -b kafkabroker -t topic -P
4、转发消息
可以通过管道把接收到的消息转发到生产者
kafkacat -C -b kafkabroker1 -t topic1 -e | kafkacat -P -b kafkabroker2 -t topic2
5、配置
kafkacat 使用的是librdkafka的配置,使用时可以通过 '-F'指定配置文件。
比如 SASL_PLAINTEXT登录,新建一个配置文件, 如 kafka.conf
security.protocol=SASL_PLAINTEXT
sasl.mechanisms=PLAIN
sasl.username=username
sasl.password=pwd
kafkacat -L -b kafka_broker -F kafka.conf
docker使用方式:
docker run -it --network=host edenhill/kafkacat:1.6.0 -b 39.99.194.153:20040 -t test123 -P