forked from apache/doris
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[feature](docker) add disaggregated doris docker image content (apach…
…e#39093) 1. Added corresponding scripts for the doris image(fe,be) of storage-computing separation deployment 2. Added a new metaservice image module 3. Added binary package storage paths and prompt files for different architectures to facilitate clearer construction of your own image
1 parent
b889848
commit 9288c8f
Showing
18 changed files
with
937 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
<!-- | ||
Licensed to the Apache Software Foundation (ASF) under one | ||
or more contributor license agreements. See the NOTICE file | ||
distributed with this work for additional information | ||
regarding copyright ownership. The ASF licenses this file | ||
to you under the Apache License, Version 2.0 (the | ||
"License"); you may not use this file except in compliance | ||
with the License. You may obtain a copy of the License at | ||
|
||
http://www.apache.org/licenses/LICENSE-2.0 | ||
|
||
Unless required by applicable law or agreed to in writing, | ||
software distributed under the License is distributed on an | ||
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||
KIND, either express or implied. See the License for the | ||
specific language governing permissions and limitations | ||
under the License. | ||
--> | ||
|
||
|
||
This file is not required for building an image. | ||
It is just a reminder for you: If you build a docker image yourself, | ||
please place the installation package (already unzipped) corresponding to the CPU architecture at the same level as this file. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
<!-- | ||
Licensed to the Apache Software Foundation (ASF) under one | ||
or more contributor license agreements. See the NOTICE file | ||
distributed with this work for additional information | ||
regarding copyright ownership. The ASF licenses this file | ||
to you under the Apache License, Version 2.0 (the | ||
"License"); you may not use this file except in compliance | ||
with the License. You may obtain a copy of the License at | ||
|
||
http://www.apache.org/licenses/LICENSE-2.0 | ||
|
||
Unless required by applicable law or agreed to in writing, | ||
software distributed under the License is distributed on an | ||
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||
KIND, either express or implied. See the License for the | ||
specific language governing permissions and limitations | ||
under the License. | ||
--> | ||
|
||
|
||
This file is not required for building an image. | ||
It is just a reminder for you: If you build a docker image yourself, | ||
please place the installation package (already unzipped) corresponding to the CPU architecture at the same level as this file. |
185 changes: 185 additions & 0 deletions
185
docker/runtime/be/resource/be_disaggregated_entrypoint.sh
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,185 @@ | ||
#!/bin/bash | ||
# Licensed to the Apache Software Foundation (ASF) under one | ||
# or more contributor license agreements. See the NOTICE file | ||
# distributed with this work for additional information | ||
# regarding copyright ownership. The ASF licenses this file | ||
# to you under the Apache License, Version 2.0 (the | ||
# "License"); you may not use this file except in compliance | ||
# with the License. You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, | ||
# software distributed under the License is distributed on an | ||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||
# KIND, either express or implied. See the License for the | ||
# specific language governing permissions and limitations | ||
# under the License. | ||
|
||
#TODO: convert to "_" | ||
MS_ENDPOINT=${MS_ENDPOINT} | ||
MS_TOKEN=${MS_TOKEN:="greedisgood9999"} | ||
DORIS_HOME=${DORIS_HOME:="/opt/apache-doris"} | ||
CONFIGMAP_PATH=${CONFIGMAP_PATH:="/etc/doris"} | ||
INSTANCE_ID=${INSTANCE_ID} | ||
INSTANCE_NAME=${INSTANCE_NAME} | ||
HEARTBEAT_PORT=9050 | ||
CLUSTER_NMAE=${CLUSTER_NAME} | ||
#option:IP,FQDN | ||
HOST_TYPE=${HOST_TYPE:="FQDN"} | ||
STATEFULSET_NAME=${STATEFULSET_NAME} | ||
POD_NAMESPACE=$POD_NAMESPACE | ||
DEFAULT_CLUSTER_ID=${POD_NAMESPACE}"_"${STATEFULSET_NAME} | ||
CLUSTER_ID=${CLUSTER_ID:="$DEFAULT_CLUSTER_ID"} | ||
POD_NAME=${POD_NAME} | ||
CLOUD_UNIQUE_ID_PRE=${CLOUD_UNIQUE_ID_PRE:="1:$INSTANCE_ID"} | ||
CLOUD_UNIQUE_ID="$CLOUD_UNIQUE_ID_PRE:$POD_NAME" | ||
# replace "-" with "_" in CLUSTER_ID and CLOUD_UNIQUE_ID | ||
CLUSTER_ID=$(sed 's/-/_/g' <<<$CLUSTER_ID) | ||
|
||
CONFIG_FILE="$DORIS_HOME/be/conf/be.conf" | ||
MY_SELF= | ||
|
||
DEFAULT_CLUSTER_NAME=$(awk -F $INSTANCE_NAME"-" '{print $NF}' <<<$STATEFULSET_NAME) | ||
CLUSTER_NAME=${CLUSTER_NAME:="$DEFAULT_CLUSTER_NAME"} | ||
|
||
#TODO: check config or not, add default | ||
echo 'file_cache_path = [{"path":"/opt/apache-doris/be/storage","total_size":107374182400,"query_limit":107374182400}]' >> $DORIS_HOME/be/conf/be.conf | ||
|
||
function log_stderr() | ||
{ | ||
echo "[`date`] $@" >& 1 | ||
} | ||
|
||
function add_cluster_info_to_conf() | ||
{ | ||
echo "meta_service_endpoint=$MS_ENDPOINT" >> $DORIS_HOME/be/conf/be.conf | ||
echo "cloud_unique_id=$CLOUD_UNIQUE_ID" >> $DORIS_HOME/be/conf/be.conf | ||
echo "meta_service_use_load_balancer = false" >> $DORIS_HOME/be/conf/be.conf | ||
echo "enable_file_cache = true" >> $DORIS_HOME/be/conf/be.conf | ||
} | ||
|
||
function link_config_files() | ||
{ | ||
if [[ -d $CONFIGMAP_PATH ]]; then | ||
for file in `ls $CONFIGMAP_PATH`; | ||
do | ||
if [[ -f $DORIS_HOME/be/conf/$file ]]; then | ||
mv $DORIS_HOME/be/conf/$file $DORIS_HOME/be/conf/$file.bak | ||
fi | ||
done | ||
fi | ||
|
||
for file in `ls $CONFIGMAP_PATH`; | ||
do | ||
if [[ "$file" == "be.conf" ]]; then | ||
cp $CONFIGMAP_PATH/$file $DORIS_HOME/be/conf/$file | ||
add_cluster_info_to_conf | ||
continue | ||
fi | ||
|
||
ln -sfT $CONFIGMAP_PATH/$file $DORIS_HOME/be/conf/$file | ||
done | ||
} | ||
|
||
function parse_config_file_with_key() | ||
{ | ||
local key=$1 | ||
local value=`grep "^\s*$key\s*=" $CONFIG_FILE | sed "s|^\s*$key\s*=\s*\(.*\)\s*$|\1|g"` | ||
} | ||
|
||
function parse_my_self_address() | ||
{ | ||
local my_ip=`hostname -i | awk '{print $1}'` | ||
local my_fqdn=`hostname -f` | ||
if [[ $HOST_TYPE == "IP" ]]; then | ||
MY_SELF=$my_ip | ||
else | ||
MY_SELF=$my_fqdn | ||
fi | ||
} | ||
|
||
function variables_initial() | ||
{ | ||
parse_my_self_address | ||
local heartbeat_port=$(parse_config_file_with_key "heartbeat_service_port") | ||
if [[ "x$heartbeat_port" != "x" ]]; then | ||
HEARTBEAT_PORT=$heartbeat_port | ||
fi | ||
} | ||
|
||
function check_or_register_in_ms() | ||
{ | ||
interval=5 | ||
start=$(date +%s) | ||
timeout=60 | ||
while true; | ||
do | ||
local find_address="http://$MS_ENDPOINT/MetaService/http/get_cluster?token=$MS_TOKEN" | ||
local output=$(curl -s $find_address \ | ||
-d '{"cloud_unique_id":"'$CLOUD_UNIQUE_ID'","cluster_id":"'$CLUSTER_ID'"}') | ||
if grep -q -w "$MY_SELF" <<< $output &>/dev/null; then | ||
log_stderr "[INFO] $MY_SELF have register in instance id $INSTANCE_ID cluser id $CLUSTER_ID!" | ||
return | ||
fi | ||
|
||
local code=$(jq -r ".code" <<< $output) | ||
if [[ "$code" == "NOT_FOUND" ]]; then | ||
# if grep -q -w "$CLUSTER_ID" <<< $output &>/dev/null; then | ||
# log_stderr "[INFO] cluster id $CLUSTER_ID have exists, only register self.!" | ||
# add_my_self | ||
# else | ||
log_stderr "[INFO] register cluster id $CLUSTER_ID with myself $MY_SELF into instance id $INSTANCE_ID." | ||
add_my_self_with_cluster | ||
# fi | ||
else | ||
log_stderr "[INFO] register $MY_SELF into cluster id $CLUSTER_ID!" | ||
add_my_self | ||
fi | ||
|
||
local now=$(date +%s) | ||
let "expire=start+timeout" | ||
if [[ $expire -le $now ]]; then | ||
log_stderr "[ERROR] Timeout for register myself to ms, abort!" | ||
exit 1 | ||
fi | ||
sleep $interval | ||
done | ||
} | ||
|
||
function add_my_self() | ||
{ | ||
local register_address="http://$MS_ENDPOINT/MetaService/http/add_node?token=$MS_TOKEN" | ||
local output=$(curl -s $register_address \ | ||
-d '{"instance_id":"'$INSTANCE_ID'", | ||
"cluster":{"type":"COMPUTE","cluster_id":"'$CLUSTER_ID'", | ||
"nodes":[{"cloud_unique_id":"'$CLOUD_UNIQUE_ID'","ip":"'$MY_SELF'","host":"'$MY_SELF'","heartbeat_port":'$HEARTBEAT_PORT'}]}}') | ||
local code=$(jq -r ".code" <<< $output) | ||
if [[ "$code" == "OK" ]]; then | ||
log_stderr "[INFO] my_self $MY_SELF register to ms $MS_ENDPOINT instance_id $INSTANCE_ID be cluster $CLUSTER_ID success." | ||
else | ||
log_stderr "[ERROR] my_self $MY_SELF register ms $MS_ENDPOINT instance_id $INSTANCE_ID be cluster $CLUSTER_ID failed,err=$output!" | ||
fi | ||
} | ||
|
||
function add_my_self_with_cluster() | ||
{ | ||
local register_address="http://$MS_ENDPOINT/MetaService/http/add_cluster?token=$MS_TOKEN" | ||
local output=$(curl -s $register_address \ | ||
-d '{"instance_id":"'$INSTANCE_ID'", | ||
"cluster":{"type":"COMPUTE","cluster_name":"'$CLUSTER_NAME'","cluster_id":"'$CLUSTER_ID'", | ||
"nodes":[{"cloud_unique_id":"'$CLOUD_UNIQUE_ID'","ip":"'$MY_SELF'","host":"'$MY_SELF'","heartbeat_port":'$HEARTBEAT_PORT'}]}}') | ||
local code=$(jq -r ".code" <<< $output) | ||
if [[ "$code" == "OK" ]]; then | ||
log_stderr "[INFO] cluster $CLUSTER_ID contains $MY_SELF register to ms $MS_ENDPOINT instance_id $INSTANCE_ID success." | ||
else | ||
log_stderr "[ERROR] cluster $CLUSTER_ID contains $MY_SELF register to ms $MS_ENDPOINT instance_id $INSTANCE_ID failed,err=$output!" | ||
fi | ||
} | ||
|
||
add_cluster_info_to_conf | ||
link_config_files | ||
variables_initial | ||
check_or_register_in_ms | ||
|
||
$DORIS_HOME/be/bin/start_be.sh --console |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
#!/bin/bash | ||
# Licensed to the Apache Software Foundation (ASF) under one | ||
# or more contributor license agreements. See the NOTICE file | ||
# distributed with this work for additional information | ||
# regarding copyright ownership. The ASF licenses this file | ||
# to you under the Apache License, Version 2.0 (the | ||
# "License"); you may not use this file except in compliance | ||
# with the License. You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, | ||
# software distributed under the License is distributed on an | ||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||
# KIND, either express or implied. See the License for the | ||
# specific language governing permissions and limitations | ||
# under the License. | ||
|
||
# | ||
|
||
DORIS_HOME=${DORIS_HOME:="/opt/apache-doris"} | ||
|
||
$DORIS_HOME/be/bin/stop_be.sh --grace |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
#!/bin/bash | ||
# Licensed to the Apache Software Foundation (ASF) under one | ||
# or more contributor license agreements. See the NOTICE file | ||
# distributed with this work for additional information | ||
# regarding copyright ownership. The ASF licenses this file | ||
# to you under the Apache License, Version 2.0 (the | ||
# "License"); you may not use this file except in compliance | ||
# with the License. You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, | ||
# software distributed under the License is distributed on an | ||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||
# KIND, either express or implied. See the License for the | ||
# specific language governing permissions and limitations | ||
# under the License. | ||
|
||
# | ||
|
||
PROBE_TYPE=$1 | ||
DORIS_HOME=${DORIS_HOME:="/opt/apache-doris"} | ||
CONFIG_FILE="$DORIS_HOME/be/conf/be.conf" | ||
DEFAULT_HEARTBEAT_SERVICE_PORT=9050 | ||
DEFAULT_WEBSERVER_PORT=8040 | ||
|
||
function parse_config_file_with_key() | ||
{ | ||
local key=$1 | ||
local value=`grep "^\s*$key\s*=" $CONFIG_FILE | sed "s|^\s*$key\s*=\s*\(.*\)\s*$|\1|g"` | ||
echo $value | ||
} | ||
|
||
function alive_probe() | ||
{ | ||
local heartbeat_service_port=$(parse_config_file_with_key "heartbeat_service_port") | ||
heartbeat_service_port=${heartbeat_service_port:=$DEFAULT_HEARTBEAT_SERVICE_PORT} | ||
if netstat -lntp | grep ":$heartbeat_service_port" > /dev/null ; then | ||
exit 0 | ||
else | ||
exit 1 | ||
fi | ||
} | ||
|
||
function ready_probe() | ||
{ | ||
local webserver_port=$(parse_config_file_with_key "webserver_port") | ||
webserver_port=${webserver_port:=$DEFAULT_WEBSERVER_PORT} | ||
local ip=`hostname -i | awk '{print $1}'` | ||
local url="http://${ip}:${webserver_port}/api/health" | ||
local res=$(curl -s $url) | ||
local status=$(jq -r ".status" <<< $res) | ||
if [[ "x$status" == "xOK" ]]; then | ||
exit 0 | ||
else | ||
exit 1 | ||
fi | ||
} | ||
|
||
if [[ "$PROBE_TYPE" == "ready" ]]; then | ||
ready_probe | ||
else | ||
alive_probe | ||
fi |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
<!-- | ||
Licensed to the Apache Software Foundation (ASF) under one | ||
or more contributor license agreements. See the NOTICE file | ||
distributed with this work for additional information | ||
regarding copyright ownership. The ASF licenses this file | ||
to you under the Apache License, Version 2.0 (the | ||
"License"); you may not use this file except in compliance | ||
with the License. You may obtain a copy of the License at | ||
|
||
http://www.apache.org/licenses/LICENSE-2.0 | ||
|
||
Unless required by applicable law or agreed to in writing, | ||
software distributed under the License is distributed on an | ||
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||
KIND, either express or implied. See the License for the | ||
specific language governing permissions and limitations | ||
under the License. | ||
--> | ||
|
||
|
||
This file is not required for building an image. | ||
It is just a reminder for you: If you build a docker image yourself, | ||
please place the installation package (already unzipped) corresponding to the CPU architecture at the same level as this file. |
23 changes: 23 additions & 0 deletions
23
docker/runtime/broker/resource/arm64/arm64_package_is_here
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
<!-- | ||
Licensed to the Apache Software Foundation (ASF) under one | ||
or more contributor license agreements. See the NOTICE file | ||
distributed with this work for additional information | ||
regarding copyright ownership. The ASF licenses this file | ||
to you under the Apache License, Version 2.0 (the | ||
"License"); you may not use this file except in compliance | ||
with the License. You may obtain a copy of the License at | ||
|
||
http://www.apache.org/licenses/LICENSE-2.0 | ||
|
||
Unless required by applicable law or agreed to in writing, | ||
software distributed under the License is distributed on an | ||
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||
KIND, either express or implied. See the License for the | ||
specific language governing permissions and limitations | ||
under the License. | ||
--> | ||
|
||
|
||
This file is not required for building an image. | ||
It is just a reminder for you: If you build a docker image yourself, | ||
please place the installation package (already unzipped) corresponding to the CPU architecture at the same level as this file. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
<!-- | ||
Licensed to the Apache Software Foundation (ASF) under one | ||
or more contributor license agreements. See the NOTICE file | ||
distributed with this work for additional information | ||
regarding copyright ownership. The ASF licenses this file | ||
to you under the Apache License, Version 2.0 (the | ||
"License"); you may not use this file except in compliance | ||
with the License. You may obtain a copy of the License at | ||
|
||
http://www.apache.org/licenses/LICENSE-2.0 | ||
|
||
Unless required by applicable law or agreed to in writing, | ||
software distributed under the License is distributed on an | ||
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||
KIND, either express or implied. See the License for the | ||
specific language governing permissions and limitations | ||
under the License. | ||
--> | ||
|
||
|
||
This file is not required for building an image. | ||
It is just a reminder for you: If you build a docker image yourself, | ||
please place the installation package (already unzipped) corresponding to the CPU architecture at the same level as this file. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
<!-- | ||
Licensed to the Apache Software Foundation (ASF) under one | ||
or more contributor license agreements. See the NOTICE file | ||
distributed with this work for additional information | ||
regarding copyright ownership. The ASF licenses this file | ||
to you under the Apache License, Version 2.0 (the | ||
"License"); you may not use this file except in compliance | ||
with the License. You may obtain a copy of the License at | ||
|
||
http://www.apache.org/licenses/LICENSE-2.0 | ||
|
||
Unless required by applicable law or agreed to in writing, | ||
software distributed under the License is distributed on an | ||
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||
KIND, either express or implied. See the License for the | ||
specific language governing permissions and limitations | ||
under the License. | ||
--> | ||
|
||
|
||
This file is not required for building an image. | ||
It is just a reminder for you: If you build a docker image yourself, | ||
please place the installation package (already unzipped) corresponding to the CPU architecture at the same level as this file. |
207 changes: 207 additions & 0 deletions
207
docker/runtime/fe/resource/fe_disaggregated_entrypoint.sh
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,207 @@ | ||
#!/bin/bash | ||
# Licensed to the Apache Software Foundation (ASF) under one | ||
# or more contributor license agreements. See the NOTICE file | ||
# distributed with this work for additional information | ||
# regarding copyright ownership. The ASF licenses this file | ||
# to you under the Apache License, Version 2.0 (the | ||
# "License"); you may not use this file except in compliance | ||
# with the License. You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, | ||
# software distributed under the License is distributed on an | ||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||
# KIND, either express or implied. See the License for the | ||
# specific language governing permissions and limitations | ||
# under the License. | ||
|
||
|
||
# ms address, fe pod's address should register in it. | ||
MS_ENDPOINT=${MS_ENDPOINT} | ||
MS_TOKEN=${MS_TOKEN:="greedisgood9999"} | ||
ELECT_NUMBER=${ELECT_NUMBER:=1} | ||
FE_EDIT_PORT=${FE_EDIT_PORT:=9010} | ||
# cloud_id is default. | ||
CLUSTER_ID=${CLUSTER_ID:="RESERVED_CLUSTER_ID_FOR_SQL_SERVER"} | ||
# cloud_name is default. | ||
CLUSTER_NAME=${CLUSTER_NAME:="RESERVED_CLUSTER_NAME_FOR_SQL_SERVER"} | ||
#the instance id, pod's address should register in instance->cluster. | ||
INSTANCE_ID=${INSTANCE_ID} | ||
MY_SELF= | ||
HOSTNAME=`hostname` | ||
STATEFULSET_NAME=${STATEFULSET_NAME} | ||
POD_NAME=${POD_NAME} | ||
CLOUD_UNIQUE_ID_PRE=${CLOUD_UNIQUE_ID_PRE:="1:$INSTANCE_ID"} | ||
CLOUD_UNIQUE_ID="$CLOUD_UNIQUE_ID_PRE:$POD_NAME" | ||
|
||
CONFIGMAP_PATH=${CONFIGMAP_MOUNT_PATH:="/etc/doris"} | ||
DORIS_HOME=${DORIS_HOME:="/opt/apache-doris"} | ||
CONFIG_FILE="$DORIS_HOME/fe/conf/fe.conf" | ||
|
||
SEQUENCE_NUMBER=$(hostname | awk -F '-' '{print $NF}') | ||
NODE_TYPE="FE_MASTER" | ||
|
||
if [ "$SEQUENCE_NUMBER" -ge "$ELECT_NUMBER" ]; then | ||
NODE_TYPE="FE_OBSERVER" | ||
fi | ||
|
||
# 1. add default config in config file or link config files. | ||
# 2. assign global variables. | ||
# 3. register myself. | ||
|
||
|
||
function log_stderr() | ||
{ | ||
echo "[`date`] $@" >& 1 | ||
} | ||
|
||
function add_cluster_info_to_conf() | ||
{ | ||
echo "meta_service_endpoint=$MS_ENDPOINT" >> $DORIS_HOME/fe/conf/fe.conf | ||
echo "cloud_unique_id=$CLOUD_UNIQUE_ID" >> $DORIS_HOME/fe/conf/fe.conf | ||
} | ||
|
||
function link_config_files() | ||
{ | ||
if [[ -d $CONFIGMAP_PATH ]]; then | ||
#backup files want to replace | ||
for file in `ls $CONFIGMAP_PATH`; | ||
do | ||
if [[ -f $DORIS_HOME/fe/conf/$file ]]; then | ||
mv $DORIS_HOME/fe/conf/$file $DORIS_HOME/fe/conf/$file.bak | ||
fi | ||
done | ||
|
||
for file in `ls $CONFIGMAP_PATH`; | ||
do | ||
if [[ "$file" == "fe.conf" ]]; then | ||
cp $CONFIGMAP_PATH/$file $DORIS_HOME/fe/conf/$file | ||
add_cluster_info_to_conf | ||
continue | ||
fi | ||
|
||
ln -sfT $CONFIGMAP_PATH/$file $DORIS_HOME/fe/conf/$file | ||
done | ||
fi | ||
} | ||
|
||
parse_config_file_with_key() | ||
{ | ||
local key=$1 | ||
local value=`grep "^\s*$key\s*=" $CONFIG_FILE | sed "s|^\s*$key\s*=\s*\(.*\)\s*$|\1|g"` | ||
echo $value | ||
} | ||
|
||
# confirm the register address, if config `enable_fqdn_mode=true` use fqdn start or use ip. | ||
function parse_my_self_address() | ||
{ | ||
local value=`parse_config_file_with_key "enable_fqdn_mode"` | ||
|
||
local my_ip=`hostname -i | awk '{print $1}'` | ||
local my_fqdn=`hostname -f` | ||
if [[ $value == "true" ]]; then | ||
MY_SELF=$my_fqdn | ||
else | ||
MY_SELF=$my_ip | ||
fi | ||
} | ||
|
||
function variables_inital() | ||
{ | ||
parse_my_self_address | ||
local edit_port=$(parse_config_file_with_key "edit_log_port") | ||
if [[ "x$edit_port" != "x" ]]; then | ||
FE_EDIT_PORT=${edit_port:=$FE_EDIT_PORT} | ||
fi | ||
|
||
} | ||
|
||
function check_or_register_in_ms() | ||
{ | ||
interval=5 | ||
start=$(date +%s) | ||
timeout=60 | ||
while true; | ||
do | ||
local find_address="http://$MS_ENDPOINT/MetaService/http/get_cluster?token=$MS_TOKEN" | ||
local output=$(curl -s $find_address \ | ||
-d '{"cloud_unique_id": "'$CLOUD_UNIQUE_ID'", | ||
"cluster_id": "RESERVED_CLUSTER_ID_FOR_SQL_SERVER"}') | ||
if grep -q -w $MY_SELF <<< $output &>/dev/null ; then | ||
log_stderr "[INFO] $MY_SELF have registerd in metaservice!" | ||
return | ||
fi | ||
|
||
local code=$(jq -r ".code" <<< $output) | ||
if [[ "$code" == "NOT_FOUND" ]]; then | ||
# if grep -q -w "RESERVED_CLUSTER_NAME_FOR_SQL_SERVER" <<< $output &>/dev/null; then | ||
# log_stderr "[INFO] RESERVED_CLUSTER_NAME_FOR_SQL_SERVER fe cluster have exist, register node $MY_SELF." | ||
# add_my_self | ||
# else | ||
log_stderr "[INFO] RESERVED_CLUSTER_NAME_FOR_SQL_SERVER fe cluster not exist, register fe clsuter." | ||
add_my_self_with_cluster | ||
# fi | ||
else | ||
log_stderr "[INFO] register myself $MY_SELF into fe cluster cloud_unique_id $CLOUD_UNIQUE_ID." | ||
add_my_self | ||
fi | ||
|
||
local now=$(date +%s) | ||
let "expire=start+timeout" | ||
if [[ $expire -le $now ]]; then | ||
log_stderr "[ERROR] Timeout for register myself to ms, abort!" | ||
exit 1 | ||
fi | ||
sleep $interval | ||
done | ||
} | ||
|
||
function add_my_self() | ||
{ | ||
local register_address="http://$MS_ENDPOINT/MetaService/http/add_node?token=$MS_TOKEN" | ||
local curl_cmd="curl -s $register_address -d '{\"instance_id\":\"$INSTANCE_ID\",\"cluster\":{\"type\":\"SQL\",\"cluster_name\":\"RESERVED_CLUSTER_NAME_FOR_SQL_SERVER\",\"cluster_id\":\"RESERVED_CLUSTER_ID_FOR_SQL_SERVER\",\"nodes\":[{\"cloud_unique_id\":\"$CLOUD_UNIQUE_ID\",\"ip\":\"$MY_SELF\",\"host\":\"$MY_SELF\",\"edit_log_port\":9010,\"node_type\":\"$NODE_TYPE\"}]}}'" | ||
# echo "add_my_self: $curl_cmd" | ||
local output=$(eval "$curl_cmd") | ||
# echo "add_my_self response:$output" | ||
local code=$(jq -r ".code" <<< $output) | ||
if [[ "$code" == "OK" ]]; then | ||
log_stderr "[INFO] my_self $MY_SELF register to ms $MS_ENDPOINT instance_id $INSTANCE_ID fe cluster RESERVED_CLUSTER_NAME_FOR_SQL_SERVER success!" | ||
else | ||
log_stderr "[ERROR] my_self register ms $MS_ENDPOINT instance_id $INSTANCE_ID fe cluster failed, response $output!" | ||
fi | ||
} | ||
|
||
function add_my_self_with_cluster() | ||
{ | ||
local register_address="http://$MS_ENDPOINT/MetaService/http/add_cluster?token=$MS_TOKEN" | ||
local curl_data="{\"instance_id\":\"$INSTANCE_ID\",\"cluster\":{\"type\":\"SQL\",\"cluster_name\":\"RESERVED_CLUSTER_NAME_FOR_SQL_SERVER\",\"cluster_id\":\"RESERVED_CLUSTER_ID_FOR_SQL_SERVER\",\"nodes\":[{\"cloud_unique_id\":\"$CLOUD_UNIQUE_ID\",\"ip\":\"$MY_SELF\",\"host\":\"$MY_SELF\",\"node_type\":\"$NODE_TYPE\",\"edit_log_port\":$FE_EDIT_PORT}]}}" | ||
local curl_cmd="curl -s $register_address -d '$curl_data'" | ||
# echo "add_my_self_with_cluster: $curl_cmd" | ||
local output=$(eval "$curl_cmd") | ||
# echo "add_my_self_with_cluster response: $output" | ||
code=$(jq -r ".code" <<< $output) | ||
if [[ "$code" == "OK" ]]; then | ||
log_stderr "[INFO] fe cluster contains $MY_SELF node_type $NODE_TYPE register to ms $MS_ENDPOINT instance_id $INSTANCE_ID success." | ||
else | ||
log_stderr "[ERROR] fe cluster contains $MY_SELF node_type $NODE_TYPE register to ms $MS_ENDPOINT instance_id $INSTANCE_ID faied, $output!" | ||
fi | ||
} | ||
|
||
function check_and_modify_fqdn_config() | ||
{ | ||
local enable_fqdn=`parse_config_file_with_key "enable_fqdn_mode"` | ||
log_stderr "enable_fqdn is : $enable_fqdn" | ||
if [[ "x$enable_fqdn" != "xtrue" ]] ; then | ||
log_stderr "add enable_fqdn_mode = true to $CONFIG_FILE" | ||
echo "enable_fqdn_mode = true" >> $CONFIG_FILE | ||
fi | ||
} | ||
|
||
add_cluster_info_to_conf | ||
check_and_modify_fqdn_config | ||
link_config_files | ||
variables_inital | ||
check_or_register_in_ms | ||
/opt/apache-doris/fe/bin/start_fe.sh --console | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
#!/bin/bash | ||
# Licensed to the Apache Software Foundation (ASF) under one | ||
# or more contributor license agreements. See the NOTICE file | ||
# distributed with this work for additional information | ||
# regarding copyright ownership. The ASF licenses this file | ||
# to you under the Apache License, Version 2.0 (the | ||
# "License"); you may not use this file except in compliance | ||
# with the License. You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, | ||
# software distributed under the License is distributed on an | ||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||
# KIND, either express or implied. See the License for the | ||
# specific language governing permissions and limitations | ||
# under the License. | ||
|
||
# | ||
|
||
DORIS_HOME=${DORIS_HOME:="/opt/apache-doris"} | ||
|
||
$DORIS_HOME/fe/bin/stop_fe.sh --grace |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
#!/bin/bash | ||
# Licensed to the Apache Software Foundation (ASF) under one | ||
# or more contributor license agreements. See the NOTICE file | ||
# distributed with this work for additional information | ||
# regarding copyright ownership. The ASF licenses this file | ||
# to you under the Apache License, Version 2.0 (the | ||
# "License"); you may not use this file except in compliance | ||
# with the License. You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, | ||
# software distributed under the License is distributed on an | ||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||
# KIND, either express or implied. See the License for the | ||
# specific language governing permissions and limitations | ||
# under the License. | ||
|
||
# | ||
|
||
DORIS_HOEM=${DORIS_HOME:="/opt/apache-doris"} | ||
CONFIG_FILE="$DORIS_HOME/fe/conf/fe.conf" | ||
DEFAULT_HTTP_PORT=8030 | ||
DEFAULT_QUERY_PORT=9030 | ||
PROBE_TYPE=$1 | ||
|
||
function parse_config_file_with_key() | ||
{ | ||
local key=$1 | ||
local value=`grep "^\s*$key\s*=" $CONFIG_FILE | sed "s|^\s*$key\s*=\s*\(.*\)\s*$|\1|g"` | ||
echo $value | ||
} | ||
|
||
function alive_probe() | ||
{ | ||
local query_port=$(parse_config_file_with_key "query_port") | ||
query_port=${query_port:=$DEFAULT_QUERY_PORT} | ||
if netstat -lntp | grep ":$query_port" > /dev/null ; then | ||
exit 0 | ||
else | ||
exit 1 | ||
fi | ||
} | ||
|
||
function ready_probe() | ||
{ | ||
local http_port=$(parse_config_file_with_key "http_port") | ||
http_port=${http_port:=$DEFAULT_HTTP_PORT} | ||
local ip=`hostname -i | awk '{print $1}'` | ||
local url="http://${ip}:${http_port}/api/health" | ||
local res=$(curl -s $url) | ||
local code=$(jq -r ".code" <<< $res) | ||
if [[ "x$code" == "x0" ]]; then | ||
exit 0 | ||
else | ||
exit 1 | ||
fi | ||
} | ||
|
||
if [[ "$PROBE_TYPE" == "ready" ]]; then | ||
ready_probe | ||
else | ||
alive_probe | ||
fi |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
# Licensed to the Apache Software Foundation (ASF) under one | ||
# or more contributor license agreements. See the NOTICE file | ||
# distributed with this work for additional information | ||
# regarding copyright ownership. The ASF licenses this file | ||
# to you under the Apache License, Version 2.0 (the | ||
# "License"); you may not use this file except in compliance | ||
# with the License. You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, | ||
# software distributed under the License is distributed on an | ||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||
# KIND, either express or implied. See the License for the | ||
# specific language governing permissions and limitations | ||
# under the License. | ||
|
||
# how to use Dockerfile. | ||
# this is dockerfile for build doris ms image | ||
# when build youself image. | ||
# 1. pull binary from official website and decompress into resource directory that the level equals with this Dockerfile. | ||
# 2. untar xxxx.tar.gz in resource/{arch} directory, makesure your doris package real version and target arch. | ||
# 3. run commad docker build -t xxx.doris.ms:xx -f Dockerfile --build-arg DORIS_VERSION=3.0.0 | ||
|
||
# we have support buildx for amd64 and arm64 architecture image build. | ||
# get the binary from doris github and utar into resource, update the directory as apache-`version(example:3.0.0)`-bin-`architecture(amd64/arm64)` mode. | ||
|
||
# choose a base image | ||
FROM selectdb/base:latest | ||
|
||
ARG TARGETARCH | ||
|
||
ARG DORIS_VERSION="x.x.x" | ||
|
||
|
||
RUN if echo $DORIS_VERSION | grep -E '^([3-9]|([1-9]([0-9])))|^branch\-([3-9]|([1-9]([0-9])))|master.*' >>/dev/null ; then \ | ||
ln -s /usr/lib/jvm/jdk-17 /usr/lib/jvm/java && \ | ||
rm -rf /usr/lib/jvm/jdk-8; \ | ||
else \ | ||
ln -s /usr/lib/jvm/jdk-8 /usr/lib/jvm/java && \ | ||
rm -rf /usr/lib/jvm/jdk-17; \ | ||
fi; | ||
|
||
# set environment variables | ||
ENV JAVA_HOME=/usr/lib/jvm/java | ||
ENV PATH=$PATH:$JAVA_HOME/bin:/opt/apache-doris/ms/bin | ||
|
||
COPY resource/${TARGETARCH:-amd64}/apache-doris-${DORIS_VERSION}-bin-*/ms /opt/apache-doris/ms | ||
|
||
COPY resource/ms_*.sh /opt/apache-doris/ | ||
|
||
#RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime | ||
|
||
WORKDIR /opt/apache-doris | ||
|
||
#ENTRYPOINT ["bash","entry_point.sh"] | ||
ENTRYPOINT ["bash","ms_disaggregated_entrypoint.sh"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
<!-- | ||
Licensed to the Apache Software Foundation (ASF) under one | ||
or more contributor license agreements. See the NOTICE file | ||
distributed with this work for additional information | ||
regarding copyright ownership. The ASF licenses this file | ||
to you under the Apache License, Version 2.0 (the | ||
"License"); you may not use this file except in compliance | ||
with the License. You may obtain a copy of the License at | ||
|
||
http://www.apache.org/licenses/LICENSE-2.0 | ||
|
||
Unless required by applicable law or agreed to in writing, | ||
software distributed under the License is distributed on an | ||
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||
KIND, either express or implied. See the License for the | ||
specific language governing permissions and limitations | ||
under the License. | ||
--> | ||
|
||
|
||
This file is not required for building an image. | ||
It is just a reminder for you: If you build a docker image yourself, | ||
please place the installation package (already unzipped) corresponding to the CPU architecture at the same level as this file. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
<!-- | ||
Licensed to the Apache Software Foundation (ASF) under one | ||
or more contributor license agreements. See the NOTICE file | ||
distributed with this work for additional information | ||
regarding copyright ownership. The ASF licenses this file | ||
to you under the Apache License, Version 2.0 (the | ||
"License"); you may not use this file except in compliance | ||
with the License. You may obtain a copy of the License at | ||
|
||
http://www.apache.org/licenses/LICENSE-2.0 | ||
|
||
Unless required by applicable law or agreed to in writing, | ||
software distributed under the License is distributed on an | ||
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||
KIND, either express or implied. See the License for the | ||
specific language governing permissions and limitations | ||
under the License. | ||
--> | ||
|
||
|
||
This file is not required for building an image. | ||
It is just a reminder for you: If you build a docker image yourself, | ||
please place the installation package (already unzipped) corresponding to the CPU architecture at the same level as this file. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
#!/bin/bash | ||
# Licensed to the Apache Software Foundation (ASF) under one | ||
# or more contributor license agreements. See the NOTICE file | ||
# distributed with this work for additional information | ||
# regarding copyright ownership. The ASF licenses this file | ||
# to you under the Apache License, Version 2.0 (the | ||
# "License"); you may not use this file except in compliance | ||
# with the License. You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, | ||
# software distributed under the License is distributed on an | ||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||
# KIND, either express or implied. See the License for the | ||
# specific language governing permissions and limitations | ||
# under the License. | ||
|
||
# | ||
|
||
#get from env | ||
FDB_ENDPOINT=${FDB_ENDPOINT} | ||
CONFIGMAP_PATH=${CONFIGMAP_PATH:="/etc/doris"} | ||
DORIS_HOME=${DORIS_HOME:="/opt/apache-doris"} | ||
|
||
echo "fdb_cluster=$FDB_ENDPOINT" >> $DORIS_HOME/ms/conf/doris_cloud.conf | ||
if [[ -d $CONFIGMAP_PATH ]]; then | ||
for file in `ls $CONFIGMAP_PATH` | ||
do | ||
if [[ "$file" == "doris_cloud.conf" ]] ; then | ||
mv -f $DORIS_HOME/ms/conf/$file $DORIS_HOME/ms/conf/$file.bak | ||
cp $CONFIGMAP_PATH/$file $DORIS_HOME/ms/conf/$file | ||
echo "fdb_cluster=$FDB_ENDPOINT" >> $DORIS_HOME/ms/conf/doris_cloud.conf | ||
continue | ||
fi | ||
|
||
if test -e $DORIS_HOME/ms/conf/$file ; then | ||
mv -f $DORIS_HOME/ms/conf/$file $DORIS_HOME/ms/conf/$file.bak | ||
fi | ||
ln -sfT $CONFIGMAP_PATH/$file $DORIS_HOME/ms/conf/$file | ||
done | ||
fi | ||
|
||
$DORIS_HOME/ms/bin/start.sh --$1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
#!/bin/bash | ||
# Licensed to the Apache Software Foundation (ASF) under one | ||
# or more contributor license agreements. See the NOTICE file | ||
# distributed with this work for additional information | ||
# regarding copyright ownership. The ASF licenses this file | ||
# to you under the Apache License, Version 2.0 (the | ||
# "License"); you may not use this file except in compliance | ||
# with the License. You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, | ||
# software distributed under the License is distributed on an | ||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||
# KIND, either express or implied. See the License for the | ||
# specific language governing permissions and limitations | ||
# under the License. | ||
|
||
|
||
#get from env | ||
DORIS_HOME=${DORIS_HOME:="/opt/apache-doris"} | ||
|
||
$DORIS_HOME/ms/bin/stop.sh --$1 | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,62 @@ | ||
#!/bin/bash | ||
# Licensed to the Apache Software Foundation (ASF) under one | ||
# or more contributor license agreements. See the NOTICE file | ||
# distributed with this work for additional information | ||
# regarding copyright ownership. The ASF licenses this file | ||
# to you under the Apache License, Version 2.0 (the | ||
# "License"); you may not use this file except in compliance | ||
# with the License. You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, | ||
# software distributed under the License is distributed on an | ||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | ||
# KIND, either express or implied. See the License for the | ||
# specific language governing permissions and limitations | ||
# under the License. | ||
|
||
DORIS_HOME=${DORIS_HOME:="/opt/apache-doris"} | ||
CONFIG_FILE="$DORIS_HOME/ms/conf/doris_cloud.conf" | ||
DEFAULT_BRPC_LISTEN_PORT=5000 | ||
PROBE_TYPE=$1 | ||
|
||
log_stderr() | ||
{ | ||
echo "[`date`] $@" >&2 | ||
} | ||
|
||
function parse_config_file_with_key() | ||
{ | ||
local key=$1 | ||
local value=`grep "^\s*$key\s*=" $CONFIG_FILE | sed "s|^\s*$key\s*=\s*\(.*\)\s*$|\1|g"` | ||
echo $value | ||
} | ||
|
||
function alive_probe() | ||
{ | ||
local brpc_listen_port=$(parse_config_file_with_key "brpc_listen_port") | ||
brpc_listen_port=${brpc_listen_port:=$DEFAULT_BRPC_LISTEN_PORT} | ||
if netstat -lntp | grep ":$brpc_listen_port" > /dev/null ; then | ||
exit 0 | ||
else | ||
exit 1 | ||
fi | ||
} | ||
|
||
function ready_probe() | ||
{ | ||
local brpc_listen_port=$(parse_config_file_with_key "brpc_listen_port") | ||
brpc_listen_port=${brpc_listen_port:=$DEFAULT_BRPC_LISTEN_PORT} | ||
if netstat -lntp | grep ":$brpc_listen_port" > /dev/null ; then | ||
exit 0 | ||
else | ||
exit 1 | ||
fi | ||
} | ||
|
||
if [[ "$PROBE_TYPE" == "ready" ]]; then | ||
ready_probe | ||
else | ||
alive_probe | ||
fi |