当前位置: 首页 > 架构相关 > 关于大型网站架构的一些case

关于大型网站架构的一些case

前段时间看了李智慧的《大型网站技术架构:核心原理与案例分析》,不是实践方面的知识,但是作为培养架构思想是一本非常好的书,我推荐想了解这方面知识的朋友读一下。里面有不少的经典总结,也加上自己的一些见解写在这里。

分布式应用服务集群:

1.不同功能通过物理分割实现伸缩

物理分割:又可以分为纵向分割和横向分割

    ①纵向分割 : 具体产品-》可用业务服务-》基础技术服务-》数据库

    ②横向分割:买家后台、卖家后台、网站前台、交易论坛等, 横向分割的粒度可以非常小,甚至一个关键网页都可以部署一台独立的服务器。比如电商网站的详情页、商铺页、列表页等。每个页面都可以独立的部署在一台服务器上,专门进行维护。

2.单一功能通过集群实现伸缩

集群伸缩:到了网站服务即使分割的粒度到了最小,单一服务器也不能满足业务的需求的时候。就要采用服务器集群了。(当一头牛拉不动车的时候,不要去寻找一头更强壮的牛,而是用两头牛来拉)。

分布式缓存服务器集群:

分布式缓存集群主要是通过路由算法,现在采用的路由算法主要是一致性Hash算法。

数据存储服务器集群:

数据存储服务器和缓存服务器不同,缓存的目的是减轻数据存储服务器的负载压力。部分缓存数据丢失不影响业务的正常处理,数据可以从存储服务器取。所以数据存储服务器的持久性和可用性要求更高!

数据存储服务器的伸缩性设计又分为:

1、关系数据库集群伸缩性设计

如果一个表中的数据非常大,比如淘宝的商品表,那么这个表需要拆开分别存储在多个数据库中。可以了解一下Amoeba和Cobar这两款支持数据分片的分布式关系数据库产品。(Amoeba:http://docs.hexnova.com/amoeba/index.html)(Cobar:http://blog.csdn.net/shagoo/article/details/8191346)

2、NoSQL数据库的伸缩性设计

可以针对业务分,也可以不分业务,只针对技术逻辑。


一个网站做大了,是有很多部门一块维护着,负责分布式存储的,负责缓存的,负责安全的,负责均衡访问的等。但是有一撮人需要告诉他们谁应该负责什么,从什么做起,这就是架构师与工程师的角色。


转载时请以 超链接的形式 注明:转自Ferman

                  

About me