分布式Web服务器架构(转)

server
最开始,由于某些想法,于是在互联网上搭建了一个网站,这个时候甚至有可能主机都是租借的,但由于这篇文章我们只关注架构的演变历程,因此就假设这个时候已经是托管了一台主机,并且有一定的带宽了,这个时候由于网站具备了一定的特色,吸引了部分人访问,逐渐你发现系统的压力越来越高,响应速度越来越慢,而这个时候比较明显的是数据库和应用互相影响,应用出问题了,数据库也很容易出现问题,而数据库出问题的时候,应用也容易出问题,于是进入了第一步演变阶段:将应用和数据库从物理上分离,变成了两台机器,这个时候技术上没有什么新的要求,但你发现确实起到效果了,系统又恢复到以前的响应速度了,并且支撑住了更高的流量,并且不会因为数据库和应用形成互相的影响。 继续阅读

收藏与分享

Python 3.0以下诡异的中文编码问题

长话短说,问题的由来是使用beautifuSoup时,提取出来有一段中文,但是大部分内容在默认的编码方式下能正常显示,但总有那么一次的内容显示为乱码。

分析原因后发现是u’’和’’的差别,大部分内容显示正常是因为返回的内容是’’的方式,其类型为str,而显示乱码情况下,则以u’’的方式返回的内容,其类型为unicode。说到底就是返回的内容是一样的,但是乱码时候这段内容是被unicode处理过了。怎么办呢?

纠结了好久,发现不是encode与decode能解决这个问题的,已经是一个底层编码方式的问题了,甚至想到是否把编码的原理搞明白透彻了,用数学计算的方式来实现错误编码到正常显示的纠正。后来,发现了一对好用的函数,repr与eval,在python中,对这两个函数的说明是:

In [23]: help(repr)
Help on built-in function repr in module __builtin__:

repr(…)
    repr(object) -> string

    Return the canonical string representation of the object.
    For most object types, eval(repr(object)) == object.

所以想到用字符串处理的方式来解决这个问题,比如一个“我”字的GBK编码是’\xce\xd2’,str类型,而返回的内容是u’\xce\xd2’,unicode类型,先用repr处理u’\xce\xd2’,得到一个u’\xce\xd2’的str的类型,直接字符串截取就可得到’\xce\xd2’,且是str类型,然后使用eval函数便变回到需要的类型及内容,即解决了内容乱码的问题。

收藏与分享

乡愁:那些岁月的简单和安宁(转)

1333008605396

我们这一辈人,生于九零年左右,兄妹几个,打小一起长大。父辈们从农村走到了城市,安下了家,有了我们。爷爷奶奶仍住在乡下,在家读书的日子里,逢年过节,有假就回老家。不同于父辈们对农村的记忆——贫穷,饥饿和落后,我们眼里的农村是游乐园,是爷爷奶奶的宠爱,也是童年最美好的记忆。

继续阅读

收藏与分享

Memo:Hey,春暖花开,谈一场莫名其妙的恋爱吧

1363153343375

男孩喜欢女孩很久很久了,久到自己几乎快要劝自己放弃了。

这是一场不曾表白的八年暗恋,而女孩,从不曾发觉身边一直有这样的眼神在关注着自己,爱怜着自己。

男孩说,高中第一次晚自习的时候,看见女孩靠窗坐,穿着白色衬衫,莫名地感觉这女孩真好。

男孩从此开始记得这个女孩的脸庞。

继续阅读

收藏与分享