forked from apolloconfig/apollo-quick-start
-
Notifications
You must be signed in to change notification settings - Fork 0
/
demo.sh
executable file
·206 lines (165 loc) · 5.72 KB
/
demo.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
#!/bin/bash
# apollo config db info
apollo_config_db_url=jdbc:mysql://localhost:3306/ApolloConfigDB?characterEncoding=utf8
apollo_config_db_username=root
apollo_config_db_password=
# apollo portal db info
apollo_portal_db_url=jdbc:mysql://localhost:3306/ApolloPortalDB?characterEncoding=utf8
apollo_portal_db_username=root
apollo_portal_db_password=
# =============== Please do not modify the following content =============== #
if [ "$(uname)" == "Darwin" ]; then
windows="0"
elif [ "$(expr substr $(uname -s) 1 5)" == "Linux" ]; then
windows="0"
elif [ "$(expr substr $(uname -s) 1 5)" == "MINGW" ]; then
windows="1"
else
windows="0"
fi
# meta server url
config_server_url=http://localhost:8080
admin_server_url=http://localhost:8090
eureka_service_url=$config_server_url/eureka/
portal_url=http://localhost:8070
# JAVA OPTS
BASE_JAVA_OPTS="-Denv=dev"
CLIENT_JAVA_OPTS="$BASE_JAVA_OPTS -Dapollo.meta=$config_server_url"
SERVER_JAVA_OPTS="$BASE_JAVA_OPTS -Dspring.profiles.active=github -Deureka.service.url=$eureka_service_url"
PORTAL_JAVA_OPTS="$BASE_JAVA_OPTS -Ddev_meta=$config_server_url -Dspring.profiles.active=github,auth -Deureka.client.enabled=false -Dhibernate.query.plan_cache_max_size=192"
# executable
JAR_FILE=apollo-all-in-one.jar
SERVICE_DIR=./service
SERVICE_JAR_NAME=apollo-service.jar
SERVICE_JAR=$SERVICE_DIR/$SERVICE_JAR_NAME
SERVICE_LOG=$SERVICE_DIR/apollo-service.log
PORTAL_DIR=./portal
PORTAL_JAR_NAME=apollo-portal.jar
PORTAL_JAR=$PORTAL_DIR/$PORTAL_JAR_NAME
PORTAL_LOG=$PORTAL_DIR/apollo-portal.log
CLIENT_DIR=./client
CLIENT_JAR=$CLIENT_DIR/apollo-demo.jar
# go to script directory
cd "${0%/*}"
function checkJava {
if [[ -n "$JAVA_HOME" ]] && [[ -x "$JAVA_HOME/bin/java" ]]; then
if [ "$windows" == "1" ]; then
tmp_java_home=`cygpath -sw "$JAVA_HOME"`
export JAVA_HOME=`cygpath -u $tmp_java_home`
echo "Windows new JAVA_HOME is: $JAVA_HOME"
fi
_java="$JAVA_HOME/bin/java"
elif type -p java > /dev/null; then
_java=java
else
echo "Could not find java executable, please check PATH and JAVA_HOME variables."
exit 1
fi
if [[ "$_java" ]]; then
version=$("$_java" -version 2>&1 | awk -F '"' '/version/ {print $2}')
if [[ "$version" < "1.8" ]]; then
echo "Java version is $version, please make sure java 1.8+ is in the path"
exit 1
fi
fi
}
function checkServerAlive {
declare -i counter=0
declare -i max_counter=24 # 24*5=120s
declare -i total_time=0
SERVER_URL="$1"
until [[ (( counter -ge max_counter )) || "$(curl -X GET --silent --connect-timeout 1 --max-time 2 --head $SERVER_URL | grep "HTTP")" != "" ]];
do
printf "."
counter+=1
sleep 5
done
total_time=counter*5
if [[ (( counter -ge max_counter )) ]];
then
return $total_time
fi
return 0
}
checkJava
if [ "$1" = "start" ] ; then
echo "==== starting service ===="
echo "Service logging file is $SERVICE_LOG"
export JAVA_OPTS="$SERVER_JAVA_OPTS -Dlogging.file=./apollo-service.log -Dspring.datasource.url=$apollo_config_db_url -Dspring.datasource.username=$apollo_config_db_username -Dspring.datasource.password=$apollo_config_db_password"
if [[ -f $SERVICE_JAR ]]; then
rm -rf $SERVICE_JAR
fi
ln $JAR_FILE $SERVICE_JAR
chmod a+x $SERVICE_JAR
$SERVICE_JAR start --configservice --adminservice
rc=$?
if [[ $rc != 0 ]];
then
echo "Failed to start service, return code: $rc. Please check $SERVICE_LOG for more information."
exit $rc;
fi
printf "Waiting for config service startup"
checkServerAlive $config_server_url
rc=$?
if [[ $rc != 0 ]];
then
printf "\nConfig service failed to start in $rc seconds! Please check $SERVICE_LOG for more information.\n"
exit 1;
fi
printf "\nConfig service started. You may visit $config_server_url for service status now!\n"
printf "Waiting for admin service startup"
checkServerAlive $admin_server_url
rc=$?
if [[ $rc != 0 ]];
then
printf "\nAdmin service failed to start in $rc seconds! Please check $SERVICE_LOG for more information.\n"
exit 1;
fi
printf "\nAdmin service started\n"
echo "==== starting portal ===="
echo "Portal logging file is $PORTAL_LOG"
export JAVA_OPTS="$PORTAL_JAVA_OPTS -Dlogging.file=./apollo-portal.log -Dserver.port=8070 -Dspring.datasource.url=$apollo_portal_db_url -Dspring.datasource.username=$apollo_portal_db_username -Dspring.datasource.password=$apollo_portal_db_password"
if [[ -f $PORTAL_JAR ]]; then
rm -rf $PORTAL_JAR
fi
ln $JAR_FILE $PORTAL_JAR
chmod a+x $PORTAL_JAR
$PORTAL_JAR start --portal
rc=$?
if [[ $rc != 0 ]];
then
echo "Failed to start portal, return code: $rc. Please check $PORTAL_LOG for more information."
exit $rc;
fi
printf "Waiting for portal startup"
checkServerAlive $portal_url
rc=$?
if [[ $rc != 0 ]];
then
printf "\nPortal failed to start in $rc seconds! Please check $PORTAL_LOG for more information.\n"
exit 1;
fi
printf "\nPortal started. You can visit $portal_url now!\n"
exit 0;
elif [ "$1" = "client" ] ; then
if [ "$windows" == "1" ]; then
java -classpath "$CLIENT_DIR;$CLIENT_JAR" $CLIENT_JAVA_OPTS com.ctrip.framework.apollo.demo.api.SimpleApolloConfigDemo
else
java -classpath $CLIENT_DIR:$CLIENT_JAR $CLIENT_JAVA_OPTS com.ctrip.framework.apollo.demo.api.SimpleApolloConfigDemo
fi
elif [ "$1" = "stop" ] ; then
echo "==== stopping portal ===="
cd $PORTAL_DIR
./$PORTAL_JAR_NAME stop
cd ..
echo "==== stopping service ===="
cd $SERVICE_DIR
./$SERVICE_JAR_NAME stop
else
echo "Usage: demo.sh ( commands ... )"
echo "commands:"
echo " start start services and portal"
echo " client start client demo program"
echo " stop stop services and portal"
exit 1
fi