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

心路历程之我的阅读书单

文艺 8,055 views
      这些有序的书单是来自于我的印象笔记,京东,淘宝,亚马逊及一些在线pdf阅读列表整理出来的。  整理这些书单花了不少的时间,在整理的过程中还是很有趣的,   看到一些书名时, 会回想起以前读书的场景和当时的工作生活状态.   十分有趣 .      本来是想用爬虫的方...
阅读全文 15

心路历程之我的阅读书单

5-17 8,055 views

      这些有序的书单是来自于我的印象笔记,京东,淘宝,亚马逊及一些在线pdf阅读列表整理出来的。  整理这些书单花了不少的时间,在...
阅读全文 15

python requests response值判断

python 81 views
好久没写文章了,前些日子在忙活婚礼的事情.  9 2 在韩国婚礼算是完美结束了。 一生的另一半算是妥当了,心轻松了,可以放荡了.  这段时间在技术上没太多的思考的,只是碰到几个虾米小问题。 往往问题不大,也会致使你花心思去排解。  今遇到一个reqeusts返回值的一个问题,花了不短时间调,后来发...
阅读全文 0

python requests response值判断

9-15 81 views

好久没写文章了,前些日子在忙活婚礼的事情.  9 2 在韩国婚礼算是完美结束了。 一生的另一半算是妥当了,心轻松了,可以放荡了.  这段时间在...
阅读全文 0

分析openresty redis的长连接问题

redis 205 views
前言:    为了避免被勿喷,标题中提到的openresty坑,其实是 resty库使用不当,或者业务逻辑导致的。  我这边的高频接口多使用openresty构建的api,  这次遇到性能上不去的问题。 通过不断的追加的日志和strace系统调用,发现openresty redis没有使用长连接,更没有连接池….  ...
阅读全文 0

分析openresty redis的长连接问题

8-26 205 views

前言:    为了避免被勿喷,标题中提到的openresty坑,其实是 resty库使用不当,或者业务逻辑导致的。  我这边的高频接口多使用open...
阅读全文 0

Python服务端内存泄露的处理过程

python 299 views
吐槽 内存泄露 ?  内存暴涨 ? OOM ? 首先提一下我自己曾经历过多次内存泄露,到底有几次? 我自己心里悲伤的回想了下,造成线上影响的内存泄露事件有将近5次了,没上线就查出内存暴涨次数可能更多。这次不是最惨,相信也不会是最后的内存的泄露。  以前写过一篇关于内存泄露的问题,...
阅读全文 0

Python服务端内存泄露的处理过程

8-20 299 views

吐槽 内存泄露 ?  内存暴涨 ? OOM ? 首先提一下我自己曾经历过多次内存泄露,到底有几次? 我自己心里悲伤的回想了下,造成线上影...
阅读全文 0

golang redigo lua解决性能问题

Golang,redis 325 views
前言:     我们知道使用redis计数可以使用incrby, hincrby 等计数指令,因为redis的工作线程只有一个,所以保证了并发原子的控制。  由于我们的业务的特殊性,有增有减,有各类状态值的判断,尤其在异常情况下,计数会减到0以下,负数是不能忍的。 所以,我们需要尽量保证各个计数器值是正整数。&nb...
阅读全文 0

golang redigo lua解决性能问题

8-16 325 views

前言:     我们知道使用redis计数可以使用incrby, hincrby 等计数指令,因为redis的工作线程只有一个,所以保证了并发原子的控制。  由...
阅读全文 0

多进程下gevent遇到管道冲突问题

python 433 views
前言: 在我的Python技术群里,有朋友问我一个gevent的问题,在multiprocessing 使用 gevent的时候,为什么会出现管道卡死的情况?   一听到这些字眼,我当时迅速回答出答案, 是由于 坑爹的 monkey.patch_all() 补丁引起的..   一般来说,盲目使用monkey.patch_all()的人,可以说对gevent的实现...
阅读全文 0

多进程下gevent遇到管道冲突问题

8-01 433 views

前言: 在我的Python技术群里,有朋友问我一个gevent的问题,在multiprocessing 使用 gevent的时候,为什么会出现管道卡死的情况?   一听...
阅读全文 0

慢系统调用引起的signal无效问题

python 336 views
前言: 前两天一同事说 遇到一个比较奇妙的问题,说是线程下信号居然无效…    哈哈,我一听注册的信号无效,我内心就知道是怎么个一回事了。 后来经过我的快速排查,也证实了我的想法,确实由于慢系统调用引起signal无效。  在python里,这类场景常见于线程做join阻塞等待的时候...
阅读全文 0

慢系统调用引起的signal无效问题

7-19 336 views

前言: 前两天一同事说 遇到一个比较奇妙的问题,说是线程下信号居然无效…    哈哈,我一听注册的信号无效,我内心就知道是怎么...
阅读全文 0

探讨可持久化高并发队列的实现

