请注意,Zanblog并不支持低于IE8的浏览器,为了获得最佳效果,请下载最新的浏览器,推荐下载 Chrome

构建高效的python requests长连接池

python 191 views
前文:      最近在搞全网的CDN刷新系统,在性能调优时遇到了requests长连接的一个问题,以前关注过长连接太多造成浪费的问题,但因为系统都是分布式扩展的,针对这种各别问题就懒得改动了。 现在开发的缓存刷新系统,对于性能还是有些敏感的,我后面会给出最优的http长连接池构建方式。 该...
阅读全文 0

构建高效的python requests长连接池

4-03 191 views

前文:      最近在搞全网的CDN刷新系统,在性能调优时遇到了requests长连接的一个问题,以前关注过长连接太多造成浪费的问题,但因为系...
阅读全文 0

不要粗暴的销毁python线程

python 494 views
前言:     不要试图用强制方法杀掉一个python线程,这从服务设计上就存在不合理性。 多线程本用来任务的协作并发,如果你使用强制手段干掉线程,那么很大几率出现意想不到的bug。  请记住一点,锁资源不会因为线程退出而释放锁资源 ! 我们可以举出两个常见的例子: 1. 有个A线程拿到了...
阅读全文 0

不要粗暴的销毁python线程

2-22 494 views

前言:     不要试图用强制方法杀掉一个python线程,这从服务设计上就存在不合理性。 多线程本用来任务的协作并发,如果你使用强制手段干掉线...
阅读全文 0

关于海量数据处理的一些话题

架构设计,高性能 1,417 views
这两天跟朋友聊了些关于海量数据的处理问题…    咱们暂且不提那些hadoop、spark的集群解决方案,就单单说海量数据的处理方式,一般面试题中会有设计… 该文章写的有些乱,欢迎来喷 ! 另外文章后续不断更新中,请到原文地址查看更新.   http://xiaorui.cc/?p=3735 ...
阅读全文 0

关于海量数据处理的一些话题

9-05 1,417 views

这两天跟朋友聊了些关于海量数据的处理问题…    咱们暂且不提那些hadoop、spark的集群解决方案,就单单说海量数据的处理方式,一般面试题...
阅读全文 0

基于timerfd epoll开发的io定时器 [下]

python 1,897 views
接着上下文 接着上文, 上次内容是说epoll timerfd的原理和函数方法,下文主要是python epoll timerfd的之间的调用. 该文章写的有些乱,欢迎来喷 ! 另外文章后续不断更新中,请到原文地址查看更新. http://xiaorui.cc/?p=3693 在描述之前,我再次老生常谈关于timerfd的原理。 我们的timerfd...
阅读全文 0

基于timerfd epoll开发的io定时器 [下]

7-30 1,897 views

接着上下文 接着上文, 上次内容是说epoll timerfd的原理和函数方法,下文主要是python epoll timerfd的之间的调用. 该文章写的有些乱,欢...
阅读全文 0

给redis-py提交pull request引起的思考

python 3,366 views
起因是这样的,昨天突然发现以前用redis python的时候,从来没注意过他在多线程,多进程下fd复用的情况,直接都是公用一个连接对象。  对比了多个好项目代码,貌似大家对mysql,mongodb十分的注意,都尽量不要让他有socket fd共享的情况,而对于redis的使用很是粗暴,直接共享。  那么话说回来...
阅读全文 3

给redis-py提交pull request引起的思考

5-17 3,366 views

起因是这样的,昨天突然发现以前用redis python的时候,从来没注意过他在多线程,多进程下fd复用的情况,直接都是公用一个连接对象。  对比了多...
阅读全文 3

源码分析multiprocessing的Value Array共享内存原理

python 3,421 views
这次我们通过分析python的multiprocessing的源码,来看看Value Array怎么通过mmap ctypes实现的多进程之间的共享内存.      当第一次使用python多进程模块(multiprocessing)的Value Array做数据共享,就觉得一定是基于mmap实现的。 当然python文档中也说明是共享内存的方式了。 mmap只是提...
阅读全文 0

源码分析multiprocessing的Value Array共享内存原理

5-10 3,421 views

这次我们通过分析python的multiprocessing的源码,来看看Value Array怎么通过mmap ctypes实现的多进程之间的共享内存.      当...
阅读全文 0

打造mvc框架之实现高效的路由规则匹配

python,web 4,121 views
    在python的主流框架里面对于route路由规则的处理是相当的直接,都是使用python re正则表达式来处理 。想想这也是理所当然的,如果想要构建丰富的url匹配,那必须要用正则表达式的。 另外route路由器本身不会重新排序,他的顺序是你程序构建route规则的顺序。 该文章写的有些乱,欢迎来喷 ! ...
阅读全文 0

打造mvc框架之实现高效的路由规则匹配

4-17 4,121 views

    在python的主流框架里面对于route路由规则的处理是相当的直接,都是使用python re正则表达式来处理 。想想这也是理所当然的,如果想要构建丰...
