| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Python知识库 -> 关于日志流量监控预警小小项目 | Flask日志监控脚本 -> 正文阅读 |
|
[Python知识库]关于日志流量监控预警小小项目 | Flask日志监控脚本 |
Flask日志监控脚本 现在要写一个任务去监控每一秒钟的带宽值(每一分钟去监控三分钟之前的日志) 现在就新增一个task 需求分析:
也可以生成celery异步任务 : 做指令下发
Flask和celery的结合 拿router下面的user举例: 在下面多创建一个路由叫做celery @user_bp.route("/celery") # 相当于请求这个接口 就可以给我下发任务 def celery_trigger(): ??? # 获取参数 ??? args=request.args.get("args") ??? # 调用异步任务 ??? from celery_app.tasks import celery_tigger ??? #发送任务(这个delay相当于就是调用异步任务去触发 ) ??? celery_tigger.delay(args) ??? return "this is celery_trigger" 然后再celery_app下面的tasks里面添加一个新的任务 @celery.task def celery_tigger(sth2): ??? print("this is celery_tigger") print(sth2) 效果如下:
celery的可视化组件:flower 首先先安装 flower启动就一条命令:
然后在浏览器输入ip:5000就可以看到这个可视化工具 其中processed表示的是出发的任务数 ?succeded表示成功的数量等 celery定时任务
flask总结: 上线部署是部署到阿里云里面去 但是现在就直接上线到虚拟机里面去 整个项目流程:可以看项目框架图(也可以看自己做的那张图) Zookeeper在kafka中有什么用?
Kafka一般应用场景,为什么会选择kafka? 日志收集 流量削峰 ?业务解耦 有没有了解过其他中间件? ?????? nsq rebbitmq? activemq kafka? redis 用了几台机器去完成这个实验?设计这个实验的目的是什么? ????? 6台 其中三台(nginx? filebeat? kafka? zk) 1台(mysql) 1台(跑flask应用) 1台nginx代理机 ???? 学习 找工作 通过朋友知道目前这种架构很流行,所以自己在本地搭环境进行学习 生产者不断生产日志 Kafka响应不过来怎么办? ????? 参数设置缓解压力 ????? 找到瓶颈(磁盘 内存 带宽) 然后就可以扩容了 ????? Flask用了哪些模块,分别做了什么? ????? 看上面那张图 Flask 怎么接收参数? ????? Request对象 做了哪些表 表里多少数据 这个表是做什么的!!!(七八张表) Flask的后端编写 所有东西都是绑到app核心对象里面 核心对象app在manage.py里面创建的 运行也是从这个文件开始 Orm是做对象关系映射 建立数据模型的 把路由注册到蓝图上 把蓝图注册到app上 整个视图函数放在route目录上面 Api编写使用表现层状态转移(restful)? 把路由帮到api上面 api再绑到蓝图上面 基于token做的用户登录验证 Flask-marshmallow我们没有使用 我们自己自定义 Flask-scrip 方便管理 Flask-migrate是绑到flask-script上面的
项目步骤里的前端vue框架我们没学 上线部署: 这个项目目前还是只适用于开发环境 上线部署的应用分为两种: nginx+gunicron nginx+uwsgi 我们的python程序是用gunicron运行的 相比于uwsgi而言,gunixcron配置简单使用方便
测试环境和线上环境一模一样 流程:写完代码—》测试—》审核—》发布到线上环境 ? 持续集成ci/cd:这个流程平台化自动化管理(软件jenkins可以做到) Flask应用集群是真实机器(gunicorn运行在这个里面) Nginx就是暴露在外网的接口 而下面的东西用的就是内网
gunicorn -w是指定启动几个worker进程(几个worker)? -b是指定接口 gunicorn -w 2 -b :8000 manage:app 启动是在当前目录下启动(线上环境启动方式) 在新主机上安装依赖包:pip3 install -r requirements.txt -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com --trusted-host pypi.douban.com 现在去配置nginx 在kafka1的主机里配置nginx的conf文件 proxy_pass是反向代理
代表访问80端口v1的时候 全部代理去8000的flask端口
只有以v1开头的才会代理到我们的8000端口
可以实现动静分离来进行分流 以v1开头的后端都代理到后端 前端就是静态 新加一个location 代理到前面写的html里面去(本地直接返回)
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 21:56:52- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |