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

源码分析peewee orm的读写分离

python 175 views
就不再长篇大论了…   我相信很多朋友都在使用ORM库来代替繁杂的原生的sql语句。 但如果有特需一点的需求,比如要主从分离?  我们以前的做法很是暴力,直接修改peewee的源码,当他在调用select相关函数的时候,会重置一个mysql db连接,当然是改成从库。   近期才发现peewee的BaseModel有read_sl...
阅读全文 0

源码分析peewee orm的读写分离

8-14 175 views

就不再长篇大论了…   我相信很多朋友都在使用ORM库来代替繁杂的原生的sql语句。 但如果有特需一点的需求,比如要主从分离?  我们以前的做...
阅读全文 0

关于gevent queue遭遇hub.LoopExit问题

python 293 views
我的上下文 “ gevent.hub.LoopExit: This operation would block forever”   ,   使用过gevent queue的朋友估摸会遇到这类问题把?   我几年前就遇到过,当时因为各种原因,可以理解为懒惰,没有深究gevent的报错.     前两天写个小东西的时候,又再次遇到了block fo...
阅读全文 1

关于gevent queue遭遇hub.LoopExit问题

8-07 293 views

我的上下文 “ gevent.hub.LoopExit: This operation would block forever”   ,   使用过gevent queue的朋友估摸会遇到这...
阅读全文 1

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

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

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

7-30 410 views

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

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

python 346 views
造一个轮子 对的,我又重新造了一个轮子! 关于周期定时器的轮子。 以前在python环境下,用二叉堆和gevent later写过单机的定时器,后来借用redis的sorted set 加lua实现了分布式的定时器任务管理。 但我坚决不满足, 我一直想实现一个类似libevent,libev那种包含各种功能的事件库,但个人能力及其有限… &nbs...
阅读全文 0

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

7-29 346 views

造一个轮子 对的,我又重新造了一个轮子! 关于周期定时器的轮子。 以前在python环境下,用二叉堆和gevent later写过单机的定时器,后来借用redis的sort...
阅读全文 0

小探python thrift通信框架的设计

python 619 views
上下文环境 先废话连篇,老生常谈说下Thrift 是什么?  他是个功能强大的通信协议组件,附带了各级socket服务,自成RPC服务.   我们知道大多数所谓的RPC远程调用服务都是基于http来开发的,为毛?  因为够简单呀。  对于server端 和 客户端来说,我只需要把函数名及参数序列化扔到对端就可以...
阅读全文 0

小探python thrift通信框架的设计

7-24 619 views

上下文环境 先废话连篇,老生常谈说下Thrift 是什么?  他是个功能强大的通信协议组件,附带了各级socket服务,自成RPC服务.   我们知道大...
阅读全文 0

论我为什么霸气的从https切换回http

web 707 views
    先介绍一下我的上下文,我的博客是http的模式,但是想做成https安全加密的模式,就图个帅气。 话说博客类的网站很少有人用使用https。 据说google 会针对https的网站加一些权重,可提高你的命中几率,然后我居然信了。 对于证书的申请, 我不可能花钱去买,这里有两个选择,startSSL和let’s ...
阅读全文 2

论我为什么霸气的从https切换回http

7-18 707 views

    先介绍一下我的上下文,我的博客是http的模式,但是想做成https安全加密的模式,就图个帅气。 话说博客类的网站很少有人用使用https。 ...
阅读全文 2

关于大型监控系统的高性能组件设计

python,运维开发,高性能 1,144 views
      以前有幸参与过一个分布式监控系统开发,有一些所谓的设计和开发的经验,但苦于公司的内部系统无法开源,所以也就藏着掖着。   前两天有途牛网和饿了么的朋友问我关于监控系统的事,这尼玛正好点燃了我这高射炮,可以有个地好好释放了下。 记得13年的时候,跟金山猎豹的斌哥聊过一些设计方...
阅读全文 2

关于大型监控系统的高性能组件设计

7-16 1,144 views

      以前有幸参与过一个分布式监控系统开发,有一些所谓的设计和开发的经验,但苦于公司的内部系统无法开源,所以也就藏着掖着。   ...
阅读全文 2

怎么用存储过程来提高事务的并发

DB,python 1,048 views
在描述使用存储过程解决事务并发之前,简单描述下上下问。  我做了一个简单积分的对外接口,因为需要做几个表的查询和创建更改,在调用特别频繁的时候,会发现小范围阻塞的情况,作为同步的接口,这种时间消耗也难让人接受…   事务是做什么的?  他可以保证你的一系列dml语句要么都做,要...
阅读全文 1

