0.3.1 2020年11月11日
0.3.0 2020年11月10日
0.2.1 2020年10月28日
0.1.4 2020年10月8日

#36 in #fluvio

Apache-2.0

1MB
25K SLoC

命令行界面

Fluvio 命令行界面(简称 CLI)是 Fluvio 集群的 primary 通信机制。

集群由两个组件组成,分别使用各自的命令运行

  • 流式控制器(fluvio run sc)
  • 流式处理单元(fluvio run spu)

Kafka

Fluvio CLI 也与 Kafka 2.x 兼容。Fluvio 通过一个用户友好的命令行界面,使系统管理员能够轻松地部署 Kafka 和 Fluvio 环境。

配置文件

Fluvio CLI 使用配置文件来存储大多数常用参数。这种方法为管理员提供了与 SC、SPU 或 Kafka 环境通信的便利。

生产 CLI

生产 CLI 可在一次会话中摄取一个或多个日志记录。主题和分区是必填参数,其他为可选。

Write log records to a topic/partition

USAGE:
    fluvio produce [OPTIONS] --partition <integer> --topic <string>

FLAGS:
    -h, --help    Prints help information

OPTIONS:
    -t, --topic <string>                Topic name
    -p, --partition <integer>           Partition id
    -l, --record-per-line <filename>    Each line is a Record    
    -r, --record-file <filename>...     Entire file is a Record (multiple)
    -c, --sc <host:port>                Address of Streaming Controller
    -s, --spu <host:port>               Address of Streaming Processing Unit
    -k, --kf <host:port>                Address of Kafka Controller
    -e, --profile <profile>             Profile name

应将生产主题/分区的命令发送到 SC 以查找托管领导者的 SPU 的位置。然后直接将日志记录发送到 SPU。

生产命令还可以将日志消息发送到 Kafka。选择任何代理地址,系统将识别托管领导者的代理并相应地转发日志记录。

直接发送到 SPU 的日志记录如果是主题/分区的领导者将被接受;否则将被拒绝。

交互式 CLI

带有主题/分区的生产命令将打开一个交互式会话,其中每行都被解释为一条记录

> fluvio produce -t topic-1 -p 0
line 1
> Ok!
line 2
> Ok!
<Ctrl>-C or <Ctrl>-D to exit (interactive session)

文件记录

Fluvio 生产可以从文件中摄取日志记录,如下所示

  • 每文件记录
  • 每行记录

对于必须存储其全部内容才能正确由消费者解释的二进制或 JSON 对象,记录封装非常重要。

每文件记录

使用 record-file 参数将整个文件作为一个记录摄取。一次可以发送一个或多个文件。

> fluvio produce -t topic-1 -p 0 -r json-file1.txt -r json-file2.txt
{"name": "john doe"}
> Ok!
{"name": "jane doe"}
> Ok!

每行记录

使用 record-per-line 参数按行摄取记录,直到达到文件末尾。注意,使用基于文本的文件以正确解释行尾。

> fluvio produce -t topic-1 -p 0 -l my-file.txt
Lorem Ipsum is simply dummy text
> Ok!
Lorem Ipsum has been the industry's standard since 1500's.
> Ok!
It has survived over five centuries
> Ok!

依赖关系

~38–58MB
~1M SLoC