Golang,架构设计 507 views
探讨可持久化高并发队列的实现 … …  为什么会有这样的想法 ? 主流的持久化方案分两类: 实时持久化… 异步持久化…  Redis 的队列持久化是怎么实现的? Golang nsq消息队列的持久化是怎么实现的? ...
阅读全文 0

探讨可持久化高并发队列的实现

7-14 507 views

探讨可持久化高并发队列的实现 … …  为什么会有这样的想法 ? 主流的持久化方案分两类: 实时持久化… ...
阅读全文 0

使用dis opcode论证Python的线程安全

python 390 views
群里有不少的朋友来回的问我一个问题。 python线程不是有gil么? 为毛还说计数不是线程安全的么? 那么什么是原子操作?硬件的原子说的是 cpu指令集, 软件的原子可以理解为并发控制,不可被中断,加锁解决。 这也可以理解为线程安全问题。  叫法不同而已,无所谓的。。。 更多人会叫线程安全。 该...
阅读全文 0

使用dis opcode论证Python的线程安全

7-09 390 views

群里有不少的朋友来回的问我一个问题。 python线程不是有gil么? 为毛还说计数不是线程安全的么? 那么什么是原子操作?硬件的原子说的是 cpu指令集...
阅读全文 0

golang实现封装trycatch异常处理

