首页 > 试题广场 >

在web服务中,负载均衡的基本作用是什么?请举例你熟悉的一款

[问答题]
在web服务中,负载均衡的基本作用是什么?请举例你熟悉的一款负载均衡软件或者实现方案,简述它们的实现原理。
作用:(1)请求分流,提高集群性能;(2)失效转移,防止单点故障。
Nginx的负载均衡
作为反向***服务器,可以实现 客户端请求在多个后端服务器之间的负载均衡。支持4种负载均衡策略。
1) 轮询round_robin(默认) :每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
2) weight加权轮询:指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
3) ip_hash:每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
4) fair(第三方):按后端服务器的响应时间来分配请求,响应时间短的优先分配。
5) url_hash(第三方)

ZooKeeper负载均衡的实现思路
把ZooKeeper作为一个服务的注册中心,在其中登记每个服务,每台服务器知道自己是属于哪个服务,在服务器启动时,自己向所属服务进行登记,这样,一个树形的服务结构就呈现出来了

服务的调用者到注册中心里面查找:能提供所需服务的服务器列表,然后自己根据负载均衡算法,从中选取一台服务器进行连接
调用者取到服务器列表后,就可以缓存到自己内部,省得下次再取,当服务器列表发生变化,例如某台服务器宕机下线,或者新***务器,ZooKeeper会自动通知调用者重新获取服务器列表
由于ZooKeeper并没有内置负载均衡策略,需要调用者自己实现,这个方案只是利用了ZooKeeper的树形数据结构、watcher机制等特性,把ZooKeeper作为服务的注册和变更通知中心,解决了Nginx负载均衡方案带来的问题

编辑于 2017-06-05 22:57:25 回复(0)
  1. 分流
  2. 故障转移
发表于 2015-07-29 12:26:08 回复(0)
分流。
分布式集群的时候经常要用到,相对于单机模式的负载过大问题,能够很好的解决,同时负载均衡有一些算法,比如说加权随机法,加权轮训法等,负载均衡的加入也防止某一台服务器宕机导致不可用的尴尬,解决了单点问题。同时,负载均衡本身也可作为一个分配连接请求的集群。常见的有zookeeper
编辑于 2015-07-29 09:03:11 回复(0)