python3操作消息队列中间件Kafka

Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。对于像Hadoop的一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消费。特性:通过O(1)的磁盘数据结构提供消息的持久化,这种结构对于即使数以TB的消息存储也能够保持长时间的...

阅读全文

Flask使用flask_socketio将信息时时推送前台

flask_socketio模块实际上是封装了flask对websocket的支持,websocket在连接建立阶段是通过HTTP的握手方式进行的,这可以看做是为了兼容浏览器或者使用一些现成的功能来实现,这样一种捷径。当连接建立之后,客户端和服务端之间就不再进行HTTP通信了,所有信息交互都由websocket接管。Flask-SocketIO使Flask应用程序可以访问客户端和服务器之间的低延迟双向通信,使客户端建立与服务器的永久连接。flask_socketio适用于后台产生新的数据,需要在前台页面马上展示出来,例如数据监控、统计图实时变化更新等。首...

阅读全文

Flask使用flask_sqlalchemy操作MySQL

在flask_sqlalchemy中,查询操作是通过query对象操作数据。最基本的查询是返回表中所有数据,可以通过过滤器进行更精确的数据库查询。数据库会话也可以回滚,通过db.session.rollback()方法,实现会话提交数据前的状态。之前写了一个sqlalchemy的对象关系映射操作mysql的教程:https://sulao.cn/post/610.html,现在更新一个flask下的flask_qlalchemy,用起来其实是和sqlalchemy一样的,只是有些微区别,整体用起来更加简单,主要是我用的vscode,用起来静态检查老是报错...

阅读全文

Python3进程间通信方法queue

之前将了多线程的实例可以查看之前的笔记:https://sulao.cn/post/609.html,由于多线程中进程资源是共享的,所以传入queue队列,由各子线程去queue队列中获取资源,现在在多进程中已经不适用,因为多进程中会为每个子进程拷贝一份资源,所以不能继续按照多线程的方式来撰写代码,解决方法是多进程multiprocessing模块中也有queue方法,此queue方法不是之前讲的queue方法,我们来看看代码:#!/usr/bin/python3#coding:utf-8from urllib import&...

阅读全文

python日志模块logging详解

很多程序都有记录日志的需求,并且日志包含的信息有正常的程序访问日志还可能有错误,警告等信息输出,python的logging模块提供了标准的日志接口,可以通过它存储各种格式的日志,日志级别等级:critical>error>warning>info>debug看下各个日志级别代表什么意思:import logginglogging.basicConfig(filename='app.log',level=logging.DEBUG,format='%(asctime)s&nbs...

阅读全文

python3多进程实例详解

刚写完多线程的笔记没几天,可以看看我之前的多线程IO密集型操作实例详解:https://sulao.cn/post/609.html多进程和多线程的区别在于,多线程是一组资源由所有子线程共享,当其中一个子线程修改共享资源的变量,那么所有子线程获取到的共享资源变量就会改变,当其中一个线程崩溃会导致整个进程崩溃,多进程拷贝资源变量到每个子进程进行各自处理各自的任务,不受其他进程的影响,多进程的劣势是创建进程资源开销大,运行的进程数量也是有限的,进程过多会导致任务调度都会出现问题今天来把多进程也来做几个实例介绍下,本地目前没有这种场景,也是尽量写最简单最容易理...

阅读全文

Linux下sed命令用法

sed是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(patternspace),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。选项与参数:-n :使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN 的数据一般都会被列出到终端上。但如果...

阅读全文

linux下grep命令详解

1.作用Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。grep全称是GlobalRegularExpressionPrint,表示全局正则表达式版本,它的使用权限是所有用户。2.格式grep [options]3.主要参数[options]主要参数:-a或--text   不要忽略二进制的数据。-A<显示列数>或--after-context=<显示列数>   除了显示符合范本样式的那一列之外...

阅读全文

python3筛选出日志中最多访问的前10个IP

bash脚本也能实现,现在用python3重写了下这个脚本,以后肯定用的上,直接看我的实践例子,用的是我博客的访问记录进行筛选的,直接上代码了:#!/usr/bin/python3#coding:utf-8l = []logs = {}with open('sulao.cn-access.log', 'r', encoding='utf-8') as f:   &nbs...

阅读全文

Python3使用SQLAlchemy(ORM)对象关系映射器操作MySQL

本地测试了下sqlalchemy,使用起来比较简单,直接来看我的代码吧,花了半天实践整理的,数据就是用的我的博客的#!/usr/bin/python3#coding:utf-8from sqlalchemy.ext.declarative import declarative_basefrom sqlalchemy import Column,Integer,String,and_,or_,create_enginefrom sqlalchemy.orm im...

阅读全文