开源项目之调试python应用生成性能cpu火焰图

python 5,890 views
前几天听了杨博同学的分享,是关于如果使用Systemtap火焰图分析python的性能问题..  有些感触. 以前做运维的时候,总是折腾火焰图来分析业务性能.  现在反而转作开发后,没怎么用火焰图来分析问题.   这次我把cpu火焰图的功能封装模块.  使用...
阅读全文 0

开源项目之调试python应用生成性能cpu火焰图

10-22 5,890 views

前几天听了杨博同学的分享,是关于如果使用Systemtap火焰图分析python的性能问题..  有些感触. 以前做运维的时候,总是折腾火焰图来分析业务性能. &nb...
阅读全文 0

体验使用mysqldb操作mysql5.7的json类型

python 5,602 views
看到推送的消息说,mysql 5.7 ga版本出来了,说是有更好的性能,对于多核CPU、固态硬盘、锁有着更好的优化。在这一版本里面,mysql也终于有了json数据结构,虽说现在还不能跟mongodb这样的文档性数据库做比拟,但这已经是关系型数据库的一大改进了。  mysql...
阅读全文 2

体验使用mysqldb操作mysql5.7的json类型

10-21 5,602 views

看到推送的消息说,mysql 5.7 ga版本出来了,说是有更好的性能,对于多核CPU、固态硬盘、锁有着更好的优化。在这一版本里面,mysql也终于有了json数据结构,...
阅读全文 2

使用tornado实现elasticsearch的权限控制

elasticsearch,python 7,166 views
前言:     公司的应用监控平台又要有所变动了,准备把opentsdb给剔除,改用elasticsearch后端存储。去掉opentsdb的原因很简单,因为在数据量大的时候,hbase rowkey的效率达不到快速返回的需求,尤其针对聚合计算效率低。Opentsdb不支持二级索引...
阅读全文 1

使用tornado实现elasticsearch的权限控制

10-19 7,166 views

前言:     公司的应用监控平台又要有所变动了,准备把opentsdb给剔除,改用elasticsearch后端存储。去掉opentsdb的原因很简单,因为在数...
阅读全文 1

如何开发微型的python orm框架(缓存及路由)

python,web 5,261 views
简单介绍下 什么是ORM ? ORM,即Object-Relational Mapping(对象关系映射),它的作用是在关系型数据库和业务实体对象之间作一个映射,这样,我们在具体的操作业务对象的时候,就不需要再去和复杂的SQL语句打交道,只需简单的操作对象的属性和方法。 ...
阅读全文 0

如何开发微型的python orm框架(缓存及路由)

10-16 5,261 views

简单介绍下 什么是ORM ? ORM,即Object-Relational Mapping(对象关系映射),它的作用是在关系型数据库和业务实体对象之间作一个映射,这样,我们在具...
阅读全文 0

python在高并发下在线修改表结构时异常 [mysql]

DB,python,运维 6,171 views
以前我们遇到metadata lock的问题, 当时是因为业务逻辑导致了。 现在的场景是在线修改ddl语句,确切来说就是alter修改表结构 。 我们知道直接alter修改表结构,肯定会进行锁表,业务很瘦影响的。如果想避免锁表,可以采用pt-online-schema-change的方式。 ...
阅读全文 0

python在高并发下在线修改表结构时异常 [mysql]

10-14 6,171 views

以前我们遇到metadata lock的问题, 当时是因为业务逻辑导致了。 现在的场景是在线修改ddl语句,确切来说就是alter修改表结构 。 我们知道直接alter修...
阅读全文 0

关于数据写入的etcd http api文档解释[python]

DB,etcd,python 7,196 views
上手在github提交了python gevent etcd的非阻塞模块。 正好这两天寂寞的很,打算再重写下etcd 输入更改数据这块的逻辑。 搜相关文档的时候,发现很多资料对于etcd http api写入数据描述,很是模糊片面,愣是没找到像样点的代码样式。正好趁着有时间,就...
阅读全文 1

关于数据写入的etcd http api文档解释[python]

7,196 views

上手在github提交了python gevent etcd的非阻塞模块。 正好这两天寂寞的很,打算再重写下etcd 输入更改数据这块的逻辑。 搜相关文档的时候,发现...
阅读全文 1

在centos下打造基于python的vim开发环境

python 5,199 views
下面是vim的效果图: 这是我自己精简后的python vim开发包环境, 已经推到github中。目的是自己部署开发环境的时候,更加的方便。  那么其实还有更加丰富的功能,但只会让vim速度变得很慢,不信你可以试试 !  所以我要说的是,并不是插件...
阅读全文 3

在centos下打造基于python的vim开发环境

10-13 5,199 views

下面是vim的效果图: 这是我自己精简后的python vim开发包环境, 已经推到github中。目的是自己部署开发环境的时候,更加的方便。  那么...
阅读全文 3

