protobuf格式的Kafka生产者和消费者工具

997 阅读1分钟

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 

GitHub

github.com/SberMarket-…