微服务布署

、在 home 下建立了 springcloud 目录,再在其下建了如下目录:

说明:

gateway 应用网关

safegate 网关级安全认证服务

import 导入服务

draw 摇号派位主服务

query 查询服务

01 代表 一年级,07 代表七年级。

、每个目录下大致有以下内容:

bin 中存放的是可执行sh脚本

logs 中会产生运行的日志

pid 目录中在启动时会生成一个 pid 文件,里面放置了应用程序的系统进程号。有了这个文件,说明本程序正在运行,退出本程序的可执行脚本会从该文件中获取进程号,然后杀死该进程,即停止了本程序和服务,同时删除 pid 文件。

application.yml 和 bootstrap.yml 是项目的启动脚本文件。springboot 项目一般都是以这两个文件为启动配置。当然其原因还是在可执行文件中的设置。

jar 是主执行文件。

在bin文件夹下,有两个脚本文件: startup.sh 和 shutdown.sh 。

startup.sh 脚本内容如下:


 
#!/bin/sh

HOME_PATH=/home/springcloud/enroll-lcxx-draw-01
APP_NAME=enroll-lcxx-draw-01
MAIN_JAR=enroll-lcxx-draw-0.0.1-SNAPSHOT.jar

cd $HOME_PATH

nohup /usr/java/jre1.8.0_271/bin/java -Dspring.config.location=$HOME_PATH/application.yml,$HOME_PATH/bootstrap.yml -Dlogging.file=$HOME_PATH/logs/run.log -jar $HOME_PATH/$MAIN_JAR > $HOME_PATH/logs/run.out 2>&1 &

echo $! > $HOME_PATH/pid/runing.pid


如上所示,在启动脚本文件中指定了 application.yml 和 bootstrap.yml 为启动文件。

shutdown.sh 文件内容:


 
#!/bin/sh

HOME_PATH=/home/springcloud/enroll-lcxx-draw-01

PID=$(cat $HOME_PATH/pid/runing.pid)
kill -9 $PID
find $HOME_PATH/pid/ -name "*.pid" -exec rm -rf {} \;
find $HOME_PATH/logs/ -name "*.out" -exec rm -rf {} \;


在执行shutdown停止服务时,会同时删除 pid 和 out 日志文件。

上面是针对某一个微服务的说明。一般在同一台机器上均放置以上面所示的八个微服务(见第一张图)。

、为了使所有微服务能够自启动,因此在 /etc/systemd/system 中,为八个微服务均写了启动服务配置文件,如下图。

内容大致如下:

、从操作安全角度出发,关键操作(如摇号、导入)均要进行安全验证,因此在用户目录中存放了一个安全码。服务的启动用户为root,因此在 /root下需有config目录及存放安全码的配置文件lerx.setting。

该文件和Windows中的ini文件设置方法相同,安全码的内容如下:

在前台摇号页面打开的时候,会弹出一个窗口,其中的安全码必须与此相同,否则将不能进行摇号。

、微服务的启动情况,应通过 Nacos 的服务列表进行观察。

如上图所示,至少要有一个健康实例在运行(上图是两个服务器,所以实例数是2)。

、增加服务器

一般来说,只在查询业务量大的情况下才会增加服务器。增加的方法建议将布署微服务的srv服务器进行克隆,克隆后更改主机ip。重启后查看上面所说的实例数是否增加,同时可以点击详情查看ip以确定增加的服务器情况。