• 等级
  • 237539 访问
  • 37 原创
  • 2 转发
  • 18131 排名
  • 75 评论
  • 13 获赞

欢迎访问我的新个人网站,博客也搬家了。

个人网站: http://www.bigendian123.com/

2013-10-01 11:00:38

Nginx SPDY patch实现

前不久Nginx官方放出了SPDY的patch,到目前为止都还未合并进nginx源码,主要还是由于此patch还远不成熟,代码和功能都还不足够完善。个人感觉spdy patch合并进nginx源码还有些时日。本文是基于目前的patch,初窥一下nginx官方是如何在实现spdy。 上图是nginx处理一个请求的大致流程,这里只是绘制了简单的模型,实际过程还是相当的复杂的。图中

2012-07-14 16:51:53

Google SPDY介绍

本文主要是参考Google SPDY项目主页的一些文档总结而来,目的整体上介绍SPDY协议的定义为主。后续,我将写一系列的文章分析SPDY的一些项目(如:Nginx),SPDY的性能测试以及如何部署SPDY到实际生产应用。 一、HTTP协议存在的一些主要问题 1、一个连接一个请求。浏览器和web server之间都是以短连接方式交互,一个连接只服务一次请求,对于一个需要加载多个资源的页面来

2012-07-09 12:13:52

The C10k problem —— 高性能服务器开发必读

保存链接于此,方便自己查看 the c10k problem

2012-06-02 00:14:02

Nginx定时器的实现及定时事件的使用

nginx提供一套高效的定时器实现,除了nginx核心能够使用定时器以外,我们在进行模块开发的时候也可以使用定时器来完成一些定时执行的任务。nginx定时器实现的核心是使用一棵红黑树来存储各个定时事件,每次循环的时候就从这棵树里找出超时的事件,然后一一触发,完成定时任务操作。下面简单的描述一下nginx在实现定时器时的几个关键点。本文是基于linux的epoll来描述的定时器实现。 定时

2012-06-01 21:29:32

GBK和UTF-8的粗暴判断

最近遇到一些url中携带没有encode掉的汉字,并且这样的url有的是utf-8编码,有的又是gbk编码。最终这些url被记录下来的时候,必然就有一类url是乱码了。有人说,汉语博大精深,可恰恰也是这些博大精深的东西时不时的让我们伤透脑筋。我认为这种url编码的情况,最专业的手法应该是url上有一个参数用来说明编码。现在既然没有人告诉我这个url是什么编码,那么我也得尽力判断,然后转换编码。

2012-05-26 13:21:17

bash基础编程总结

bash应该是目前Linux上最流行的shell脚本解释程序了(还有个shell叫dash,我太讨厌这个东东了。),只要你在linux上工作,并且希望自己能够工作得更愉悦,那么你应该熟悉最基本的bash编程,因为它将给你的工作带来足够的幸福感。本文将总结一些我自己平时使用的bash基本编程知识,和大家分享,也便于自己查询。 变量 1、bash的变量名是区分大小写的,并且变量名首字符不能

2012-05-09 19:48:14

小玩TinyCC (aka tcc)

tcc是一个轻量级的C语言编译器,根据官方介绍,完全支持ANSI C,甚至可以用它来编译linux内核。tcc最显著的特点就是编译速度快,产生的可执行程序小,并且能够像脚本一样执行C代码。可惜的是作者现在貌似不再开发tcc了,目前最新版本是0.9.25。           tcc的使用方法和gcc基本相同,连默认产生的可执行程序的名字都叫a.out。写个hello world,比较下gcc和

2012-03-11 19:25:37

Go语言学习笔记4——struct

原计划这篇是写函数的,翻来覆去的研究函数,也没找到什么感悟,于是就写struct吧。这可是个好家伙阿,一个非玩具的C系统中,绝对是struct的天下,可Go更是青出于蓝胜于蓝。         struct在Go中基本总是和type一起出现,Go的type关键字相似于C中的typedef,给一个变量定义个别名。 先欣赏一段struct的代码: package main import "

2012-03-04 19:50:57

Go语言学习笔记3——控制语句

有人说,程序是这个世界上最简单的东西,因为你只需要知道if、for、switch就足够了。事实上,程序也是由判断和循环两种语句组成。程序员更喜欢和机器打交道,而不是和人打交道,是因为程序的世界里更简单,更单纯,没有复杂的关系,是1不会为0、是真也不会为假,一切的一切都是那么真实,不虚幻。此刻,我坚信技术宅们比谁都了解这个世界,比谁都看得更清楚,所以他们将自己宅起来,出淤泥而不染吧。

