49 lines
1.2 KiB
Bash
49 lines
1.2 KiB
Bash
#!/usr/bin/env sh
|
|
set -eu
|
|
|
|
NAMESRV_ADDR="${NAMESRV_ADDR:-rocketmq-namesrv:9876}"
|
|
ROCKETMQ_CLUSTER_NAME="${ROCKETMQ_CLUSTER_NAME:-DefaultCluster}"
|
|
ROCKETMQ_BOOTSTRAP_TOPICS="${ROCKETMQ_BOOTSTRAP_TOPICS:-DefaultHeartBeatSyncerTopic}"
|
|
|
|
echo "waiting for RocketMQ cluster ${ROCKETMQ_CLUSTER_NAME} via ${NAMESRV_ADDR}"
|
|
i=0
|
|
while [ "$i" -lt 60 ]; do
|
|
if sh mqadmin clusterList -n "$NAMESRV_ADDR" >/tmp/rocketmq-cluster.txt 2>/tmp/rocketmq-cluster.err; then
|
|
if grep -q "$ROCKETMQ_CLUSTER_NAME" /tmp/rocketmq-cluster.txt; then
|
|
break
|
|
fi
|
|
fi
|
|
i=$((i + 1))
|
|
sleep 2
|
|
done
|
|
|
|
if [ "$i" -ge 60 ]; then
|
|
echo "rocketmq cluster did not become ready: ${ROCKETMQ_CLUSTER_NAME}" >&2
|
|
cat /tmp/rocketmq-cluster.err >&2 || true
|
|
exit 1
|
|
fi
|
|
|
|
old_ifs="$IFS"
|
|
IFS=','
|
|
set -- $ROCKETMQ_BOOTSTRAP_TOPICS
|
|
IFS="$old_ifs"
|
|
|
|
for topic in "$@"; do
|
|
echo "ensuring RocketMQ topic ${topic}"
|
|
i=0
|
|
while [ "$i" -lt 20 ]; do
|
|
if sh mqadmin updateTopic -n "$NAMESRV_ADDR" -c "$ROCKETMQ_CLUSTER_NAME" -t "$topic"; then
|
|
break
|
|
fi
|
|
i=$((i + 1))
|
|
sleep 2
|
|
done
|
|
|
|
if [ "$i" -ge 20 ]; then
|
|
echo "failed to initialize RocketMQ topic: ${topic}" >&2
|
|
exit 1
|
|
fi
|
|
done
|
|
|
|
exec sh mqproxy -n "$NAMESRV_ADDR"
|