阅读全文 0

打造mvc框架之解析socket底层的http协议

python,web 3,928 views
打造mvc框架是个连载的博文,虽然说是要造轮子,但其实更多的是学习web框架的具体实现原理。  其实我发现很多web框架没有直接解析http协议的方法,像bottle,flask都是记住于wsgi server来实现的。 关于wsgi协议,我会专门再讲解一次。 正事因为别的web框架没有直接去实现解析http协议的方法,所以引起了不少...
阅读全文 0

打造mvc框架之解析socket底层的http协议

4-14 3,928 views

打造mvc框架是个连载的博文,虽然说是要造轮子,但其实更多的是学习web框架的具体实现原理。  其实我发现很多web框架没有直接解析http协议的方法,像...
阅读全文 0

打造mvc框架之python template模板实现原理

python,web 4,255 views
造轮子        喜欢造轮子的我,那肯定也是实现过一套mvc的web框架的人,不止一套。 先前是用gevent做wsgi,jinja2做的模板,peewee做orm,我做了一个控制器来衔接各个组件,  如果想使用gevent的协程处理每个request_handler需要做一些妥协,比如第三方库的选择。   ...
阅读全文 4

打造mvc框架之python template模板实现原理

4-12 4,255 views

造轮子        喜欢造轮子的我,那肯定也是实现过一套mvc的web框架的人,不止一套。 先前是用gevent做wsgi,jinja2做的模...
阅读全文 4

python下使用ctypes获取threading线程id

python 5,000 views
python的多线程坑坑不断… … python的threading因为封装的太好, 很多本源的东西在threading对象里是拿不到的.  首先需要说明的是python threading的name跟ident,这些看起来是线程名字,线程id其实只是个标识,注意是标识而已.  简单过了下threading创建对象及启动线程的代码,发现ident...
阅读全文 2

python下使用ctypes获取threading线程id

3-21 5,000 views

python的多线程坑坑不断… … python的threading因为封装的太好, 很多本源的东西在threading对象里是拿不到的.  首先需要说明的是p...
阅读全文 2

实现python redis客户端的的封装定制化

python 4,711 views
感叹自己拿来这么大的激情呀,前段时间对分布式的raft感兴趣,这两天又着迷于golang。 听起来是不是有装逼的成分?  勿喷 … 该文章写的有些乱,欢迎来喷 ! 另外文章后续不断更新中,请到原文地址查看更新。 http://xiaorui.cc/?p=2990 今天一直在封闭式开发,针对电商接入SuperSpide适配...
阅读全文 0

实现python redis客户端的的封装定制化

3-17 4,711 views

感叹自己拿来这么大的激情呀,前段时间对分布式的raft感兴趣,这两天又着迷于golang。 听起来是不是有装逼的成分?  勿喷 … 该文章写...
阅读全文 0

使用python fcntl实现本地文件互斥锁

python 3,961 views
文件互斥锁是什么?  他的应用场景又是什么?  这是我前段是开发的一个模块,主要用途是避免了多个程序多个进程需要数据安全.  可能场景我没有描述清楚,简单描述就是,解决多进程下需要的互斥锁的场景.. 对于互斥锁,我开发的,提交过的项目代码已经够多了,比如redis分布式锁,etcd分布式锁,但是就...
阅读全文 0

使用python fcntl实现本地文件互斥锁

11-29 3,961 views

文件互斥锁是什么?  他的应用场景又是什么?  这是我前段是开发的一个模块,主要用途是避免了多个程序多个进程需要数据安全.  可能场景我...
阅读全文 0

关于使用python来实现redis和mysql的连接池

python 5,049 views
有朋友问我连接池是怎么实现的,我曾经写过一个python mysql的连接池库,他的原理就是利用python queue或则是list实现的。具体点就是一开始构造实例化对象的时候,预先在一个队列里放入指定数目的链接对象。  那么这样的话,每次我们要调用链接对象的时候,他会从链接队列里pop一个,如果这个链接对象不...
阅读全文 0

关于使用python来实现redis和mysql的连接池

11-18 5,049 views

有朋友问我连接池是怎么实现的,我曾经写过一个python mysql的连接池库,他的原理就是利用python queue或则是list实现的。具体点就是一开始构造实例化对象...
阅读全文 0

扯扯在开发中python闭包的应用