2012-03-02 21:13:52

Go语言学习笔记2——数组和Slice

在任何一门语言里,数组应该都是非常基础的类型了,使用率当然也应该是很高的。go不但提供了数组,而且还在数组这个类型之上加了一层包装,这个包装也就是slice。         go的数组变量(也就是数组名)是真真实实的数组,而不是一个指向数组内存起始位置的指针,也不能和同类型的指针进行转化,这一点严重不同于C语言; C语言主要还是类型系统太弱了,因此很多的数据最终都退化为指针的方式来访问。

2012-02-29 22:18:01

Go语言学习笔记1——认识

go是一门编译型语言,而不是基于虚拟机的解释型语言,不谈编译和解释的性能问题,只是主观情感上觉得编译而产生的可执行程序与操作系统之间浑然天成。就好比戴套与不戴套的问题。go除了编译型和C语言神似以外,还有着很多的共同点,都说go就是c的加强版,因此我觉得go应该会受到很多c语言程序员的青睐,至少我是没hold住了。python是我认为和c一样简洁优雅的语言,可惜我实在不喜欢动态类型,坏处就不多说了

2012-02-28 14:17:59

gcc参数详解

感谢 fence的分享,原文链接:http://www.cnblogs.com/fence/archive/2009/12/18/1627138.html 转载过来,便于自己查看。 gcc and g++分别是gnu的c & c++编译器   gcc/g++在执行编译工作的时候,总共需要4步   1.预处理,生成.i的文件[预处理器cpp]   2.将预处理后的文件不

2011-12-15 12:00:24

web.py性能测试

一直从事后台系统的开发工作,对web、甚至前端技术一无所知;为了响应leader提出的多面手号召,决定一探前端技术。由于个人对python是情有独钟,毅然决定从python web开发下手。在众多的python web框架中,我看上了简单、轻量的web.py,没有特别喜欢的原因,

2011-07-22 22:12:36

奇怪的流量差

最近在开发一个消息中间件,使用了hbase作为存储引擎。今天在进行性能测试的时候发现一个极其诡异的现象:client向我们server拿数据的时候,server网卡的进出流量极其不均,进来的流量居然跑满了网卡,出去才30M左右(server进来的流量是从hbase scan数据,出去的流量是server将从hbase scan的数据发送给client)。按道理来说,进出的流量应该是1:1的才对,

2011-06-24 23:56:00

第一个Nginx filter模块

以前一直写的都是nginx的handler模块,包括线上服务器都是handler模块,还没有真正写过filter模块,这里就张贴一个filter模块的骨架,方便自己以后查阅。这个入门级的filter只是简单的在响应body尾添加上字符串“Nginx”。 #include #include #include static ngx_int_tngx_http_test_filt

2011-06-12 15:15:00

如何从一个nginx的http请求中获取server端地址?

如果你正在从事nginx的模块开发,可能需要获取服务器端的ip地址。我在改进淘宝日志服务器的nginx模块时,就碰到需要从request中读取到接收这个请求的网卡ip。一开始,我试图如下方式直接从请求中获取地址:struct sockaddr_in *sin = NULL;/*type of r is ngx_http_request_t* */sin = (struct sockad

2011-06-12 14:25:00

nginx配置文件解析过程之神图

<br />所谓神图就是只有自己才能看懂的图,哈哈。此图描述的是nginx配置文件解析过程生成的内存模型图,所有的配置数据,模块handler等信息都是存储在这个图中的。<br /> <br /><br /> <br /> 

2011-04-24 12:58:00

thrift小试牛刀

在Apache上http://thrift.apache.org/,thrift如是简单的介绍了自己:Thrift is a software framework for scalable cross-language services development. It combines a software stack with a code generation engine to build services that work efficiently and seamlessly between C+

2011-01-25 13:13:00

2010年度总结-在淘宝的半年日子

2010是自己人生当中的又一个非常重要的转折点——我离开了美丽的象牙塔,踏上了工作岗位。 6月底,我离开了生活了4年的大学,登上了飞往杭州的航班。那一刻,我才明白:“4年后的今天我居然只带走了回忆,除此再无别的;如果大学可以重来,我也许会做出另外一种选择;好像每个踏出校园的同学,都有和我一样的感触”。时间不会倒流,与其回头懊悔,不如昂首眺望。

2011-01-02 16:40:00

Marcky

关注