构建服务脚手架

为啥需要脚手架?

如果你对缘由感兴趣,可以看看这个

作用

  1. 生成skynet 启动配置文件
  2. 生成服务基础运维脚本

构建命令

skynet_fly/binshell/make_server.sh skynet_fly_path

我们已构建skynet_fly/examples/webapp为例子

  1. 进入服务文件夹目录下。
    cd skynet_fly/examples/webapp

  2. 构建运维脚本。
    bash ../../binshell/make_server.sh ../../

之后会生成以下文件。

1
2
3
4
5
6
7
8
9
make ./webapp_config.lua
make ./script/run.sh 运行
make ./script/reload.sh 热更可热更服务模块
make ./script/check_reload.sh 自动检查文件修改并热更
make ./script/kill_mod.sh 干掉某些可热更服务模块
make ./script/stop.sh 停服
make ./script/restart.sh 重启
make ./script/try_again_reload.sh 热更失败后,可以重试热更
make ./script/fasttime.sh 加速时间

可以发现webapp_config.lua的生成规则是这样的svr_name .. _config.lua,也就是服务文件夹的名字拼接起来的,在skynet_fly默认服务文件夹名为服务名称,这个服务名称集群远程rpc中会用到。

  1. 运行服务。
    script/run.sh 配置文件 是否守护进程(0 不启用 默认启用)
    bash script/run.sh load_mods_prod.lua 0 或者 bash script/run.sh load_mods.lua 0
  • 守护进程运行,后台运行,log会写在日志文件,目前日志文件默认放在logs/server.log下面。
  • 非守护进程运行,ctrl + c 就会终止服务。

我们可以使用不同的配置文件来启动服务,这样可以方便的区分,正式环境,开发环境,测试环境不同的配置。
也可以方便部署单机多服,单机就能模拟多机部署。

比如以上的两种启动方式就相当于启动了两个服务。

  • bash script/run.sh load_mods_prod.lua 用生成环境配置
  • bash script/run.sh load_mods.lua 用测试环境配置

我们给指定的服务执行命令时,需要带上启动的配置文件名,因为当单机上部署多个相同服务时我们需要区分它们。
比如检查热更

  • 正式环境 bash script/check_reload.sh load_mods_prod.lua
  • 测试环境 bash script/check_reload.sh load_mods.lua

命令使用注意点

script中的脚本命令并不能在任意目录下执行。script中的shell命令,都默认当前路径的服务的根目录,所有必须在服务的根目录执行。
比如你cd 到script目录,执行相关命令就不行。

上面脚本有关于热更的命令,我们先不急着了解热更命令,我们先看看下一节,如何配置运行可热更服务。


构建服务脚手架
https://huahua132.github.io/2023/02/25/skynet_fly_word/word_1/D_creator/
作者
huahua132
发布于
2023年2月25日
许可协议