怎么用存储过程来提高事务的并发

7-13 1,048 views

在描述使用存储过程解决事务并发之前,简单描述下上下问。  我做了一个简单积分的对外接口,因为需要做几个表的查询和创建更改,在调用特别频繁的时候...
阅读全文 1

技术分享 《分布式一致性raft算法实现原理》

Golang,技术分享 1,228 views
       这段时间跟同事聊了不少分布式系统中的常用算法协议,中间有聊到分布式一致性的话题,当然我们对一致性理解都是那种介绍的层次。  哈哈 , 后来用了心思去学习分布式一致性协议 raft,  现在有些心得,就拿出来给同事分享下。           &nb...
阅读全文 5

技术分享 《分布式一致性raft算法实现原理》

7-08 1,228 views

       这段时间跟同事聊了不少分布式系统中的常用算法协议,中间有聊到分布式一致性的话题,当然我们对一致性理解都是那种介绍的层次...
阅读全文 5

源码分析peewee的异常重试

python 1,368 views
……源码分析peewee的异常重试 … 该文章写的有些乱,欢迎来喷 ! 另外文章后续不断更新中,请到原文地址查看更新.  http://xiaorui.cc/?p=3520 Peewee 是个好用的orm,我们这边遇到复杂的业务逻辑都会使用orm来减轻我们写sql语句代码的痛苦。 几十个表,每个表都有几十个字段,时常要...
阅读全文 0

源码分析peewee的异常重试

7-05 1,368 views

……源码分析peewee的异常重试 … 该文章写的有些乱,欢迎来喷 ! 另外文章后续不断更新中,请到原文地址查看更新.  http://xiaorui...
阅读全文 0

开源模块之python函数调用性能统计

python 1,424 views
群里有个人问我最近怎么不活跃了。 问我这话的人,一看就知道工作不饱和。  话说最近有些忙,走了个小弟, 然后各种开发迭代在后面排着,这堆任务够我跟小弟忙一段时间了。  公司缺高级水平的python程序员, 有兴趣的朋友可以跟我联系。  该文章写的有些乱,欢迎来喷 ! 另外文章后续不断更新中,请...
阅读全文 0

开源模块之python函数调用性能统计

6-28 1,424 views

群里有个人问我最近怎么不活跃了。 问我这话的人,一看就知道工作不饱和。  话说最近有些忙,走了个小弟, 然后各种开发迭代在后面排着,这堆任务够我...
阅读全文 0

记一次压测引起的nginx负载均衡性能调优

运维 1,664 views
     这边有个性能要求极高的api要上线,这个服务端是golang http模块实现的。在上线之前我们理所当然的要做压力测试。起初是 “小白同学” 起头进行压力测试,但当我看到那压力测试的结果时,我也是逗乐了。   现象是,直接访问Golang http api是每秒可以到3.5W的访问,  为了理论承受更强的QP...
阅读全文 0

记一次压测引起的nginx负载均衡性能调优

6-26 1,664 views

     这边有个性能要求极高的api要上线,这个服务端是golang http模块实现的。在上线之前我们理所当然的要做压力测试。起初是 “小白同学” ...
阅读全文 0

技术分享之《cdn的设计原理及架构》

python,技术分享,运维 1,773 views
      这次公司大队人马去乌镇庆祝十周年,过程结果都很happy,抽奖还中了人民币,这运气没的说呀。 在乌镇西栅的小河边,我们量子团队一边聊MM,一边聊cdn的东西,很是happy。 同事们都是纯开发出身,对于运维的基础架构没有深入了解过。 在同事的鼓吹下,我觉得有必要跟大家好好聊聊cdn的各种场景,...
阅读全文 4

技术分享之《cdn的设计原理及架构》

6-21 1,773 views

      这次公司大队人马去乌镇庆祝十周年,过程结果都很happy,抽奖还中了人民币,这运气没的说呀。 在乌镇西栅的小河边,我们量子团队一边...
阅读全文 4

使用python封装sd_notify到systemd

python 1,343 views
        我们知道Centos7之后搁浅Sysvinit,改用复杂功能又及其强大,又特别惹人烦恼的systemd.  这个名字取得很大气,直接用system + d .   Sysvint从unix时期就已经早早的存在了,在各大国外的社区都很不少大牛针对init 和 systemd进行讨论,目前来看支持Sysvinit的人多点。   ...
