自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(60)
  • 问答 (4)
  • 收藏
  • 关注

原创 一个30岁程序员的对于中年危机的思考和应对

1. 前言       2005年,我怀着对大学生活无限的憧憬,上了某大学的软件工程专业。从报这个专业的第一天起,就听过无数软件行业是“青春饭”的言论。时至今日,当年青涩的毛头小子也已工作了8年之久,转眼就步入了而立之年,并且成为了一个孩子的父亲。       现在说IT行业是“青春饭”的言论已经少了很多,但是对于IT行业”中年危机“的讨论越来越多,尤其是前端时间华为那个34岁员工被裁...

2017-04-12 09:54:43 2452

聊聊同步异步、阻塞非阻塞

背景很多人在同步异步、阻塞非阻塞这2组概念上不能讲的很清楚,而且网络上也有几种完全不同的看法,总之这个部分有不少争议。笔者也在这部分困惑过,花了一些时间去弄透这个问题,以下是个人理解的一些总结。希望能帮到大家。1. 通用概念例子:”我”烧水(注意:这里的主语是”我”,也就是我们讨论的who)1.1. 同步异步1.1.1. 例子关注点:是否需要”我主动”去...

2016-04-22 13:59:21 205

买房四部曲之纪念自己人生中第一次买房

从决定买房到签约,历时5天,和做梦似得就完成了自己第一次买房子。至今心情还是没那么平静(主要是太快了!都没反应过来,原谅我脆弱的小心灵= =#),所以整理整理心情后,决定分享一下自己买房的经历和自己的一些心得,希望帮助到一些朋友!   一部曲:背景  楼主毕业6年,外地户口。2015年刚刚具有买房资格,手里头攒了不到50万现钱,另外公积金账户有20万。  一直都想买个小房子用来投资,同时把闲置...

2016-02-03 18:55:55 445

记录:解决后端server因一个timeout导致的雪崩

问题描述相关组件:1. WebService:对外提供web接口服务,这里启动了5个(端口分别为:9001-9005)2. nginx:反向代理5个webService做负载均衡(nginx对外提供9999端口服务)3. httpclient:调用nginx的9999端口访问webService提供的http接口 timeout设置:nginx:proxy_read...

2015-12-23 11:26:16 1083

python之记录一次内存泄露

问题现象手头一个系统上线后,节点机中agent应用在运行10天后,占用系统内存居然高达10GB以上,这显然是发生了严重内存泄露。 问题原因python是动态语言,对用动态语言的内存分析不是很容易,尝试了一下比较经典的内存分析工具meliae,但是发现不是很好用。查了很多资料后,发现了https://github.com/pympler/pympler 这个工具,官方文档地址为:...

2015-12-14 16:37:04 624

nginx大量连接时,出现502错误

问题描述Nginx的日志出现大量的upstream time out, dmesg 和 /var/log/messages查看系统日志后,发现很多的错误日志:ip_conntrack: table full, dropping packet 问题原因nf_conntrack工作在3层,查看当前连接数的命令如下:# grep conntrack /proc/slabinfo...

2015-12-14 12:08:30 1540

centos之systemtap安装

什么是systemtapSystemTap 是监控和跟踪运行中的 Linux 内核的操作的动态方法。 假如现在有这么一个需求:需要获取正在运行的 Linux 系统的信息,如我想知道系统什么时候发生系统调用,发生的是什么系统调用等这些信息,有什么解决方案呢?最原始的方法是,找到内核系统调用的代码,加上我们需要获得信息的代码、重新编译内核、安装、选择我们新编译的内核重启。这种做法对...

2015-03-17 14:25:22 258

tornado之TCPServer性能测试

前言在下面这个博客里,介绍了tornado的异步TCPServer和TCPClient。http://yunjianfei.iteye.com/blog/2186646那么,tornado的性能到底怎么样呢?让我们来做一个性能测试吧。 这里推荐关于C10K问题的一个文章:http://www.kegel.com/c10k.html 准备工作在开始性能测试前,需要...

2015-02-27 17:09:53 753

基于tornado的异步TCPServer以及TCPClient

背景关于tornado,我这里就不详细讲了,有兴趣的同学可以通过以下两篇博客了解一下: http://yunjianfei.iteye.com/blog/2185476http://yunjianfei.iteye.com/blog/2185446我们一般用tornado来编写web程序,但实际上,tornado底层的代码非常优秀,也可以用这些代码来编写TCP应用。 ...

2015-02-25 14:59:25 1024

原创 python之理解“@”(装饰器/decorators)

前言 初学python时,第一次见到“@”符号,感觉很眼熟,如果是学习过java或者接触过AOP(面向切面编程),对于这个符号应该是比较熟悉的。实际上,python中的@也是AOP思想的一种实现。 python的@,官方语言叫做“decorators”,即装饰器。这是python的一大特性,对于初学者来说,很难透彻的理解decorators。本文以多个python例子为引,层层...

2015-02-16 11:07:33 269

python之嵌套函数与闭包

函数基础关于函数基础,可以查看我的另一篇博客:http://yunjianfei.iteye.com/blog/2186064与本文相关的,有两个重要概念:变量作用域(scope)与生命周期(lifetime)如果对于这两个概念有所疑惑,可以先去了解一下。 嵌套函数python是允许创建嵌套函数的,也就是说我们可以在函数内部定义一个函数,这些函数都遵循各自的作用域和生命周...

2015-02-15 18:17:54 960 1

python之函数基础

从定义开始众所周知,函数是可以重用的程序段,它们允许你给一块语句一个名称,然后你可以在你的程序的任何地方使用这个名称任意多次地运行这个语句块。 python的函数是用def关键字来定义,主要包括:函数名、函数参数、函数体、函数返回值。  #!/usr/bin/env pythondef foo(): return 1print foo() ...

2015-02-15 15:46:56 124

【转载】深入理解Tornado之异步web服务器(源码分析指南)

这篇文章的目的在于对Tornado这个异步服务器软件的底层进行一番探索。我采用自底向上的方式进行介绍,从轮询开始,向上一直到应用层,指出我认为有趣的部分。所以,如果你有打算要阅读Tornado这个web框架的源码,又或者是你对一个异步web服务器是如何工作的感兴趣,我可以在这成为你的指导。通过阅读这篇文章,你将可以:自己写一个 Comet 架构程序的服务器端部分,即使你是...

2015-02-12 18:00:38 139

原创 Tornado之源码分析(一)异步客户端篇

  前言Tornado是很优秀的非阻塞式服务器,我们一般用它来写Web 服务器,据说知乎就是用Tornado写的。为了更好的用Tornado来编写程序,用了点时间把它的源码详细阅读了一下。主要关注的是Tornado如何实现的异步Server和异步Client。这里我先把分析异步client时跟踪源码的记录整理之后放上来,便于以后回忆和翻阅。 读者可以通过我这篇文章作为阅读...

2015-02-12 17:50:15 243

原创 怎样成为优秀的架构师

开始之前,推荐一个专栏:http://developer.51cto.com/developer/top10Architect/ 我们期待自己成为一个优秀的软件模型设计者,但是,要怎样做,又从哪里开始呢?将下列原则应用到你的软件工程中,你会获得立杆见影的成果。1. 人远比技术重要你开发软件是为了供别人使用,没有人使用的软件只是没有意义的数据的集合而已。许多在软件方面很有成就的行...

2015-01-26 17:03:53 228 1

基于mysql和ZooKeeper的分布式锁实现

废话不多说,直接上github:https://github.com/yunjianfei/distributed_lock 直接读代码即可,这里就不详细解释了,一切尽在代码中~

2015-01-26 16:25:38 299

python-gearman之多个GearmanServer问题

============================================================================原创作品,允许转载。转载时请务必以超链接形式标明原始出处、以及本声明。请注明转自:http://yunjianfei.iteye.com/blog/==========================================...

2015-01-12 14:41:38 264

Mysql配置优化(Innodb)

============================================================================原创作品,允许转载。转载时请务必以超链接形式标明原始出处、以及本声明。请注明转自:http://yunjianfei.iteye.com/blog/===========================================...

2014-12-11 11:24:05 138

ZooKeeper之分布式锁(Python版)

============================================================================原创作品,允许转载。转载时请务必以超链接形式标明原始出处、以及本声明。请注明转自:http://yunjianfei.iteye.com/blog/==========================================...

2014-12-10 16:26:31 661

ZooKeeper集群高可用

今天按照zookeeper官网的文档配置了一套zookeeper集群。链接如下:http://zookeeper.apache.org/doc/trunk/zookeeperAdmin.html#sc_systemReq按照官网的建议,我配置了3台的测试环境,三台完全启动之后,查看状态,两台是follower,一台是leader. ./bin/zkServer.sh status...

2014-12-08 16:03:36 217

原创 【转载】MySQL索引原理及慢查询优化

MySQL凭借着出色的性能、低廉的成本、丰富的资源,已经成为绝大多数互联网公司的首选关系型数据库。虽然性能出色,但所谓“好马配好鞍”,如何能够更好的使用它,已经成为开发工程师的必修课,我们经常会从职位描述上看到诸如“精通MySQL”、“SQL语句优化”、“了解数据库原理”等要求。我们知道一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,遇到最多的,也是最容易出...

2014-08-20 12:46:43 116

gearman的安装启动以及python API入门例子

============================================================================原创作品,允许转载。转载时请务必以超链接形式标明原始出处、以及本声明。请注明转自:http://yunjianfei.iteye.com/blog/==========================================...

2014-06-06 11:17:31 182

python之supervisord启动脚本(centos/rhel)

============================================================================原创作品,允许转载。转载时请务必以超链接形式标明原始出处、以及本声明。请注明转自:http://yunjianfei.iteye.com/blog/==========================================...

2014-06-06 10:43:32 168

centos/rhel 下 nginx 自启动脚本

============================================================================原创作品,允许转载。转载时请务必以超链接形式标明原始出处、以及本声明。请注明转自:http://yunjianfei.iteye.com/blog/=========================================...

2014-06-04 18:37:15 89

制作nginx的RPM包

============================================================================原创作品,允许转载。转载时请务必以超链接形式标明原始出处、以及本声明。请注明转自:http://yunjianfei.iteye.com/blog/==========================================...

2014-06-03 17:53:47 96

原创 软件设计之状态机

============================================================================原创作品,允许转载。转载时请务必以超链接形式标明原始出处、以及本声明。请注明转自:http://yunjianfei.iteye.com/blog/==========================================...

2014-05-08 13:08:48 840

jquery之ajax提交、js验证表单

============================================================================原创作品,允许转载。转载时请务必以超链接形式标明原始出处、以及本声明。请注明转自:http://yunjianfei.iteye.com/blog/==========================================...

2014-05-07 17:38:19 164

jquery之表格伸缩功能(动态子表)

============================================================================原创作品,允许转载。转载时请务必以超链接形式标明原始出处、以及本声明。请注明转自:http://yunjianfei.iteye.com/blog/==========================================...

2014-05-07 11:13:04 322

jquery之动态级联下拉列表

============================================================================原创作品,允许转载。转载时请务必以超链接形式标明原始出处、以及本声明。请注明转自:http://yunjianfei.iteye.com/blog/==========================================...

2014-05-06 17:31:52 199

一个好看的表格CSS样式

============================================================================原创作品,允许转载。转载时请务必以超链接形式标明原始出处、以及本声明。请注明转自:http://yunjianfei.iteye.com/blog/ =======================================...

2014-05-05 18:29:52 261

gearman队列持久化带来的问题

============================================================================原创作品,允许转载。转载时请务必以超链接形式标明原始出处、以及本声明。请注明转自:http://yunjianfei.iteye.com/blog/==========================================...

2014-05-05 18:13:28 167

python之跨进程锁的实现---fcntl

============================================================================原创作品,允许转载。转载时请务必以超链接形式标明原始出处、以及本声明。请注明转自:http://yunjianfei.iteye.com/blog/==========================================...

2014-05-05 17:45:44 378

开源备份软件之bacula--介绍与源码框架

============================================================================原创作品,允许转载。转载时请务必以超链接形式标明原始出处、以及本声明。请注明转自:http://yunjianfei.iteye.com/blog/==========================================...

2014-03-14 18:20:35 601 1

原创 几种分布式文件系统的测试分析

前些日子调研分布式文件系统的时候,在google上找到了一个很好的测试分析报告,在这里分享给大家,是全英文版的,看起来得耐心点,我主要看了hdfs,moosefs和ceph的。 最好是自己动手搭建一些集群试试。并且多做测试。以便帮助选型。...

2014-03-14 17:55:35 166

python基于mysql实现的简单队列以及跨进程锁

============================================================================原创作品,允许转载。转载时请务必以超链接形式标明原始出处、以及本声明。请注明转自:http://yunjianfei.iteye.com/blog/==========================================...

2014-03-14 17:02:37 283

原创 SSH开发的物流管理系统

============================================================================原创作品,允许转载。转载时请务必以超链接形式标明原始出处、以及本声明。请注明转自:http://yunjianfei.iteye.com/blog/==========================================...

2014-03-10 09:48:09 735

基于tornado的Rest-WebService框架

============================================================================原创作品,允许转载。转载时请务必以超链接形式标明原始出处、以及本声明。请注明转自:http://yunjianfei.iteye.com/blog/==========================================...

2014-03-07 15:58:05 239

原创 性能测试之观测---Atop

  无论iozone还是netperf都可以通过atop来观察他们的性能。Atop介绍:         atop是一个高级的Linux系统全屏性能监视器,会定期的显示CPU、内存、磁盘、网络的负载信息。 在终端输入./atop -l 1会出现监控界面。 Atop参数:          在界面中键入‘m’,就会显示每个进程的内存情况。          在界面中键入‘...

2014-03-07 09:41:13 140

原创 性能测试之观测---iostat

Iostat介绍:          iostat 命令用来监视系统输入/输出设备负载,这通过观察与它们的平均传送速率相关的物理磁盘的活动时间来实现。iostat 命令生成的报告可以用来更改系统配置来更好地平衡物理磁盘和适配器之间的输入/输出负载。./iostat -d -x 1参数:-d 表示且仅显示磁盘使用率报告。 1 表示,数据显示每隔1秒刷新一次 测试结果意义:tp...

2014-03-07 09:38:03 168

原创 python之我常用的logging

============================================================================原创作品,允许转载。转载时请务必以超链接形式标明原始出处、以及本声明。请注明转自:http://yunjianfei.iteye.com/blog/==========================================...

2014-03-07 09:37:43 98

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除