分布式本身内容很多,每一部分都单独可以写一本书,我们这里先从总的架构方面来学习一下分布式的知识。先看一下下面的架构图(图片看不清可下载或放大),我们来简单的解释一下每一块的作用。
1.CDN服务器和反向代理
CDN服务器和反向代理的基本原理都是缓存,CDN部署在网络提供商的机房,反向代理部署在网站的中心机房。首先CDN服务器和反向代理服务器缓存着用户的一些数据,当用户请求到达时首先到达CDN服务器,因为CDN部署在网络提供商的机房,可以从最近的网络提供商来获得数据,速度最快。如果从CDN服务器获取不到数据,则再到达反向代理服务器,如果反向代理服务器有用户请求的资源,则直接返回。
2.使用集群(如图中的B应用服务器1,B应用服务2,B应用服务器n)
网站高并发访问情况下,使用负载均衡技术作为一个应用构建一个有多台服务器组成的服务器集群。多个服务器应该完全是一样的,可水平扩展。
3.业务拆分(如图中的A应用服务器,B应用服务器)
网站业务场景复杂,可把不同的业务完全当作不用的应用来部署,如首页,商铺,订单,卖家,买家都当作不用的应用,当然每一个应用也可作集群处理。
4.消息队列(如图中消息队列服务器)
利用消息队列实现异步,提高系统的访问速度。我们可以把一些不需要及时响应的任务(发邮件,短信,解析文件等)单独提取出来,用单独的消息队列服务器来做处理。
5.分离应用服务层(如图中的公有服务服务器1,公有服务服务器2,公有服务服务器n)
这一层提供可复用的服务,比如账户服务,Session服务,登录服务等。
6.构建数据访问层。
统一数据访问可直接在应用服务器或者公有服务服务器来调用,数据访问层可利用,搜索引擎,NOSQL,缓存,数据库主从,读写分离等来提高效率。
上面的每一块内容都有都有不同的技术实现,都有很多知识需要我们来学习,技术之路,路漫漫而修远兮,吾将上下而求索。