如何检查Cassandra是否准备好了

问题描述 投票:4回答:1

我有一个在Docker中运行的Cassandra,我想在数据库准备好时启动CQL脚本。我尝试检查端口以检测它何时准备好:

while ! nc -z localhost 7199; do
    sleep 1
done
echo "Cassandra is ready"
cqlsh -f ./createTables.cql

但是在数据库准备就绪之前打开了端口,因此cqlsh失败了。如何正确检查Cassandra状态并启动脚本?提前致谢。

cassandra
1个回答
3
投票

首先,您需要等待另一个端口 - 9042 - 这是CQLSH使用的端口。

另一种方法也可能是等待执行sqlsh而不是nc(或者作为第二步,因为nc的执行速度要快得多)。例如,您可以使用类似命令的内容:

while ! cqlsh -e 'describe cluster' ; do
    sleep 1
done

等到卡桑德拉准备好了......

© www.soinside.com 2019 - 2024. All rights reserved.