分布式、集群的一些认识

分布式、集群的一些认识

分布式的作用:
1.提高可用性(不能叫北京的用户访问广州的服务器吧(网络速度慢))。
2.提高系统性能,不同地区的用户访问不同地区的服务器。
3.如果在数据存储方面,可以提高存储容量。
4.降低单个数据库的压力。


集群的作用:
1.可以进行负载均衡,把多用户请求均衡分给集群中的服务器进行处理,(这个请求给这个服务器处理,另一个请求给另一个服务器处理)
2.如果在数据存储方面,可以提高数据的可靠性,一个宕机了还有另一个在.



Web负载均衡
1.HTTP重定向
当用户发来请求的时候,Web服务器通过修改HTTP响应头中的Location标记来返回一个新的url,然后浏览器再继续请求这个新url,实际
上就是页面重定向。通过重定向,来达到“负载均衡”的目标。

这个重定向非常容易实现,并且可以自定义各种策略。但是,它在大规模访问量下,性能不佳。而且,给用户的体验也不好,实际请求
发生重定向,增加了网络延时。


2.反向代理负载均衡
反向代理服务的核心工作主要是转发HTTP请求,扮演了浏览器端和后台Web服务器中转的角色。可以做反向代理的软件很多,比较常见的
一种是Nginx。




反向代理中,常见的一个问题,就是Web服务器存储的session数据,因为一般负载均衡的策略都是随机分配请求的。同一个登录用户的请求,
无法保证一定分配到相同的Web机器上,会导致无法找到session的问题。
解决方案主要有两种:
1. 配置反向代理的转发规则,让同一个用户的请求一定落到同一台机器上(通过分析cookie),复杂的转发规则将会消耗更多的CPU,也增
加了代理服务器的负担。
2. 将session这类的信息,专门用某个独立服务来存储,例如redis/memchache,这个方案是比较推荐的。


3.IP负载均衡
在负载均衡服务器收到客户端的IP包的时候,会修改IP包的目标IP地址或端口,然后原封不动地投递到内部网络中,数据包会流入到实际Web
服务器。实际服务器处理完成后,又会将数据包投递回给负载均衡服务器,它再修改目标IP地址为用户IP地址,最终回到客户端。



4.DNS负载均衡
一个域名是可以配置成对应多个IP的,当DNS时可以在DNS信息中得到那个服务器离自己最近就选择与那个服务器进行请求.



总结:
数据库集群就是提高可靠性(备份),提高吞吐量(每个都可以提供数据(但要求一致性,否则数据可能不是最新的))。

数据库分布式提高数据的容量和分区管理。

但现在大多数大型系统都是分布式与集群一起使用来完成的。


参考原文: http://kb.cnblogs.com/page/509402/

猜你喜欢

转载自huangyongxing310.iteye.com/blog/2323706