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

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

技术分享 21 views
分享的主题涉及内容有: 微服务架构 服务发现设计 缓存系统 分库分表 分布式事务 数据一致性 异地多活 性能监控 问题追踪 自动化测试 容器部署 已经把相关的文件放到社区了,有兴趣的朋友可以看看。 pdf地址: http://xiaorui.cc/micro_service.pdf p...
阅读全文 0

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

5-24 21 views

分享的主题涉及内容有: 微服务架构 服务发现设计 缓存系统 分库分表 分布式事务 数据一致性 异地多活 性能监控 ...
阅读全文 0

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

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

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

5-13 95 views

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

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

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

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

5-04 179 views

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

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

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

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

4-26 181 views

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

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

架构设计 278 views
话题是,构建分布式cdn刷新预缓存遇到的坑。     系统由Openresty + Python构建开发的,使用redis做消息队列,未避免丢失信息,在设计上实现了基于调度器的消息确认机制。 现如今,该系统单机每秒可以承载5K的刷新预缓存,所有主控及分控节点加起来可以到每秒10W的刷新量级。  该文章写...
阅读全文 0

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

4-10 278 views

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

构建高效的python requests长连接池

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

构建高效的python requests长连接池

4-03 411 views

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

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

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

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

3-21 384 views

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

基于ringbuffer实现的高性能定时器

python 449 views
      这段时间研究了一个基于ringbuffer的定时器设计方案,思路设计上还是相当有趣的!打算在即时通信实现心跳定时器。以前一聊高性能定时器不外乎就那么几种方法,不是二叉堆,就是epoll timerfd。 我个人感觉来说但后者更适合监听就近到期的任务,而使用ringbuffer适合任务很密集的场景,当然从技术...
阅读全文 0

基于ringbuffer实现的高性能定时器

3-14 449 views

      这段时间研究了一个基于ringbuffer的定时器设计方案,思路设计上还是相当有趣的!打算在即时通信实现心跳定时器。以前一聊高性能定时...
阅读全文 0

源码分析tornado gen.sleep非阻塞

python,tornado 478 views
前言:       前两天去菲律宾长滩岛度假去了,有段时间没有更新技术文章了。简单说说度假期间发生的事情吧,可能因为心情和身体不理想,所以也没做什么有趣的水上运动,只是在沙滩上看着大海发愣罢了,时常是一呆一上午,再一呆又一个下午。 中间有几个黑不溜秋的妹子跟我搭讪,我也实在没有心气去搭...
阅读全文 0

源码分析tornado gen.sleep非阻塞

3-06 478 views

前言:       前两天去菲律宾长滩岛度假去了,有段时间没有更新技术文章了。简单说说度假期间发生的事情吧,可能因为心情和身体不理想,...
阅读全文 0

线上mysql优化器误判引起慢查询

python 467 views
前言:      收到疯狂的慢查询及请求超时报警,通过metrics分析出来自mysql请求的异常,cli —> show proceslist 看到很多慢查询。 先前该sql是没有的,后面因为数据量的增长才出现了这问题。 虽然feeds表大到一个亿,但因为feeds流信息有近期热的特征,所以不是因为 innodb_buffer_poo...
阅读全文 0

线上mysql优化器误判引起慢查询

2-26 467 views

前言:      收到疯狂的慢查询及请求超时报警,通过metrics分析出来自mysql请求的异常,cli —> show proceslist 看到很多...
阅读全文 0

不要粗暴的销毁python线程

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

不要粗暴的销毁python线程

2-22 689 views

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

深入理解uwsgi和gunicorn网络模型[上]

python 848 views
前言:        去年10月份建了一个python技术群,到现在为止人数已经涨到700人了。最一开始我经常在群里回应大家的问题,不管是简单还是困难的,我都会根据自己的经验来交流。 让人新奇的是一些初学者关注最多的话题不是怎么学好python,反而是高并发,高性能这类高大上的话题。   ...
阅读全文 0

深入理解uwsgi和gunicorn网络模型[上]

2-16 848 views

前言:        去年10月份建了一个python技术群,到现在为止人数已经涨到700人了。最一开始我经常在群里回应大家的问题,不管是简单...
阅读全文 0

python uvloop异步框架学习

python 838 views
uvloop 是python圈子里近两年被抄的相当火热的高性能框架,uvloop是个高性能的异步非阻塞框架,他是完整的asyncio事件循环的替代品,建立在libuv基础之上,由Cython编写而成。Uvloop最终目的使得Asyncio更加快速。    根据我个人的测试结果分析uvloop性能确实要比gevent要高,但是易用性没有gevent来的舒...
阅读全文 0

python uvloop异步框架学习

2-05 838 views

uvloop 是python圈子里近两年被抄的相当火热的高性能框架,uvloop是个高性能的异步非阻塞框架,他是完整的asyncio事件循环的替代品,建立在libuv基础之上,...
阅读全文 0

分析apscheduler的定时调度器源码

python 618 views
前言: 跟大家在群里聊了关于apscheduler的一些话题,大家尤其对他的时间管理感兴趣, 趁现在有空,花点时间做个分享。  其实在以前是写过apscheduler的源代码分析文章,写得太泛了,这次主要着重于定时器的相关逻辑。  python下的定时任务框架有那么几个选择,像sched,celery,apscheduler都可以做,相...
阅读全文 0