阅读全文 0

使用python封装sd_notify到systemd

6-16 1,343 views

        我们知道Centos7之后搁浅Sysvinit,改用复杂功能又及其强大,又特别惹人烦恼的systemd.  这个名字取得很大气,直接用sys...
阅读全文 0

技术分享 《大话redis设计实现》

python,技术分享 1,807 views
        这次又给朋友公司 (Naver) 做了一次技术分享,主题是《大话redis设计实现》 ,  里面的内容来自 学习《redis设计与实现》 和 阅读redis源码的心得。   话说, 我用redis的历史也有些时间了, 应该有4、5 年了。  运维方面从最开始单机扩展成主从,从单主从到proxy方案,现在...
阅读全文 1

技术分享 《大话redis设计实现》

6-11 1,807 views

        这次又给朋友公司 (Naver) 做了一次技术分享,主题是《大话redis设计实现》 ,  里面的内容来自 学习《redis设计与实现》...
阅读全文 1

理解linux网络的tcp超时和重传

内核,运维 1,324 views
       怎么突然会说起这么底层的话题, 这两天跟小白同学聊了GO服务端开发的事情,重点在于tcp重传个超时的事情。 有不少写服务端的人,包括我自己很多时候都直接调用tcp的框架写业务。 因为socket本身就屏蔽了tcp协议的事务,让我们更专注于业务本身,所以造成了不少朋友对于tcp不甚理解。 &nbs...
阅读全文 1

理解linux网络的tcp超时和重传

6-05 1,324 views

       怎么突然会说起这么底层的话题, 这两天跟小白同学聊了GO服务端开发的事情,重点在于tcp重传个超时的事情。 有不少写服务端的...
阅读全文 1

聊聊threading的condition条件变量

python 1,852 views
     Python下有很多的Lock锁,比如Mutex,Rlock,semaphore…  这些都是比较常用的Lock锁。  然而很多时候我们都忘记threading下还有一个叫做condition的条件变量。   condition内部是含有锁的逻辑,不然也没法保证线程之间的同步。  该文章写的有些乱,欢迎来喷 ! ...
阅读全文 0

聊聊threading的condition条件变量

5-31 1,852 views

     Python下有很多的Lock锁,比如Mutex,Rlock,semaphore…  这些都是比较常用的Lock锁。  然而很多时候我们都忘记threa...
阅读全文 0

技术分享 《python gil的那些事儿》

python,技术分享 1,028 views
      前段时间一个老友叫我过去做一场技术分享,盛情难却,又有大保健做挟持,不得已还是要花点心思来准备一下。  我承认自己是一个不善于演讲的人,时常会感到词穷,激动的场景下话题有些偏离。 我知道自己这个缺点,所以一直在克服它。  这里也建议大家多做一些分享活动,哪怕技术分享也...
阅读全文 2

技术分享 《python gil的那些事儿》

5-30 1,028 views

      前段时间一个老友叫我过去做一场技术分享,盛情难却,又有大保健做挟持,不得已还是要花点心思来准备一下。  我承认自己是一个...
阅读全文 2

聊聊python libev事件库的定时器调度

python 892 views
libev 是个比libevent更加简洁的事件库,python的gevent就是使用libev来实现的。  pyev是libev的python封装版本。 下面是个pyev的定时器例子。  Python import signal import pyev def sig_cb(watcher, revents): print("got SIGINT") loop = watc...
阅读全文 0

聊聊python libev事件库的定时器调度

5-28 892 views

libev 是个比libevent更加简洁的事件库,python的gevent就是使用libev来实现的。  pyev是libev的python封装版本。 下面是个pyev的定时器例子。  ...
阅读全文 0

gevent通过socket补丁实现redis.py非阻塞

python 1,086 views
如题,gevent是使用socket补丁把redis.py改成异步非阻塞化. 异步非阻塞是个有点虚的话题,在python下使用gevent确实解决了io阻塞的问题。 业务场景需要python gevent redis.py的组合,因redis.py涉及到网络io的交互,果断的在开源社区找找gevent有关redis的模块。   该文章写的有些乱,欢迎来喷 ! 另外文...
阅读全文 0

gevent通过socket补丁实现redis.py非阻塞

5-23 1,086 views

如题,gevent是使用socket补丁把redis.py改成异步非阻塞化. 异步非阻塞是个有点虚的话题,在python下使用gevent确实解决了io阻塞的问题。 业务场景需要pyth...
阅读全文 0