protokaf
protobuf格式的Kafka生产者和消费者工具。
特点
- 使用Protobuf协议消费和生产消息
- 使用Jaeger追踪消息
- 为一条或多条消息创建自定义模板,并将其生产到Kafka中。
安装
go install github.com/SberMarket-Tech/protokaf@latest
配置
配置文件是可选的,所以你可以跳过这一部分。
为了让Protokaf工作,它需要知道如何到达你的Kafka代理。第一个选项是在你每次调用Protokaf时提供--broker 。另一个选择是使用一个配置文件。你可以在命令行中用选项-F .. ,向Protokaf提供一个配置文件。或者默认情况下,Protokaf将分别在.protokaf.yaml 和$HOME/.protokaf.yaml 中搜索其配置文件。
例子.protokaf.yaml
debug
帮助
$ protokaf
列出元数据
$ protokaf list [-t
生成
帮助
$ protokaf produce -h
例子
这个proto文件将在下面的例子中使用。
api/example.ptoto
syntax
一个简单的生产消息
$ protokaf produce HelloRequest \
--broker kafka:9092 \
--proto api/example.proto \
--topic
带有标题的信息生产
$ protokaf produce HelloRequest \
--broker kafka:9092 \
--proto api/example.proto \
--topic
用模板生成消息
$ protokaf produce HelloRequest \
--broker kafka:9092 \
--proto api/example.proto \
--topic
使用Kafka auth生成消息
$ protokaf produce HelloRequest \
--broker kafka:9093 \
--kafka-auth-dsn
从stdin或flag读取数据
从stdin 读取消息HelloRequest ,生成到test 主题
$
从-d 值读取消息HelloRequest ,产生到test 主题。
$ protokaf produce HelloRequest -t
模板
模板选项
--seed <int>你可以设置大于零的数字来产生相同的伪随机信息序列。--count <int>有助于生成具有随机数据的消息--concurrency <int>为了产生const concurrency,要同时运行的消息发送者的数量
显示所有模板函数
$ protokaf produce --template-functions-print
消耗
帮助
$ protokaf
示例
$ protokaf consume HelloRequest \
--broker kafka:9092 \
--proto api/example.proto \
--group mygroup \
--topic
从Kafkatest 主题中读取消息,使用组mygroup ,打印到stdout
$ protokaf consume HelloRequest -G mygroup -t
从test 主题中读取最后的10 消息,然后退出
$ protokaf consume HelloRequest -G mygroup -t
测试
准备好测试环境
make docker-dev-up
make kafka-users
make install