网站网络架构调整

虽然站小并没有人访问,但是技术是极致的,尝试点新的东西总不是什么坏事。所以在折腾了一段时间后决定将网站原来的简单的三层网络架构进行调整,加快网站的访问速度并提高网站的并发。

之前的网络架构非常简单,就是一个简单的把Client请求DNS解析到Server,然后Server返回请求内容的过程,可以用下图描述:

network1

在这段时间内,我陆续对其中的一些部分进行了调整。

首先使用能够自适应移动端的主题,这样移动端也能很好的获取到网站内容。然后使用CDN替代DNS,并加入CDN缓存,这样已经缓存的内容就能够直接返回给用户,不用对Server进行请求。同时CDN对请求进行分发,能够找到最近的解析服务器对Client的请求进行解析。

在Server端,则采取分类型缓存手段,将静态内容(图片,JS,CSS等)分离,通过二级域名解析到云端的对象存储服务器上,这样请求中的静态内容将直接从云服务器上获取,无需向Server发送请求。另外,在Server上建立Cache服务,请求中的内容如果有之前存储在Cache中的,能直接通过读取Cache的方式获得,无需执行额外的代码罗技和数据库内容请求。

于是,新的网络架构可以用下图表示:

network

看起来相对之前的简单结构确实复杂很多,但是带来的提升也是很明显的。

20160130121635

一眼看去,并发2000毫无压力,而且网站也可以正常访问,好像有点太厉害了。当然,这是因为CDN缓存的原因,就当是娱乐一下就好,但至少证明了网站即使在2000并发下也不会出现宕机。

下面说下复杂架构带来的弊端。主要问题就是,静态内容更新的刷新十分复杂。因为今天内容同时在Cache,CDN Cache,Static Server上进行了缓存,其中任何一个没有更新最后请求到的资源也是旧资源,所以如果静态内容出现了更新就智能将三者全部清除并发送更新请求。不过毕竟这些内容并不会时常更新,所以新架构带来的负面影响也是可以接受的。

暂无评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注