大话集群和负载均衡,一看全明白( 二 )


方法一:平时老大做生意 , 老二这个时间段在家等候 , 一旦老大无法做生意了 , 老二就出来顶上 , 这个叫做 Active/Standby.(双机热备)
方法二:平时老大做生意 , 老二这个时候就在旁边帮工 , 一旦老大无法做生意 , 老二就马上顶上 , 这个叫做Active/Passive.(双机双工)
方法三:平时老大卖包子 , 老二也在旁边卖豆浆 , 老大有问题 , 老二就又卖包子 , 又卖豆浆 , 老二不行了 , 老大就又卖包子 , 又卖豆浆.这个叫做Active/Active (dual Active)(双机互备)
high computing clustering(高性能计算集群)
10个兄弟一起做手工家具生意 , 一个客户来找他们的老爹要求做一套非常复杂的仿古家具 , 一个人做也可以做 , 不过要做很久很久 , 为了1个星期就交出这一套家具 , 10个兄弟决定一起做 。
老爹把这套家具的不同部分分开交给儿子们作 , 然后每个儿子都在做木制家具的加工 , 最后拼在一起叫货 。
老爹是scheduler任务调度器 , 儿子们是compute node. 他们做的工作叫做作业 。
2:负载均衡
HTTP重定向负载均衡
当用户发来请求的时候 , Web服务器通过修改HTTP响应头中的Location标记来返回一个新的url , 然后浏览器再继续请求这个新url , 实际上就是页面重定向 。 通过重定向 , 来达到“负载均衡”的目标 。 例如 , 我们在下载JAVA源码包的时候 , 点击下载链接时 , 为了解决不同国家和地域下载速度的问题 , 它会返回一个离我们近的下载地址 。 重定向的HTTP返回码是302 。 优点:比较简单 。 缺点:浏览器需要两次请求服务器才能完成一次访问 , 性能较差 。 重定向服务自身的处理能力有可能成为瓶颈 , 整个集群的伸缩性国模有限;使用HTTP302响应码重定向 , 有可能使搜索引擎判断为SEO作弊 , 降低搜索排名 。
DNS域名解析负载均衡
DNS(Domain Name System)负责域名解析的服务 , 域名url实际上是服务器的别名 , 实际映射是一个IP地址 , 解析过程 , 就是DNS完成域名到IP的映射 。 而一个域名是可以配置成对应多个IP的 。 因此 , DNS也就可以作为负载均衡服务 。 事实上 , 大型网站总是部分使用DNS域名解析 , 利用域名解析作为第一级负载均衡手段 , 即域名解析得到的一组服务器并不是实际提供Web服务的物理服务器 , 而是同样提供负载均衡服务的内部服务器 , 这组内部负载均衡服务器再进行负载均衡 , 将请求分发到真是的Web服务器上 。 优点:将负载均衡的工作转交给DNS , 省掉了网站管理维护负载均衡服务器的麻烦 , 同时许多DNS还支持基于地理位置的域名解析 , 即会将域名解析成举例用户地理最近的一个服务器地址 , 这样可以加快用户访问速度 , 改善性能 。 缺点:不能自由定义规则 , 而且变更被映射的IP或者机器故障时很麻烦 , 还存在DNS生效延迟的问题 。 而且DNS负载均衡的控制权在域名服务商那里 , 网站无法对其做更多改善和更强大的管理 。
反向代理负载均衡
反向代理服务可以缓存资源以改善网站性能 。 实际上 , 在部署位置上 , 反向代理服务器处于Web服务器前面(这样才可能缓存Web相应 , 加速访问) , 这个位置也正好是负载均衡服务器的位置 , 所以大多数反向代理服务器同时提供负载均衡的功能 , 管理一组Web服务器 , 将请求根据负载均衡算法转发到不同的Web服务器上 。 Web服务器处理完成的响应也需要通过反向代理服务器返回给用户 。 由于web服务器不直接对外提供访问 , 因此Web服务器不需要使用外部ip地址 , 而反向代理服务器则需要配置双网卡和内部外部两套IP地址 。 优点:和反向代理服务器功能集成在一起 , 部署简单 。 缺点:反向代理服务器是所有请求和响应的中转站 , 其性能可能会成为瓶颈 。
负载均衡策略
轮询
加权轮询