用gevent开发非阻塞的etcd python客户端模块

DB,etcd,python 6,032 views
起因,我这边有个服务端,是专门控制服务发现和注册功能,任务的调度都是用gevent来实现,如果直接在gevent里使用python-etcd,会发生阻塞的,gevent对于那些网络模块很是敏感。 我不打算在任务调度器里面用多线程,所以我直接自己重写个支持gevent的python e...
阅读全文 1

用gevent开发非阻塞的etcd python客户端模块

10-12 6,032 views

起因,我这边有个服务端,是专门控制服务发现和注册功能,任务的调度都是用gevent来实现,如果直接在gevent里使用python-etcd,会发生阻塞的,gevent对于那...
阅读全文 1

聊聊python的轻量级orm peewee及对比SQLAlchemy

python 7,591 views
其实我是打算自己写个简单的python mysql orm数据库模型,虽然基本功能都实现了,但是bug也不少….   还有这两天正在忙电商数据的导入,因为字段实在太多, 如果用mysqldb、pymysql来操作的话,实在是有些繁琐呀,咱们也不能 insert into xiaorui (c...
阅读全文 0

聊聊python的轻量级orm peewee及对比SQLAlchemy

10-09 7,591 views

其实我是打算自己写个简单的python mysql orm数据库模型,虽然基本功能都实现了,但是bug也不少….   还有这两天正在忙电商数据的导入,因为...
阅读全文 0

配置consul的session注册及服务发现功能[python]

python 7,600 views
熟悉我博客的人知道我挺喜欢折腾新东西的,马上就要10 1 放假了,大家都没心思忙工作 !  一堆的需求都让我给他扔到脑后面了。  最近看了一些微信的技术文章分享,有人拿 zookeeper 、etcd、consul做对比,因为我对consul真心不熟悉,所有不好扯皮。 &nb...
阅读全文 1

配置consul的session注册及服务发现功能[python]

09-29 7,600 views

熟悉我博客的人知道我挺喜欢折腾新东西的,马上就要10 1 放假了,大家都没心思忙工作 !  一堆的需求都让我给他扔到脑后面了。  最近看了一些微...
阅读全文 1

python动态导入模块并reload类及函数

python 7,646 views
我又来分享开源模块了,项目名是pyautoreload,这是前段时间写后端服务时用到的模块,我现在独立插取成一个项目,开源出来,希望这模块对大家有些用处… 关于python各种方法导入模块的介绍,如何reload重新加载类及函数原文地址是: http://xi...
阅读全文 1

python动态导入模块并reload类及函数

09-27 7,646 views

我又来分享开源模块了,项目名是pyautoreload,这是前段时间写后端服务时用到的模块,我现在独立插取成一个项目,开源出来,希望这模块对大家有些用处&...
阅读全文 1

话说Django orm性能为什么比原生的mysqldb慢

python 7,400 views
今天同事反映了一个问题,说后台报表的页面很慢…  我当场就质疑他,肿么可能… 结果试了打开页面看了下,确实很慢.   然后就开始慢慢的排查问题…. 关于django orm性能一般,返回结果慢的问题,博文地址是 http://xiaorui....
阅读全文 3

话说Django orm性能为什么比原生的mysqldb慢

09-24 7,400 views

今天同事反映了一个问题,说后台报表的页面很慢…  我当场就质疑他,肿么可能… 结果试了打开页面看了下,确实很慢.   然后就开始慢慢...
阅读全文 3

使用gevent spawn_later实现定时计划任务系统

python 6,722 views
前段时间用有优先级和线程池做了可控的计划任务模块。正好今还在看gevent wsgi的东西,在想用gevent能不能实现计划任务系统。 看了下gevent的文档,发现他没有现成那样的timer功能,但是有个spawn_later的功能。 spawn_later函数可接收周期时间及运行函数。&n...
阅读全文 4

使用gevent spawn_later实现定时计划任务系统

09-22 6,722 views

前段时间用有优先级和线程池做了可控的计划任务模块。正好今还在看gevent wsgi的东西,在想用gevent能不能实现计划任务系统。 看了下gevent的文档,发现他...
阅读全文 4

python elasticsearch高级组合查询及aggs聚合

elasticsearch,python 7,542 views
这两天和小朋友对elasticsearch进行死逼…  主要是纠结,我今天就上两个例子……   如果你的查询较为复杂就直接套用这个格式,shold里面的逻辑都是OR , must_not是非,must是必须要有的。  关于elasticsearch 组合查询和...
阅读全文 1

python elasticsearch高级组合查询及aggs聚合

09-18 7,542 views

这两天和小朋友对elasticsearch进行死逼…  主要是纠结,我今天就上两个例子……   如果你的查询较为复杂就直接套用这个...
阅读全文 1

python使用fcntl管理pidfile多进程文件锁

python 6,670 views
最近在折腾服务端,后端启动的时候,常常会遇到一个问题,由于启动方式不是通过标准的/etc/init.d/monitor start 启动的,是export PYTHONPATH=pwd;python monitor.py启动的。后期发现居然启动了N个进程。   这问题好解决,进程的启动关闭都需要统一入口,统...
阅读全文 3

python使用fcntl管理pidfile多进程文件锁

09-17 6,670 views

最近在折腾服务端,后端启动的时候,常常会遇到一个问题,由于启动方式不是通过标准的/etc/init.d/monitor start 启动的,是export PYTHONPATH=pwd;python ...
阅读全文 3

开源项目之python使用etcd构造分布式互斥锁

DB,etcd,python 6,721 views
    前几天跟朋友聊了下分布式互斥锁的事,我以前用过redis和zookeeper做分布式的互斥锁,但那哥们的场景下已经用了etcd,不再想引入其他的服务。 其实etcd本身也可以做成分布式互斥锁的。在coreos关于etcd文章的介绍里,就标记出etcd适合做分布式锁的特...
阅读全文 3

开源项目之python使用etcd构造分布式互斥锁

09-13 6,721 views

    前几天跟朋友聊了下分布式互斥锁的事,我以前用过redis和zookeeper做分布式的互斥锁,但那哥们的场景下已经用了etcd,不再想引入其他的服务...
阅读全文 3

使用etcd watch做服务发现监控时遇到的坑

DB,python 8,903 views
最近在公司折腾业务数据监控的事,听上面的意思,要把这监控做成部门的数据监控平台,接入各种各样的数据流监控,一听这目标,霎时间就不想继续开发了… 以前参与开发过基础的监控系统,那也是个巨坑的玩意,自从被伤过后,我有些抵触监控这玩意了… &nbs...
阅读全文 8

使用etcd watch做服务发现监控时遇到的坑

09-11 8,903 views

最近在公司折腾业务数据监控的事,听上面的意思,要把这监控做成部门的数据监控平台,接入各种各样的数据流监控,一听这目标,霎时间就不想继续开发了̷...
阅读全文 8

开源项目之使用dburi解析uri形式的数据库地址

python 4,942 views
我为什么会开发这个模块? 在java下很多数据的连接方式都是直接用uri的方式,但是在pyhton下反而少之又少,虽然各个python数据库模块支持这个。       我在社区问过不少python的大牛,他们对于数据库连接地址有不同的规范,有人喜欢直...
阅读全文 0

开源项目之使用dburi解析uri形式的数据库地址

09-09 4,942 views

我为什么会开发这个模块? 在java下很多数据的连接方式都是直接用uri的方式,但是在pyhton下反而少之又少,虽然各个python数据库模块支持这个。  ...
阅读全文 0

封装subprocess的超时_非阻塞_实时输出等功能

python 5,126 views
      上周去三亚度假,玩的还行,价格也还行,如果你是临时起意去旅游的话,可以选择途牛自助,如果是长线计划,那么强烈推荐你用去哪儿+美团+大众的方案,巨靠谱 ! 在三亚这几天,一直在海边寻找比基尼,过程中被晒伤了,回北京浑身特么的痒痒&#...
阅读全文 1

封装subprocess的超时_非阻塞_实时输出等功能

09-08 5,126 views

      上周去三亚度假,玩的还行,价格也还行,如果你是临时起意去旅游的话,可以选择途牛自助,如果是长线计划,那么强烈推荐你用去哪儿+...
阅读全文 1

使用python校验验证表单数据格式及准确性

python 5,262 views
这两天工作中,遇到了重复性验证表单和任务队列数据格式的问题,然后晚上用python写了个验证数据格式的模块,名字叫 validfilter 。 他除了可以验证表单外,还可以验证各种各种工的数据,dict,tunple,list 都可以递归性的验证,在github也有不少人分享了代码,但...
阅读全文 0

使用python校验验证表单数据格式及准确性

08-31 5,262 views

这两天工作中,遇到了重复性验证表单和任务队列数据格式的问题,然后晚上用python写了个验证数据格式的模块,名字叫 validfilter 。 他除了可以验证表单外...
阅读全文 0

python魔法函数中的描述器Descriptor

python 5,386 views
今天在整理以前代码的时候,发现了一个tornade写的rpc服务,看到里面用了很多的描述器,说实话,3年前的代码咋实现的,我居然也我忘了。。。。看来有必要从头再整理下了。 python的魔法函数。 长话短说,什么是描述器? 当一个物件拥有__get__()方法(必要),...
阅读全文 0

python魔法函数中的描述器Descriptor

08-30 5,386 views

今天在整理以前代码的时候,发现了一个tornade写的rpc服务,看到里面用了很多的描述器,说实话,3年前的代码咋实现的,我居然也我忘了。。。。看来有必要从...
阅读全文 0