分析apscheduler的定时调度器源码

1-22 618 views

前言: 跟大家在群里聊了关于apscheduler的一些话题,大家尤其对他的时间管理感兴趣, 趁现在有空,花点时间做个分享。  其实在以前是写过apschedul...
阅读全文 0

开源模块之uwsgi多功能测试客户端

python 631 views
快过年了,也没什么心思工作了,上面也没安排什么繁重的工作了。 现在有大把的时间干自己喜欢的事情,一直都想下功夫看看uwsgi server的实现源码及uwsgi的协议。以前总是根据喜好挑着代码片段看,不系统。 先前遇到过python gunicorn 和 uwsgi 在不同io模型下性能差异问题,导致了下面这些一系列的Q&A , ...
阅读全文 0

开源模块之uwsgi多功能测试客户端

1-19 631 views

快过年了,也没什么心思工作了,上面也没安排什么繁重的工作了。 现在有大把的时间干自己喜欢的事情,一直都想下功夫看看uwsgi server的实现源码及uwsg...
阅读全文 0

让人无语的MySQL嵌套事务

DB 791 views
      MySQL是支持嵌套事务的,但是没多少人会这么干的…. 前段时间在国外看到一些老外在争论MySQL嵌套事务的场景必要性。 逗死我了, 这嵌套的鬼畜用法还有啥场景必要性。   跟以前的dba同事聊过, 得知,在任何场景下都不要使用MySQL嵌套的事务。 那么使用MySQL嵌套事务会遇到...
阅读全文 0

让人无语的MySQL嵌套事务

1-14 791 views

      MySQL是支持嵌套事务的,但是没多少人会这么干的…. 前段时间在国外看到一些老外在争论MySQL嵌套事务的场景必要性。 逗死我了,...
阅读全文 0

如何设计rocksdb的list及hash数据结构

DB 875 views
前言: 我想大家都知道 ssdb ,pika吧,这两个nosq都是兼容redis协议的存储。  底层的存储用的是kv结构的leveldb,后台这两nosq都渐进到rocksdb , 因为在数据量大的情况下 rocksdb性能更高。 RocksDB支持一次获取多个K-V,还支持Key范围查找。LevelDB只能获取单个Key。RocksDB提供一些方便的工...
阅读全文 1

如何设计rocksdb的list及hash数据结构

1-09 875 views

前言: 我想大家都知道 ssdb ,pika吧,这两个nosq都是兼容redis协议的存储。  底层的存储用的是kv结构的leveldb,后台这两nosq都渐进到ro...
阅读全文 1

技术分享之《mysql acid的设计实现》

DB,技术分享 883 views
     发现不少开发同学对mysql的事务了解不够深,其实也见过一些dba同学们,对于acid也是一知半解的….  哈哈,当然对于我们大多数人来说,只管用就可以了。 但如果想更进一步,那么还是很好必要理解mysql的事务实现原理的。      当初在乐视开发mysql管理系统的时候,还...
阅读全文 0

技术分享之《mysql acid的设计实现》

1-02 883 views

     发现不少开发同学对mysql的事务了解不够深,其实也见过一些dba同学们,对于acid也是一知半解的….  哈哈,当然对于我们大多...
阅读全文 0

小测python3.5高性能sanic异步框架

python 1,401 views
    Python3.4 和 Python3.5 有个较大区别是 asyncio库进化到 async关键字了.    python3.5 当然是向下兼容的,官方在3.5这个版本里推进 async 、await 关键字.    async 其实跟 @asyncio.coroutine  相等的,  await是跟 asyncio 的 yield from 差不多的.  python 2.7 ...
阅读全文 0

小测python3.5高性能sanic异步框架

12-30 1,401 views

    Python3.4 和 Python3.5 有个较大区别是 asyncio库进化到 async关键字了.    python3.5 当然是向下兼容的,官方在3.5这个版本里推...
阅读全文 0

redis keyspace键通知的那些事儿

redis 807 views
    在Redis2.8.0版本的时候,推出 Keyspace Notifications future。   Keyspace Notifications 此特性允许客户端可以以 订阅/发布(Sub/Pub)模式,接收那些对数据库中的键和值有影响的操作事件。这些操作事件具体来说,就是 hash , del, expire , set , lpop 等。 该文章写的有些乱,欢迎来喷 ! ...
阅读全文 0

redis keyspace键通知的那些事儿

12-22 807 views

    在Redis2.8.0版本的时候,推出 Keyspace Notifications future。   Keyspace Notifications 此特性允许客户端可以以 订阅/发布(Sub/P...
阅读全文 0

为什么不建议innodb使用亿级大表

DB 1,316 views
上下文:        在Facebook上看到了一个比较新颖的mysql技术话题, 为什么不推荐在mysql下使用大表 , 或者说 什么情况下可以用大表 .     我们经常可能听到别人老生常谈过,不要让表太大…   但是大表又是怎么定义的, 多大的数据表是所谓的大表…  ...
阅读全文 1

为什么不建议innodb使用亿级大表

12-08 1,316 views

上下文:        在Facebook上看到了一个比较新颖的mysql技术话题, 为什么不推荐在mysql下使用大表 , 或者说 什么情况下可以...
阅读全文 1