我们如何设计 CLI 以提高开发人员的工作效率
我们如何设计 CLI 以提高开发人员的工作效率
5 种方式 Redpanda 的 rpk 命令行界面使安装 Redpanda 和管理您的工作流程变得更加容易。
红熊猫守护者 ( rpk
) 是一个单一的二进制应用程序,用 去 与您的 Redpanda 集群交互。它被设计成一个瑞士军刀 CLI 应用程序,具有简单的命令,使其易于使用。它不仅适用于想要在本地机器上评估 Redpanda 的开发人员,也适用于想要使用 Redpanda 构建、维护和调试生产流系统的开发人员。
本博客重点介绍了以下五个主要好处 rpk
为开发人员提供,概述如下:
- 在本地机器上轻松安装和快速入门
- 主题、组和 ACL 管理功能
- 丰富的生产和消费格式
- 调整主机以采用生产工作负载
- 简单的配置更改
1. 在本地机器上提供简单的安装和快速启动
正如刚才提到的, rpk
是一个单一的二进制应用程序。它与 Redpanda 代理一起安装,该代理包含在所有 Redpanda 软件包中。它还提供自动完成功能,可帮助您与 rpk
轻松使用标签按钮。请查阅 这[ rpk](https://docs.redpanda.com/docs/reference/rpk-commands/)
文件 有关使用的最新信息 rpk
使用最新版本的 Redpanda。
在 Linux 上
如果你想跑 rpk
在 Linux 发行版中,有两种方法。
安装 rpk
使用 Redpanda 服务器二进制文件,这是 Ubuntu 上的示例:
$ curl -1sLf 'https://packages.vectorized.io/nzc4ZYQK3WRGd9sy/redpanda/cfg/setup/bash.deb.sh' |须藤 -E bash && \
sudo apt install redpanda -y && \
sudo systemctl start redpanda
安装 rpk
二进制独立,
- 在 Ubuntu 上下载 rpk 存档:
卷曲-LO[ https://github.com/redpanda-data/redpanda/releases/latest/download/rpk-linux-amd64.zip](https://github.com/redpanda-data/redpanda/releases/latest/download/rpk-linux-amd64.zip)
- 解压存档到
/usr/local/bin
或您的任何位置$路径
和:解压 rpk-linux-amd64.zip
完成后,运行 rpk版本
,这表明 rpk
二进制版本,而不是 Redpanda 服务器版本。
$ rpk 版本
v22.1.2(修订版 449eef2)
按照中的说明进行操作 我们的 Linux 快速入门文档 ,它将向您展示如何安装 rpk
在 Fedora/RedHat 系统上也是如此。
在 macOS 上
对于想要在 macOS 上评估 Redpanda 的个人开发者, 有两种方法 安装 rpk
:通过 Homebrew 或下载二进制文件。
安装 rpk
与自制,
- 跑:
brew install redpanda-data/tap/redpanda
安装 rpk
二进制,
- 下载
rpk
存档:卷曲-LO[ https://github.com/redpanda-data/redpanda/releases/latest/download/rpk-darwin-amd64.zip](https://github.com/redpanda-data/redpanda/releases/latest/download/rpk-darwin-amd64.zip)
- 解压存档到
/usr/local/bin
或您的任何位置$路径
和:解压 rpk-darwin-amd64.zip
rpk
还提供了一种在您的机器上使用 Docker 启动集群的方法。要创建 3 节点集群,请运行: rpk 容器启动 -n 3
,您就可以与 Redpanda 互动了!有关进一步的步骤,请按照相同的说明进行操作 Docker 快速入门文档 .
我们正在修改 rpk 容器
命令使其变得更好。您可以期待将来更新的命令用法。
在 Windows 上
我们不提供 rpk
目前适用于 Windows 的二进制文件。相反,请按照 Windows 快速入门文档 ,它利用 WSL2 和 Docker for Windows 在您的机器上设置 Redpanda 集群。
2. 简化主题、组和ACL管理能力
rpk
为您提供主题、组、ACL 等的集群管理功能。比如为了管理消费群体, rpk
给出一个 团体
subcommand ,您可以在其中删除组、描述组、列出组或寻求修改现有组的偏移量:
$ rpk 组 --help
描述、列出和删除消费者组并管理他们的偏移量。
...
可用命令:
从代理中删除删除组。
describe 描述组偏移状态和滞后。
list 列出所有组。
seek 修改组的当前偏移量。
...
rpk
可以轻松地将分区添加到现有主题:
$ rpk 主题添加分区 test.blog --num 10
主题错误
test.blog 好的
就像组一样,您可以删除、描述和列出主题,也可以使用配置创建主题。例如,以下命令创建一个 5GiB 的新主题 保留.字节
,并确认主题配置。
$ rpk 主题创建 test.blog2 -c retention.bytes=5373952000
话题状态
test.blog2 好的 $ rpk 主题描述 test.blog2
=======
名称 test.blog2
分区 1
复制品 1 配置
=======
关键价值来源
...
保留.bytes 5373952000 DYNAMIC_TOPIC_CONFIG
...
rpk
支持主题修改,我们认为增量( KIP-339 ) 配置修改更加防弹,并且是在现代代理上修改配置的唯一推荐方法:
$ rpk 主题 alter-config --help
设置、删除、添加和移除主题的键/值配置。
此命令允许您一次增量地更改多个主题的配置。
增量更改支持四种操作:
- 设置键=值对
- 删除键的值
- 将新值附加到值列表键
- 从值列表键中减去(删除)现有值
这是一个例子:
$ rpk 主题 alter-config test.blog2 --set retention.bytes=10747904000
话题状态
test.blog2 好的
这里都有 话题
命令:
$ rpk 主题--帮助
从 Redpanda 主题创建、删除、生产和消费。
...
可用命令:
add-partitions 将分区添加到现有主题。
alter-config 设置、删除、添加和删除主题的键/值配置。
消费 消费来自主题的记录。
创建创建主题。
删除删除主题。
描述 描述一个主题。
list 列出主题,可选择列出特定主题。
产生一个主题的记录。
...
ACL 创建遵循大致相同的标志 卡夫卡-acls.sh .列出和删除使用与创建相同的标志,缺少的标志默认为 all 过滤器(这个词更好)。我们通过提示您确认要删除的 ACL 来使删除更加安全:
$ rpk acl delete --allow-principal 用户:daisuke --user admin --password admin --sasl-mechanism SCRAM-SHA-256
火柴
=======
主要主机资源类型资源名称资源模式类型操作权限错误
用户:daisuke *主题*文字写允许 ?确认删除上述匹配的 ACL? (是/否)
键入“Y”后,控制台将更新如下:
?确认删除上述匹配的 ACL?是的 删除
=========
主要主机资源类型资源名称资源模式类型操作权限错误
用户:daisuke *主题*文字写允许
以下是所有 ACL 命令:
$ rpk acl --帮助
管理 ACL 和 SASL 用户。
...
ACL 的可用命令:
创建 创建 ACL。
删除删除 ACL。
list 列出 ACL。
user 管理 SASL 用户。
...
有关可用命令的更多信息,请参阅 rpk 文档 .
3. 启用丰富的生产和消费格式
rpk
为生产和消费提供丰富的格式化功能。以下是其中的一些部分作为示例。
创建主题:
$ rpk 主题创建 my.test.topic
话题状态
我的.test.topic 好的
从 STDIN 生成记录,将记录格式指定为键和值 -F
选项:
$猫<
键1,值1
键2,值2
键3,值3
EOF
在偏移量 0 处生成到分区 0,时间戳为 1649921155004。
在偏移量 1 处生成到分区 0,时间戳为 1649921155004。
在偏移量 2 处生成到分区 0,时间戳为 1649921155004。
让我们消费记录。默认, rpk
以下列方式显示它们,包括它们的元数据:
$ rpk 主题消费 my.test.topic
{
"topic": "my.test.topic",
“钥匙”:“钥匙1”,
“价值”:“价值1”,
“时间戳”:1649921155004,
“分区”:0,
“偏移”:0
}
{
"topic": "my.test.topic",
“钥匙”:“钥匙2”,
“价值”:“价值2”,
“时间戳”:1649921155004,
“分区”:0,
“偏移”:1
}
{
"topic": "my.test.topic",
“钥匙”:“钥匙3”,
“价值”:“价值3”,
“时间戳”:1649921155004,
“分区”:0,
“偏移”:2
}
为了只打印键和值,您可以使用 %k
和 %v
分别表示每条记录中的键和值:
$ rpk 主题消耗 my.test.topic -f '%k,%v\n'
键1,值1
键2,值2
键3,值3
默认情况下,时间戳字段打印为 Epoch 时间数值。它可以用任何一种打印
Go 格式化或 strftime 格式化:
$ rpk 主题消耗 my.test.topic -f '%k,%v,%d{go[2006-01-02T15:04:05Z07:00]}\n'
key1,value1,2022-04-14T07:25:55Z
key2,value2,2022-04-14T07:25:55Z
key3,value3,2022-04-14T07:25:55Z $ rpk topic consume my.test.topic -f '%k,%v,%d{strftime[%Y-%m-%d %H:%M:%S]}\n'
key1,value1,2022-04-14 07:25:55
key2,value2,2022-04-14 07:25:55
key3,value3,2022-04-14 07:25:55
您可以通过管道输送消费者和其他产品,因为 rpk 主题生成
从 STDIN 读取。在以下示例中,它使用来自 我的.test.topic
并将它们生成到另一个主题中, 我的生产主题
.
$ rpk 主题消耗 my.test.topic -f '%k,%v\n' | rpk 主题产生 my.production.topic -f '%k,%v\n'
rpk
还提供了用于消费和生产以及消费时数据解包的二进制编码功能。完整的格式选项可用于 rpk 主题生成 --help
或者 rpk 主题消费 --help
.
4. 调整主机以采用生产工作负载
即使您已准备好在 Redpanda 集群上运行生产工作负载, rpk
仍然是有价值的。 rpk
具有配置您的 Linux 主机以优化它以最有效地运行 Redpanda 的能力。这是命令,后面是可用选项以及简要说明。
rpk redpanda tune [命令]
For better interaction with these rpk commands, view this table 在 Redpanda 博客上的原始文章中.
有关命令的更多详细信息,请使用帮助命令,如下所示:
rpk redpanda tune help [命令]
如果你想深入挖掘 rpk
的自动调整功能,请查看 这篇博文 .
5. 允许简单的配置更改
在 Redpanda 最新的大版本更新中, 红熊猫 22.1 ,我们新的集中式集群配置系统可用,使用它可以轻松管理和编辑集群范围的配置 rpk
. rpk
集中配置带有以下子命令:
\$ rpk 集群配置 --help
与集群配置属性交互。
...
可用命令:
编辑 编辑集群配置属性。
export 导出集群配置。
force-reset 强制清除此节点上的集群配置属性。
get 获取集群配置属性
import 从文件中导入集群配置。
lint 从 redpanda.yaml 中删除所有已弃用的内容。
set 设置单个集群配置属性
status 获取 redpanda 节点的配置状态。
...
要更改代理配置,只需键入 rpk 集群配置编辑
,它启动一个编辑器(通过 $编辑器
) 并允许您即时编辑配置。使用此功能,您不再需要管理每个代理上的单独配置文件。
你会用什么来建造 rpk
和小熊猫?
总之, rpk
使开发人员更容易与 Redpanda 集群交互。除其他好处外, rpk
使它变得简单:
- 在本地机器上安装并启动 Redpanda
- 管理、主题、组和 ACL
- 使用丰富的格式进行生产和消费
- 调整主机以采用生产工作负载
- 进行配置更改
了解更多关于 rpk
以及它如何让您的生活更简单,加入我们 在 GitHub 上 ,或与我们互动 我们的 Slack 社区 .有关如何与之交互的更详细列表 rpk
, 查看我们的[ rpk](https://docs.redpanda.com/docs/reference/rpk-commands/)
文件 .
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明