问题描述
在 Confluent (https://confluent.cloud) 上似乎没有关闭 Kafka 集群的选项:
我正在尝试限制成本并关闭集群。我已经探索了上面屏幕截图中的各种选项,但我没有找到可以关闭集群的位置。
解决方法
我相信 Confluent 控制面板中没有这样的选项;一个选项是使用 Confluent 命令行界面 (Confluent CLI)。
在以前的版本中,使用的命令是:
对于较新的版本,我相信通过 CLI 停止集群的唯一选择是使用 confluent local
命令;问题是:
融合的本地命令适用于单节点 开发环境,不适合生产 环境。
如果是这种情况,您可以通过调用以下方式停止代理:
confluent local services kafka stop
或者从 Confluent 平台运行的所有服务:
这可能是由于安全问题,以避免错误地按错按钮来停止部署集群。因此,停止部署集群的选项依赖于手动停止每个代理 (例如,通过调用 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 可能允许您通过调用包装的停止脚本来停止整个集群。不幸的是,我找不到有关此命令或调用它的语法的更多信息。