高性能分布式计算与存储设计概要

来源:互联网 发布:淘宝素材主图怎么做 编辑:程序博客网 时间:2024/05/19 17:26

本篇文章参考自高性能分布式计算与存储设计概要


对于大流量,需要处理大数据的网站而言,由web的逻辑直接调用数据存储,是非常不科学的,实际上也是不可能的。

大数据,高并发的对数据进行读写,通常数据库都会挂掉,从而使网站也挂掉,必须要在Web和数据库之间,通过技术手段实现一种转换或控制。这样的技术手段有很多,所实现的东西也有许多,统称为一个“中间层”的逻辑层。在这个层,将数据库的海量数据抓出来,做成缓存,运行在服务器的内存中,同理,当有新的数据到来时,也先做成缓存,再想办法,持久化到数据库中,就是这样简单的思路。

这样最大的好处是,砍掉了每天上千万次的数据库读写操作,取而代之的是读服务器提供缓存服务的进程所控制的内存,也会带来新的问题,比如数据的同步和一致性问题。



当一个web页面提交请求后,它首先根据一定的规则,通过负载均衡,然后到达相应的master节点。DNS负载均衡是众多负载均衡中的一种技术。有许许多多的master节点(只要有条件,可随意横向扩展,以提高速度、容灾、容量等指标),每个master节点的IP地址(域名)当然不一样,通过DNS负载均衡,合理地把该请求,送到相对“空闲”的master节点服务器。 slave节点,主要用于“Running services”,即,实际处理请求的缓存服务进程。master节点,主要用于分发通过负载均衡的请求(当然,master节点上也可以运行“缓存服务进程”,即并发流量不高,较辅助的一些服务),找到用于处理实际请求的合适的slave节点,将该请求交给它处理,再次实现了一次“负载均衡”。同时,需要分布式计算的内容,将可能同时分发到几个slave节点,之后再对结果进行合并返回(Map-Reduce原理)。


现在,一个web请求已经通过DNS负载均衡,通过master节点进行分配,到达了相应的slave节点上。所谓的“缓存”,正是slave节点中所运行的services进程中所管理的内存。






0 0
原创粉丝点击