Golang 386 views
社区不少人在谈论 golang 为毛不用trycatch模式,而采用苛刻的recovery、panic、defer组合….    从老外那整了一个trycatch包,感觉不错,拿出来分享下…  Python package main import ( "reflect" ) type TryCatch struct { errChan ...
阅读全文 0

golang实现封装trycatch异常处理

7-06 386 views

社区不少人在谈论 golang 为毛不用trycatch模式,而采用苛刻的recovery、panic、defer组合….    从老外那整了一个trycatch包,感觉不错,...
阅读全文 0

设计实现ringbuffer无锁队列(lock free queue)

架构设计 598 views
前两天跟同事交流了 无锁队列的问题,发现不少人对这个lock free的概念有些匮乏,这里就简单写个ringbuffer实现lock free的设计理念。  这里拿python举例子,ringbuffer其实就是个数组,单纯的数组结构肯定不能实现线程安全问题。 该文章写的有些乱,欢迎来喷 ! 另外文章后续不断更新中,请到原文地址查看更新...
阅读全文 0

设计实现ringbuffer无锁队列(lock free queue)

6-24 598 views

前两天跟同事交流了 无锁队列的问题,发现不少人对这个lock free的概念有些匮乏,这里就简单写个ringbuffer实现lock free的设计理念。  这里拿python...
阅读全文 0

python cffi调用sync实现原子计数及cas

python 652 views
通常python实现原子计数是需要加锁解决的, 我们知道,像count += 1 这种操作不是原子的。一个加法操作,本质是分成三步的: 该文章写的有些乱,欢迎来喷 ! 另外文章后续不断更新中,请到原文地址查看更新.  http://xiaorui.cc/?p=4613 程序表面上来说: Python 1...
阅读全文 0

python cffi调用sync实现原子计数及cas

6-20 652 views

通常python实现原子计数是需要加锁解决的, 我们知道,像count += 1 这种操作不是原子的。一个加法操作,本质是分成三步的: 该文章写的有些乱,欢...
阅读全文 0

技术分享之《Python高级内存管理》

python,技术分享 537 views
    前些日子朋友让我过去坐坐,顺便做个关于python的技术分享。话题有他们来挑选的,出了几个主题,最后定了python内存管理话题。  这次ppt做的简而易懂,图多字少,尽量少输出高大上的概念,多拓扑一些实用的概念。 我相信大家有些cpython源码的基础是可以看懂ppt的。  如果有问题,大家可以跟...
阅读全文 0

技术分享之《Python高级内存管理》

6-13 537 views

    前些日子朋友让我过去坐坐,顺便做个关于python的技术分享。话题有他们来挑选的,出了几个主题,最后定了python内存管理话题。  这次pp...
阅读全文 0

redis多线程服务端设计的一些思考

redis,高性能 866 views
    最近有看redis server的源码,想实现一个多线程的版本。在大多数场景下单个redis实例是满足需求的,但如果ops的量级过十几万,连接数超过几k,会有明显的cpu接近跑满情况。 时常会想起以前维护几百个redis实例的场景,很是痛苦…  痛苦的原因,主要因为没时间把redis服务抽象成自动化和资源化...
阅读全文 0

redis多线程服务端设计的一些思考

6-07 866 views

    最近有看redis server的源码,想实现一个多线程的版本。在大多数场景下单个redis实例是满足需求的,但如果ops的量级过十几万,连接数超过几k...
阅读全文 0

python多进程的cpu亲和性绑定

python 812 views
关于什么是cpu的亲和性的问题,大家自己去搜吧,不想在这里阐述了这讲义了。 简单说,就是让进程不要可哪跑,给定一个cpu core的范围,这样可以减少cs上下文切换后cpu cache miss的情况,节省了主存复制到cpu cache的时间。 该文章写的有些乱,欢迎来喷 ! 另外文章后续不断更新中,请到原文地址查看更新. &...
阅读全文 0

python多进程的cpu亲和性绑定

5-27 812 views

关于什么是cpu的亲和性的问题,大家自己去搜吧,不想在这里阐述了这讲义了。 简单说,就是让进程不要可哪跑,给定一个cpu core的范围,这样可以减少cs...
阅读全文 0

技术分享之微服务那些事儿

技术分享 646 views
分享的主题涉及内容有: 微服务架构,微服务的演变,优缺点 服务发现设计,服务之间的调用,中间件的选择,鉴权,session,熔断,降级,限频…. 缓存系统,高效的缓存,避免缓存穿透,预热 分库分表,数据路由,分库分表的索引效率,查询优化,冗余表数据 分布式事务,2pc, 3pc,消息队列解决...
阅读全文 0

技术分享之微服务那些事儿

5-24 646 views

分享的主题涉及内容有: 微服务架构,微服务的演变,优缺点 服务发现设计,服务之间的调用,中间件的选择,鉴权,session,熔断,降级,限频̷...
阅读全文 0

python3.6使用aiohttp开发的登陆注册

python 892 views
闲来无事,用python3.6 aiohttp改了一个登陆系统。 不能说系统,就一个demo代码而已。 话说python3.6增了不少的特性,对于我来说比较跟兴趣的是 –with-dtrace 探针功能 和  优化压缩的dict数据结构。  官方测试有说过 python3.6的dict比先前占用内存减少25%左右,但我用2.7对比测试过大小kv,...
阅读全文 0

python3.6使用aiohttp开发的登陆注册

5-13 892 views

闲来无事,用python3.6 aiohttp改了一个登陆系统。 不能说系统,就一个demo代码而已。 话说python3.6增了不少的特性,对于我来说比较跟兴趣的是 ...
阅读全文 0

解决rabbitmq消息队列的顺序及重复消费问题

python 1,192 views
五一期间去韩国游玩,顺便去了朋友公司扯淡去了。 所谓的扯淡,就是过去听技术分享,有python, golang, devops,docker一些话题。总的来说,技术方面跟国内还是有一些差距的。  正题开始,因为业务的各方面的强需求,我们使用了rabbitmq作为消息队列,利用rabbitmq的ack机制来确认消息的可靠性。 但是rab...
阅读全文 0

解决rabbitmq消息队列的顺序及重复消费问题

5-04 1,192 views

五一期间去韩国游玩,顺便去了朋友公司扯淡去了。 所谓的扯淡,就是过去听技术分享,有python, golang, devops,docker一些话题。总的来说,技术方面跟国...
阅读全文 0

纠结ps和top的cpu占用率不一致问题

python,内核 977 views
恼怒呀,一个大大的失误,让我折腾了近几个小时.   先表明下这是我自己的原因,问题体现在 linux下 ps aux 和 top 查询的cpu信息不一致导致 ! 该文章写的有些乱,欢迎来喷 ! 另外文章后续不断更新中,请到原文地址查看更新.  http://xiaorui.cc/?p=4470 前因后果是这样的! 我这边写了...
阅读全文 0

纠结ps和top的cpu占用率不一致问题

4-26 977 views

恼怒呀,一个大大的失误,让我折腾了近几个小时.   先表明下这是我自己的原因,问题体现在 linux下 ps aux 和 top 查询的cpu信息不一致导致 ! ...
阅读全文 0

分布式cdn刷新预缓存系统遇到的坑

架构设计 1,013 views
话题是,构建分布式cdn刷新预缓存遇到的坑。     cdn刷新系统由Openresty + Python开发的,使用redis做消息队列,未避免丢失信息,在设计上规避了大概率丢失消息的可能,保证了绝大数场景的消息可靠性。 现如今,该系统单机每秒可以承载7K的刷新预缓存,所有主控及分控节点加起来可以到每秒10W的刷...
阅读全文 0

分布式cdn刷新预缓存系统遇到的坑

4-10 1,013 views

话题是,构建分布式cdn刷新预缓存遇到的坑。     cdn刷新系统由Openresty + Python开发的,使用redis做消息队列,未避免丢失信息,在设...
阅读全文 0

构建高效的python requests长连接池

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

构建高效的python requests长连接池

4-03 1,522 views

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

python扩展rocksdb的时序zset数据结构

python 1,152 views
不啰里啰嗦了,关于leveldb、rocksdb的实现细节有兴趣的朋友自己搜搜,当然我后期会整理下leveldb的大概实现原理,我曾经花过不少心力还研究leveldb、rocksdb的设计及代码实现,受益匪浅的! 时常会回忆起leveldb的Lsm、Memtable、SStable、Manefest、log的设计。 正是因为懂了这些原理后你才更有把握在生产环境中使用...
阅读全文 0

python扩展rocksdb的时序zset数据结构

3-21 1,152 views

不啰里啰嗦了,关于leveldb、rocksdb的实现细节有兴趣的朋友自己搜搜,当然我后期会整理下leveldb的大概实现原理,我曾经花过不少心力还研究leveldb、rocks...
阅读全文 0