supervisor + gunicorn 配置superset

文章目录

  • 环境
  • gunicorn
  • supervisor
  • 结束语

在生产环境上直接跑一个py文件,感觉不太好,还是用 supervisor + gunicorn 部署一下放心

环境

  • system

CentOS 7.4.1708

  • python

Python 3.6.8

  • superset

superset 0.36

gunicorn

Gunicorn 是python中的WSGI容器,pre-fork worker模式,优点就是配置简单,轻量级的资源消耗,以及高性能。

官方配置文档

友情提示:多看官方文档

大概简单介绍一下我使用到的几个配置

  • 1、worker

建议的 workers 数量是 (2*CPU)+1。

--workers=5 或者 -w 5

  • 2、worker_class

gevent的模式

-k gevent
  • 3、守护进程
-D 或者 --daemon
  • 4、输出
--access-logfile FILE
--error-logfile FILE,
--log-file FILE
  • 最终的命令
gunicorn -D -w 10 -k gevent -b 0.0.0.0:8085 --access-logfile=success.log --error-logfile=error.log "superset.app:create_app()"

supervisor

  • 安装
1. 安装:yum install supervisor
2、启动:systemctl start supervisord
3、开机启动: systemctl enable supervisord

常用的几个命令
1、supervisorctl status // 查看监控的项目
2、supervisorctl start xxx
3、supervisorctl stop xxx
4、supervisorctl restart xxx
5、supervisorctl reload // 重新加载配置文件

安装之后 会在 /etc/目录下 生成 supervisord.conf 文件 和 supervisord.d 文件夹

  • 配置

1、xxx 是项目的名字

2、commad 第一个是 虚拟环境的路径

注意:需要安装 gevent (pip install gevent)

3、directory: 项目的路径

4、下面的配置信息 可以放2个地方都可以

第一:supervisord.conf 文件中,文件末尾

第二:supervisord.d 新建 xxx.ini 文件 (supervisord.conf 文件末尾include 包含就可以)

注意 gunicorn 不要守护进程配置supervisor, 不然不起作用,supervisor 控制不了

[program:xxxxx]
command=/home/xxx/venv/bin/gunicorn  -w 10 -k gevent -b 0.0.0.0:8085 --access-logfile=success.log --error-logfile=error.log superset.app:create_app()
directory=/home/xxxx
autostart=true
autorestart=true
stderr_logfile=/home/xxx/log/stderr.log
stdout_logfile=/home/xxx/log/stdout.log
user=root

结束语

1、先简单介绍一下怎么配置, 后续可能会写 supervisor 和gunicorn 的工作原理

2、下次会写 superset 上怎么监控指标和通知服务

你可能感兴趣的:(superset)