后台-系统设置-扩展变量-手机广告位-内容正文顶部 |
API部署
安装常用工具
sudoyuminstall-yyum-utilswgetvimmtrcurltelentlsofgit
安装jdk
下载jdk
mkdir-p/opt
cd/opt
wgethttp://res.javamall.com.cn/jdk-8u121-linux-x64.tar.gz
解压缩并重命名:
tar-xzvfjdk-8u121-linux-x64.tar.gz
mvjdk1.8.0_121/jdk8
配置环境变量:
vim/etc/profile
在文件的最后配置如下内容:
JAVA_HOME=/opt/jdk8
JRE_HOME=/opt/jdk8/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
exportJAVA_HOMEJRE_HOMECLASS_PATHPATH
注意可能存在已有配置,请修改为正确的路径
使配置文件生效:
source/etc/profile
验证
java-version
如果不正确,可能需要退出重新登录
安装maven
cd/opt
wgethttp://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
tar-xzvfapache-maven-3.6.3-bin.tar.gz
配置环境变量:
vim/etc/profile
在文件的最后配置如下内容(增加MAEN_HOME并修改path):
#其它略
MAVEN_HOME=/opt/apache-maven-3.6.3
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$MAVEN_HOME/bin
#其它略
注意可能存在已有配置,请修改为正确的路径
使配置文件生效:
source/etc/profile
验证
mvn-v
配置maven私服
参考《配置maven私服》
clone源码
请您参考"git部署公钥指南"配置git公钥
作为规范,我们约定源码全部放在/opt/source目录中,jar放在/opt/server中
mkdir-p/opt/server
mkdir-p/opt/source
cd/opt/source
clone我们需要的源码:
省略.........
或者
省略.........
下载b2b2c-config,用feature_7.2.2分支即可
省略.........
或者
省略.........
进行初次编译
cd/opt/source/b2b2c
mvncleaninstall-DskipTests-fpom.xml
运行API
配置config-server
配置config-server
vim/opt/source/b2b2c-config/application-dev.yml
如果是生产环境则修改application-prod.yml
具体请参考:配置中心指南
请配置好数据库、elasticsearch、redis、rabbitmq等这些基础设施
建立其它配置文件
mkdir-p/opt/server/{config,logs}
vim/opt/server/config/bootstrap.yml
粘贴如下配置
spring:
cloud:
config:
uri:http://localhost:8888
profile:dev
server:
tomcat:
basedir:/home/temp
上述配置将api的配置中心指为本机
目录必须为实际存在且不会被自动删除的路径
建立执行脚本
vim/opt/source/application.properties
粘贴如下配置
#默认采用本地配置
server.port=8888
spring.profiles.active=native
spring.cloud.config.server.native.search-locations=/opt/source/b2b2c-config
建立如下脚本
vim/opt/server/start.sh
粘贴如下内容(注意更改branch参数):
#!/bin/bash
#版本
verson=7.2.3
#要部署的分支
branch=feature_7.2.3_upgrade
#源文件存储目录
source_dir=/opt/source/b2b2c
#程序运行时目录
server_dir=/opt/server
mkdir-p$server_dir"/logs/"
#要运行的api
apis=("sba-server""base-api""buyer-api""seller-api""manager-api""consumer")
#杀死进程
killone(){
ps-ef|grepjava|grep$1|grep-v'grep'|awk'{print$2}'|xargskill-9
echo'停止'$1
}
#启动程序
startone(){
nohupjava-Xmx512m-Xms256m-Xss256k-jar$1"-"$verson.jar>$server_dir"/logs/"$1".out"2>&1&
echo'启动'$1
}
#默认全部启动
startall="yes"
forapi_namein${apis[@]}
do
if[["$1"!=""&&"$1"=$api_name&&"$1"!="dontbuild"]]
then
startall="no"
break
fi
done
echo"startallis"$startall
if[["$startall"="yes"]];then
#杀死进程
forapi_namein${apis[@]}
do
killone"$api_name"
echo"$api_namestopsuccess"
done
else
killone"$1"
fi
#启动configserver
cd$server_dir
#检测端口状态
checkPort(){
r=`netstat-ntlp|awk'{print$4}'|grep:$1`
if["$r"==""]
then
return0
else
return1
fi
}
#检测configserver状态
checkPort8888
#读取状态
res=`echo$?`
#判断configserver是否启动,如果未启动则启动
if["$res"=="0"]
then
mv$source_dir"/config-server/target/config-server-"$verson.jar$source_dir
nohupjava-Xmx512m-Xms256m-Xss256k-jar-Dspring.config.location=/opt/source/application.properties$source_dir"/"config-server-$verson.jar>$server_dir"/logs/config-server.out"2>&1&
echo"等待configserver启动"
while["$res"=="0"]
do
checkPort8888
res=`echo$?`
echo-n"."
sleep1s
done
echo"configserverstartsuccess"
sleep1s
else
echo""
echo"config-server已经启动"
fi
sleep1s
if["$1"!="dontbuild"]
then
#更新源码
cd$source_dir
(部分内容已省略....)
mvninstall-DskipTests-fpom.xml
rm-rf$server_dir"/*.jar"
forapi_namein${apis[@]}
do
mv$source_dir"/"$api_name"/target/"$api_name"-"$verson.jar$server_dir
done
else
echo"不构建,直接重启"
fi
cd$server_dir
if[["$startall"=="yes"]];then
forapi_namein${apis[@]}
do
startone"$api_name"
done
else
startone"$1"
fi
#进度条
progressBar(){
label=('|''/''-''\')
per=$1
ii=0
str=''
myTimes=$2
text=$3
letindex=myTimes%4
#拼接#字
while[$ii-le$per]
do
str=#$str
letii++
done
printf"[%-100s]%d%%%s%s\r"$str$per${label[$index]}$text
if[[$per==100]];then
echo
fi
}
#声明所有的服务和端口号,以便检测
serviceMap["7000"]="base-api"
serviceMap["7002"]="buyer-api"
serviceMap["7003"]="seller-api"
serviceMap["7004"]="admin-api"
serviceMap["6000"]="consumer"
serviceMap["7006"]="sba-server"
totalPer=0
#是否全部启动成功的标识
all_is_ok=""
last_text=''
times=0
processNum=0
processItem=100/6#六个任务中每个任务所占进度
while:
do
all_is_ok="yes"
progressBar$totalPer$times$last_text
#100次检查一下
checked=$(($times%100))
if[[$checked==0]];then
forkeyin${!serviceMap[*]};do
checkPort"$key"
started_result=`echo$?`
if["$started_result"=="1"]
then
processNum=$(($processNum+1))
#每启动一个服务进度
totalPer=$(($processNum*$processItem))
#显示启动成功的程序
printf"%-57s%57s\n"${serviceMap[$key]}'已启动'|sed's/[]/-/g'
#将启动成功的服务移除掉
unsetserviceMap["$key"]
fi
done
fi
sleep0.1
lettimes++
if[[${#serviceMap[*]}==0]];then
progressBar1006"全部启动完成"
break
fi
done
进入脚本文件夹中:
cd/opt/server
更新源码并且部署执行如下脚本:
shstart.sh
不更新源码直接重启执行如下脚本
shstart.shdontbuild
更新源码并且重启单个API执行如下脚本
shstart.shbase-api
更新源码并且重启单个API启动参数分别为:base-ap/buyer-api/seller-api/mamager-api/consumer
验证
当配置中心启动成功后,需要访问以下网址查看配置文件是否有误,(ip替换为物理机IP)
http://ip:8888/a/dev
全部启动成功后,通过以下网址检查API是否成功。
http://ip:7000/swagger-ui/
http://ip:7002/swagger-ui/
http://ip:7003/swagger-ui/
http://ip:7004/swagger-ui/
监控检查各服务节点状态
http://ip:7006
默认用户名密码:admin/admin
根据以上内容可以了解到非k8s环境部署的API部署,想了解更多详情,可以持续关注易族智汇javashop。
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。