关闭

2016年终总结--一个Python程序员的跨界之旅

时间过得真快,感觉15年年终总结刚写完,16年就结束了,看了blog,16年就写了可怜的8篇,对我来说16年还算顺风顺水。真正可能出乎意料的是年底我离开了呆了2年半的龙图游戏,暂时放弃了用了3年半的Python,转向了Java领域和数据仓库,这也算是跨界了吧。。。家庭16年老婆和闺女来北京住了小半年,那段时间是很幸福的一段时光,最终还是不适应北京的天气和雾霭,老婆和闺女逃离了北京,我又恢复了“单身”...
阅读(2732) 评论(8)

wrk 现代HTTP压测工具,动态构建请求

HTTP压测工具通用的比如apache ab, httpload, 但碰到有些请求是动态构建的,比如需要时间校验,需要做md5加密,这些工具就比较尴尬了。还好有wrk(https://github.com/wg/wrk)你可以使用,可以内嵌lua脚本,通过luajit加速,当然如果需要做分布式压测,可以试试locust(https://github.com/locustio/locust),使用了P...
阅读(1454) 评论(0)

openresty+consul动态配置更新(服务变更发现)

最近在做数据收集平台,用openresty往kafka里push数据,不管是kafka broker也好,还是一个配置也好,希望做到动态更新,不需要reload openresty。尤其是针对接口调用的认证,配置很少,如果每次都去redis或mysql中去取感觉也没有必要,直接用lua做配置表无疑性能提高不少。再说kafka broker问题,虽说producer会感知到broker的增加(http...
阅读(3294) 评论(0)

Nginx容器动态流量管理方案-nginx-upsync-module+nginx_upstream_check_module初体验

缘起最近一直在研究日志收集系统的框架,之前在线游戏的数据发送都是由游戏服务器发送的,我来之前一直是rsync传输,也还算稳定。但现在上了单机游戏,只能由手机客户端直接发送,dau比较高,最近很火的<>在海外上线,一个星期dau已经达到千万级别。初步方案,lvs做4层负载均衡,下挂nginx做7层转发,数据直接入kafaka。一直不太喜欢通过reload修改nginx upstream,刚好...
阅读(4719) 评论(0)

100行代码实现gevent调度模型

昨天心血来潮看了https://github.com/locustio/locust/的源码,经常用ab或者httpload的童鞋可以看下locust的代码,支持分布式运行,通过gevent可以单机开N个协程模仿并发用户,分布式rpc用了zmq的PUSH,PULL模式,不得不说zeromq的确简洁。2年前研究过gevent,那时就想用纯Python模拟一下调度模型,后来也就不了了之了。原理其实和ge...
阅读(1223) 评论(0)

# mysql CREATE TABLE IF NOT EXISTS metadata lock坑

mysql CREATE TABLE IF NOT EXISTS metadata lock坑今天早上被一声声警报声给吵醒,拿起手机一看,too many processes,proc.num达到了529,我一愣,什么情况,这报警是第一次遇到,还是同时3台服务器都报警。赶快登陆服务器看看,ps一下的确是很多进程,而且都应该早就结束了,于是猜测试mysql的问题,show processlist一看,...
阅读(1502) 评论(0)

记一次django queryset的缓存优化

缘起看着我们单表记录快7000万行,突破亿行已经指日可待了,于是打算数据库分表,对应用层相对透明的做法就是引入数据库中间件,业界虽然有一些方案,比如阿里,360的,但大部分都是java或c的,最后看向了https://github.com/flike/kingshard,这是golang写的,代码质量还是挺高的,对我的胃口,于是先把kingshard当做代理用起来,发现了以前一直没有发现的问题。dj...
阅读(3206) 评论(0)

git远程外网地址变内网怎么破(ssh本地端口转发)

git远程外网地址变内网怎么破(ssh本地端口转发)?最近给longtubas上了负载均衡,相对来说我们并发并不高,但希望可用性尽可能高,本来打算用不饱和的机器做个lvs集群的,但IDC说给个额外的公网ip需要申请机器,推荐我们用云自带的负载均衡,倒也省的自己配置,IDC把之前公网ip绑定到负载均衡器上了,这导致我们搭建在服务器上的gitlab不可用了,折腾了一下,使用ssh本地端口转发解决了。当然...
阅读(5191) 评论(0)

玩转Python让人讨厌的编码问题

Python的编码问题基本是每个新手都会遇到的坎,但只要完全掌握了就跳过了这个坑,万变不离其中,这不最近我也遇到了这个问题,来一起看看吧。事情的起因是review同事做的一个上传功能,看下面一段代码,self.fp是上传的文件句柄fpdata = [line.strip().decode('gbk').encode('utf-8').decode('utf-8') for line in self....
阅读(16802) 评论(0)

2015年终总结

拖了好多天,一直想写,却一直没有动笔,赶在15年年会后的第一个周末也是随缘。家庭毕业2年半了,这两年走完了很多人很多年走完的路,结婚,生子。虽说速度有点过快,甚至有时自己都感觉不太真实,但一切都挺美好,生活就是这样不需要刻意的去安排去准备,一切随缘。看着闺女天天无忧无虑的玩耍,总是让我心情大好,同时也让我好奇,小孩子到底在想什么?15年欠了你们很多陪伴,16年我会加倍弥补。工作来龙图游戏1年半了,1...
阅读(2929) 评论(8)

如何面试Python后端工程师?

前一段时间有人在知乎提了http://www.zhihu.com/question/33398583,如何面试Python工程师?我斗胆回答了一下, http://www.zhihu.com/question/33398583/answer/59017861吃午饭的时候我就一直在想这个问题,我觉得重点不是Python而是后端工程师,因为Python只是系统的一部分,linux基础操作要熟吧,sql...
阅读(17808) 评论(19)

Linux内核参数详解

内核参数详解长期更新SYN_RECV服务端收到sys,还未发出syn+ack 1.net.ipv4.tcp_synack_retries 默认值5,linux对应1+2+4+..32=2^6-1=63s2.net.ipv4.tcp_syncookies 应该设置为1,防止SYN Flood。 处在SYN_RECV的TCP连接称为半连接,存储在SYN队列。大量SYN_RECV会导致队列溢出,后...
阅读(7165) 评论(0)

Effective TCP/IP Programming读书笔记

TCP/IP深入思考TCP/IP这是我读Effective TCP/IP Programming的 读书笔记和思考,以及做的一些实验。强烈建议后端工程师有空读一读这本书,有些细节的确是我们平时没有注意的,读了最好自己动手做一些实验加深理解。fin的含义对端发送fin会导致read()返回,但send()照样可以发送,也就是单纯的fin其实相当于shutdown(SHUT_WR)。当对端应用程序崩溃后...
阅读(2000) 评论(0)

Linux/Unix系统编程手册--SOCKET章节读书笔记

SOCKET章节读书笔记强烈推荐Linux/Unix系统编程手册,号称超越APUE的神书。backlog含义#include int listen(int socketfd, int backlog)backlog参数限制未决连接(未accept)的数量,在这个数量之内,connect会立刻成功。 Linux上上限为128,定义在udp已连接socketudp soc...
阅读(1967) 评论(0)

读《《图解TCP-IP》》有感

读《《图解TCP/IP》》有感 TCP/IP 最近几天读完《《图解TCP/IP》》,收获蛮多,记得上学时读stevens的《《TCP/IP详解》》时那是一个囫囵吞枣,没认真看也看不下去。等有时间再拜读下《《TCP/IP详解》》吧,估计能有不少共鸣。现在觉得,要想比较透彻理解TCP/IP,还得需要有服务器编程经验,学校应该同时开设《socket编程》》相关课程,最好同一个老师教,可以串讲,不然光理...
阅读(3643) 评论(2)
134条 共9页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:1209286次
    • 积分:10098
    • 等级:
    • 排名:第1891名
    • 原创:120篇
    • 转载:11篇
    • 译文:3篇
    • 评论:349条
    博客专栏
    最新评论