负载均衡与分布式应用架构
负载均衡架构
HTTP重定向负载均衡
DNS域名解析负载均衡
反向代理负载均衡
IP负载均衡
数据链路层负载均衡
负载均衡算法
• 轮询:所有请求被依次分发到每个应用服务器上,适合于所有 服务器硬件都相同的场景。 • 加权轮询:根据应用服务器硬件性能的情况,在轮询的基础上, 按照配置的权重将请求分发到每个服务器,高性能的服务器分 配更多请求。 • 随机:请求被随机分配到各个应用服务器,在许多场合下,这 种方案都很简单实用,因为好的随机数本身就很均衡。如果应 用服务器硬件配置不同,也可以很容易的使用加权随机算法。 • 最少连接:记录每个应用服务器正在处理的连接数(请求数), 将新到的请求分发到最少连接的服务器上,应该说,这是最符 合负载均衡定义的算法。 • 源地址散列:根据请求来源的IP地址进行Hash计算,得到应用 服务器,该算法可以保证同一个来源的请求总在同一个服务器 上处理,实现会话粘滞。
应用服务器集群的Session管理
• 应用服务器的高可用架构设计主要基于服务无 状态这一特性,但是事实上,业务总是有状态 的,在交易类的电子商务网站,需要有购物车 记录用户的购买信息,用户每次购买请求都是 向购物车中增加商品;在社交类的网站中,需 要记录用户的当前登录状态、最新发布的消息 等以便及时将这些信息通知给他的好友。Web 应用中将这些状态信息称作会话(Session), 单机情况下,Session可交给Web容器管理,在 使用负载均衡的集群环境中,Session管理主要 有以下几种手段。
负载均衡与分布式应用架构
负ห้องสมุดไป่ตู้均衡与应用服务器集
应用服务器应该设计成无状态的,即应用服 务器不存储请求上下文信息,如果将部署有 相同应用的服务器组成一个集群,每次用户 请求都可以发送到集群中任意一台服务器上 去处理,任何一台服务器的处理结果都是相 同的。这样只要能将用户请求按照某种规则 分发到集群的不同的服务器上,就可以构成 一个应用服务器集群,每个用户的每个请求 都可能落在不同的服务器上。
Session复制
Session绑定
利用Cookie记录Session
Session服务器