如何关闭正在运行的 Confluent Cloud 集群?

问题描述

在 Confluent (https://confluent.cloud) 上似乎没有关闭 Kafka 集群的选项:

enter image description here

我正在尝试限制成本并关闭集群。我已经探索了上面屏幕截图中的各种选项,但我没有找到可以关闭集群的位置。

解决方法

我相信 Confluent 控制面板中没有这样的选项;一个选项是使用 Confluent 命令行界面 (Confluent CLI)。

在以前的版本中,使用的命令是:

confluent stop

对于较新的版本,我相信通过 CLI 停止集群的唯一选择是使用 confluent local 命令;问题是:

融合的本地命令适用于单节点 开发环境,不适合生产 环境。

如果是这种情况,您可以通过调用以下方式停止代理:

confluent local services kafka stop

或者从 Confluent 平台运行的所有服务:

confluent local services stop


这可能是由于安全问题,以避免错误地按错按钮来停止部署集群。因此,停止部署集群的选项依赖于手动停止每个代理 (例如,通过调用 kafka-server-stop.sh),而无需 GUI 或命令行帮助。 我知道这个答案可能根本没有帮助,但希望它以某种方式提供信息。


编辑 - 来自 Confluent Kafka Rest Proxy 存储库 -

此处解释了将 Rest 代理与 Confluent Cloud 绑定的方法:link the Rest proxy with the Confluent Cloud。如果您能够这样做,您可以调用其停止脚本以传播到云的代理实例,即使绑定的文档化客户端只是消费者、生产者和管理员

部署

REST 代理包含一个内置的 Jetty 服务器。 该 包装脚本 bin/kafka-rest-start 和 bin/kafka-rest-stop 是 启动和停止服务的推荐方法。

这是 /bin/kafka-rest-stop 脚本的内容:

exec $(dirname $0)/kafka-rest-stop-service '(kafkarest\.Main)|(kafkarest\.KafkaRestMain)'

调用 kafka-rest-stop-service 脚本:

TARGET=`ps ax | egrep -i "$1" | grep java | grep -v grep | awk '{print $1}'`
if [ "x$TARGET" = "x" ]; then
  >&2 echo "No running instance found."
  exit 1
fi

kill "$TARGET"
for i in `seq 20`; do
  sleep 0.25
  ps ax | egrep -i "$1" | grep "$TARGET" > /dev/null
  if [ $? -eq 0 ]; then
    exit 0
  fi
done

>&2 echo "Tried to kill $TARGET but never saw it die"
exit 1

它本质上是通过调用 SIGTERM

向进程发送 kill "$TARGET" 信号

因此 REST API 可能允许您通过调用包装的停止脚本来停止整个集群。不幸的是,我找不到有关此命令或调用它的语法的更多信息。