我们如何设计 CLI 以提高开发人员的工作效率

我们如何设计 CLI 以提高开发人员的工作效率

5 种方式 Redpanda 的 rpk 命令行界面使安装 Redpanda 和管理您的工作流程变得更加容易。

红熊猫守护者 ( rpk ) 是一个单一的二进制应用程序,用 与您的 Redpanda 集群交互。它被设计成一个瑞士军刀 CLI 应用程序,具有简单的命令,使其易于使用。它不仅适用于想要在本地机器上评估 Redpanda 的开发人员,也适用于想要使用 Redpanda 构建、维护和调试生产流系统的开发人员。

本博客重点介绍了以下五个主要好处 rpk 为开发人员提供,概述如下:

  1. 在本地机器上轻松安装和快速入门
  2. 主题、组和 ACL 管理功能
  3. 丰富的生产和消费格式
  4. 调整主机以采用生产工作负载
  5. 简单的配置更改

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  
 设置、删除、添加和移除主题的键/值配置。

此命令允许您一次增量地更改多个主题的配置。

增量更改支持四种操作:

  1. 设置键=值对
  2. 删除键的值
  3. 将新值附加到值列表键
  4. 从值列表键中减去(删除)现有值

这是一个例子:

 $ 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 使它变得简单:

  1. 在本地机器上安装并启动 Redpanda
  2. 管理、主题、组和 ACL
  3. 使用丰富的格式进行生产和消费
  4. 调整主机以采用生产工作负载
  5. 进行配置更改

了解更多关于 rpk 以及它如何让您的生活更简单,加入我们 在 GitHub 上 ,或与我们互动 我们的 Slack 社区 .有关如何与之交互的更详细列表 rpk , 查看我们的[ rpk](https://docs.redpanda.com/docs/reference/rpk-commands/) 文件 .

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/10898/07490208

posted @ 2022-09-02 08:09  哈哈哈来了啊啊啊  阅读(123)  评论(0编辑  收藏  举报