python 4,241 views
跟同事又聊起了闭包,闭包算是个设计模型,但发现周边的人python闭包用的很少….   我自己时不时会用。 python的闭包除了装饰器之外,有时候懒得写类class。  我就直接用闭包。。  闭包(closure)是函数式编程的重要的语法结构。函数式编程是一种编程范式 (而面向过程编程和面向对象编程也都是...
阅读全文 0

扯扯在开发中python闭包的应用

7-22 4,241 views

跟同事又聊起了闭包,闭包算是个设计模型,但发现周边的人python闭包用的很少….   我自己时不时会用。 python的闭包除了装饰器之外,有时候懒得...
阅读全文 0

使用PriorityQueue和heapq实现基于时间戳的时序优先级队列

python 6,654 views
最近在做一个基于业务的监控系统,当然还是python,他区别于基础监控和那种探测监控。 这次的stormMonitor更多的是scan扫描库和实时的统计…   scan扫描库是,定时的统计计算上个小时的各种数据,不管是从mysql或者是hbase….   实时统计是,线上的几大核心模块自主发出metric信息到mq...
阅读全文 0

使用PriorityQueue和heapq实现基于时间戳的时序优先级队列

7-01 6,654 views

最近在做一个基于业务的监控系统,当然还是python,他区别于基础监控和那种探测监控。 这次的stormMonitor更多的是scan扫描库和实时的统计…   ...
阅读全文 0

python OrderedDict实现有expire和max的队列和缓存服务

python 5,785 views
    周天又寂寞了….今天天气不是太好,有些阴冷,估计大街上的小妞肯定不会穿裙子…   估计不能拿着板凳去看美女的大腿了….        最近一直对服务端的开发很是感兴趣,python本身的数据结构是很容易实现队列或者是缓存的服务的。  我曾经实现一个python...
阅读全文 2

python OrderedDict实现有expire和max的队列和缓存服务

4-19 5,785 views

    周天又寂寞了….今天天气不是太好,有些阴冷,估计大街上的小妞肯定不会穿裙子…   估计不能拿着板凳去看美女的大腿了…...
阅读全文 2

分布式爬虫之python动态获取随机选择出口ip

python 8,022 views
这两天有几个朋友都在问我,你们爬虫的多ip方案是如何搞定的。   其实我们的方案多元化的,根据历史遗留的问题,大部分是采用的分布式http代理的方式,也就是开了n个虚拟机,然后安装http代理的服务,以前是squid做正向代理.  因为squid代理专业是专业,但是不够轻型。So , 用twisted构建了一个...
阅读全文 3

分布式爬虫之python动态获取随机选择出口ip

4-07 8,022 views

这两天有几个朋友都在问我,你们爬虫的多ip方案是如何搞定的。   其实我们的方案多元化的,根据历史遗留的问题,大部分是采用的分布式htt...
阅读全文 3

python实现获取根据日期时间切分的数据库的调度信息

python 5,263 views
哥很是寂寞呀…    寂寞…. …. 年后负责的回溯的任务,数据已经从hbase转移到了ES里面。  替换的原因不是Hbase不行,而是 我们的回溯任务更加的适合用ES全文索引的功能。  这块业务的逻辑,一开始不是我负责的,那哥们当时采用Hbase作为数据的存储,究其原因还是因为没地方...
阅读全文 0

python实现获取根据日期时间切分的数据库的调度信息

3-04 5,263 views

哥很是寂寞呀…    寂寞…. …. 年后负责的回溯的任务,数据已经从hbase转移到了ES里面。  替换的原因不是Hbase不行,而...
阅读全文 0

大并发下socket通信连接时会导致TCP自连接

python 5,177 views
    今天是2015的第二天了, 心情有些不佳,遇到的狗屎问题更是心情不爽 !还好妈蛋的给解决了 !     问题提示说大不大,说小不小的 ~    TCP的自连接就是client和server bind的端口碰上了 !导致出现连接的异常。 用python来模拟TCP自连接的现象。  ...
阅读全文 1

大并发下socket通信连接时会导致TCP自连接

1-02 5,177 views

    今天是2015的第二天了, 心情有些不佳,遇到的狗屎问题更是心情不爽 !还好妈蛋的给解决了 !     问题提示说大不大,说小不小...
阅读全文 1

celery rabbitmq实现任务队列的异步执行

python 8,698 views
前言:       celery这东西在任务调度方面,很有一套的,用了他也有几年了,下面就给大家介绍下我以前使用过celery的项目。 Hello ,最近总是被爬虫,标记下博客的原文地址 blog.xiaorui.cc 对于上面的场景,我曾经用tornado和gevent的方案解决,但是在我的理解范围下,感...
阅读全文 0

celery rabbitmq实现任务队列的异步执行

11-16 8,698 views

前言:       celery这东西在任务调度方面,很有一套的,用了他也有几年了,下面就给大家介绍下我以前使用过celery的项目。 Hel...
阅读全文 0

使用bottle和gevent实现简单批量管理ssh keys项目

运维开发 5,760 views
前言:         话说,以前在人人网负责开发跳板机权限管理的时候,想到了用saltstack key模块做公钥的管理,但是因为最后涉及到saltstack不是太安全,放弃了。貌似现在开源社区里,没有好点的有关ssh key管理的项目。反正闲来无事,搞之 ! 大家关注下我的博客,原文地址: b...
阅读全文 0

使用bottle和gevent实现简单批量管理ssh keys项目

11-16 5,760 views

前言:         话说,以前在人人网负责开发跳板机权限管理的时候,想到了用saltstack key模块做公钥的管理,但是因为最后涉及到sal...
阅读全文 0