您的位置:首页 > 运维架构 > 网站架构

《大型网站技术架构》总结---架构技术

2015-03-14 13:20 197 查看
上一篇写到了网站架构的演化过程,一个小型网站是如何发展成为大型网站的。里面用到了很多的技术,很多是我在看这本书的时候第一次遇到,因此有必要做一个总结。

一.大型网站的架构模式

模式的关键在于模式的可重复性,问题和场景的可重复性带来解决方案的可重复使用。

1.分层

分层是最常用的的一种架构模式,将系统在横向维度上分为几个部分,每个部分负责相对单一的职责,然后通过上层对下层的依赖和调用组成一个完整的系统。分层在计算机世界中无处不在,如网络的7层通信协议。在大型网站中一般讲软件系统分为应用层,服务层和数据层。应用层负责具体的业务和视图展示,服务层是为应用层提供服务支持,数据层则提供数据的存储访问等。在实践中还可将应用层分为视图层和业务逻辑层。我之前学的MVC就是这样的。

分层的最初目的是为了规划软件清晰的逻辑结构便于开发维护,到后来分层架构对分布式方向发展至关重要。

2.分割

分割是在纵向方面对软件进行切分。如在应用层,将不同业务进行分割,例如将购物,论坛,搜素等分割成不同的应用,有独立团队负责,部署在不同的服务器上。

3.分布式

分层和分割的主要目的就是为了使切分后的模块便于分布式部署。分布式方案有如下的: 分布式应用;分布式静态资源(静态资源如JS,CSS,Logo图片等独立分布式部署,即人们常说的动静分离);分布式数据和存储(NoSQL);分布式计算(Hadoop);分布式文件系统(HDFS)等等。

4集群

虽然采用了分布式部署,但对于用户集中的块,还要将独立部署的服务器集群化。集群:多台服务器部署相同应用构成一个集群,通过负责均衡设备共同对外提供服务。

5.缓存 Cache

缓存就是将数据存放在离计算最近的位置以加快处理速度。缓存是改善软件性能的第一手段。注意这里的缓存并不一定就是内存,也可能是磁盘。

CDN:内容分发网络(Content Delivery Network),部署在里终端用户最近的网络服务商,用户的网络请求总是先到达他的网络服务商那里,在那存储了网站的一些静态资源。这样可以就近以最快的速度返回给用户。如视频网站会将用户访问量大的热点内容缓存在CDN。

反向代理:它属于网站前端架构的一部分,当用户到达网站时,最先访问的就是反向代理服务器。反向代理正好与正向代理相反,对于客户端而言代理服务器就像是原始服务器,并且客户端不需要进行任何特别的设置。客户端向反向代理的命名空间(name-space)中的内容发送普通请求,接着反向代理将判断向何处(原始服务器)转交请求,并将获得的内容返回给客户端。
反向代理的作用有:保护和隐藏正真的服务器,还有就是具有缓存和负载均衡的作用。正向代理服务器,客户端需要进行设置,举个例子如“翻墙”。具体的区别见 http://z00w00.blog.51cto.com/515114/1031287
6.异步

业务之间的消息传递不是同步调用,而是将一个业务操作分为多个阶段,每个阶段之间通过共享数据的方式异步执行进行协作。消息队列就是一种异步操作方式,允许你把一个消息放入队列,但并不立即处理它,采用了生产者消费者模式。消息队列可以加快网站的响应速度,具有很好的削峰作用(通过一步处理,将短时间高并发产生的消息存储在消息队列中,从而削平高峰期的并发事务)。

7.冗余

定义:多余的、重复内容。这里主要是指数据的冗余备份,保证在服务器宕机时数据不丢失。数据库除了定期备份(冷备份),还要对数据库进行主从分离,实时同步热备份。


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: