服务端部署文档
依赖
- supervisord
- nats
- etcd
- mysql
- redis
部署方式
正式服使用服务商的mysql和redis服务
开发服测试服等使用自己部署的mysql和redis服务
使用supervisord进行进程管理
依赖部署
supervisord官网:supervisord.org
- 安装python环境
- 使用pip安装supervisord: pip install supervisor
- 生成配置文件: echosupervisordconf > /etc/supervisord.conf
- 修改配置文件:将tmp里的文件换到var中,避免被系统清理[unixhttpserver] file = /var/run/supervisor.sock[supervisord] logfile = /var/log/supervisor/supervisord.log[supervisord] pidfile = /var/run/supervisord.pid[supervisorctl] serverurl = unix:///var/run/supervisor.sock修改子配置位置 [include] files = /etc/supervisord.d/*.ini
- 新建文件夹:mkdir /etc/supervisord.dmkdir /var/log/supervisor
- 执行 supervisord: supervisord -c /etc/supervisord.conf
nats 官网:NATS.io – Cloud Native, Open Source, High-performance Messaging
- 下载nats的二进制包到服务器上并解压
- 在/etc/supervisord.d/路径下新建nats.ini文件
- 修改ntas.ini文件 command是执行程序路径 directory是运行文件夹:[program: nats]command=/opt/nats/nats-serverdirectory=/opt/nats/autorestart=trueautostart=trueuser=rootstartsecs=10startresries=5stopasgroup=true
- 更新supervisord配置: supervisorctl update
etcd 官网: etcd
- 下载etcd的二进制包到服务器上并解压
- 在/etc/supervisord.d/路径下新建etcd.ini文件
- 修改ntas.ini文件 command是执行程序路径 directory是运行文件夹:[program: etcd]command=/opt/etcd/etcd --listen-client-urls='http://0.0.0.0:2379' --advertise-client-urls='http://0.0.0.0:2379'directory=/opt/etcd/autorestart=trueautostart=trueuser=rootstartsecs=10startresries=5stopasgroup=true
- 更新supervisord配置: supervisorctl update
服务部署
添加新服务
- 将服务的yml配置文件放入 /opt/gameserver/assets/config/ 下
- 将服务的可执行程序放入 /opt/gameserver/ 下
- 在/etc/supervisord.d/路径下新建服务的.ini文件
- 按规则配置.ini文件参考:[program: login]command=/opt/gameserver/%(program_name)sdirectory=/opt/gameserverautorestart=trueautostart=trueuser=rootstartsecs=10startresries=5stopasgroup=true
- 更新supervisord配置: supervisorctl update
- 在对应环境upload.sh和deploy.sh脚本中添加新服务的部署代码
更新服务
- 将服务的可执行程序放入/opt/gameserver/ 下
- 执行重启命令:supervicorctl restart 服务名
- 或者直接执行对应环境的部署脚本