关闭

大型网站架构之应用服务器集群化

840人阅读 评论(0) 收藏 举报
分类:
随着网站的发展,一台应用服务器无法处理太多用户请求,考虑部署多台应用服务器组成集群来提供服务。此时问题来了?

问题1:扩展到多台应用服务器时,可能同一个用户的先后两次请求由不同的应用服务器处理,这个时候不同的应用服务器如何进行session的管理。(应用服务器集群的session管理)
问题2:如何将请求均匀的分发给集群中的应用服务器。(应用服务器集群的负载均衡)

应用服务器集群的session管理:
应用服务器集群的session管理有4种手段:session复制,session绑定,cookie中携带session,session服务器(或服务器集群)。
session复制:当用户在某台应用服务器上首次登陆以后,将它的session复制到集群中其他的应用服务器上。如下图:


session绑定:当用户在某台应用服务器上首次登陆以后,负载均衡设备会记得这台应用服务器,该用户以后的每次请求都会被负载均衡设备派发到这台应用服务器上处理。如下图:


cookie携带session:应用服务器把session封装在cookie中返回给浏览器,以后浏览器的每一次请求,应用服务器都可以从cookie中获得session信息。


session服务器(或集群):用一个专门的服务器或服务器集群存储session,应用服务器的所用的session都存储在这个服务器上(在实际应用中,session服务器可以利用数据库或分布式缓存系统)。如下图:


解决了应用服务器集群的session管理,应用服务器就成为了“无状态的”:即应用服务器不保存上下文信息,集群中的每台服务器完全对等。请求提交到每一台服务器处理结果都是一样的。我们把这称为应用服务器的无状态性。

应用服务器集群的负载均衡:
应用服务器的无状态性使得负载均衡成为可能。负载均衡有5种手段,分别为:http重定向负载均衡,DNS域名解析负载均衡,反向代理负载均衡,IP负载均衡,数据链路层负载均衡(也成为三角传输模式)。

http重定向负载均衡:


dns域名解析负载均衡:dns域名解析通常作为第一级别的负载均衡手段,通过将请求解析到网站内部的不同的负载均衡服务器,再由这些负载均衡服务器将请求转发到应用服务器上。


反向代理服务器:由于反向代理工作在http层面,因此也叫应用层负载均衡。


IP负载均衡:在网络层通过修改请求报文的目标地址进行负载均衡。LVS的NAT模式就以此种方式工作。


数链层负载均衡:数链层负载均衡分发过程中不修改IP地址,只修改目的MAC地址,通过配置应用服务器的虚拟IP和负载均衡服务器IP相同即可。链路层负载均衡是目前使用最广泛的负载均衡手段,在linux平台下最好的链路层负载均衡产品是LVS(linus virtual server)


通过上面的描述可以了解,只要服务器集群是无状态的,那么就可以通过负载均衡的手段对这个服务器集群进行伸缩。所以,不仅仅是应用服务器集群,服务层的集群也可以通过这样的手段进行伸缩。但是对于分布式缓存系统,他是有状态的,就不能使用这种方案了。详见下一篇博客。





  • 大小: 54.2 KB
  • 大小: 53.6 KB
  • 大小: 55.3 KB
  • 大小: 61.1 KB
  • 大小: 60.6 KB
  • 大小: 59.2 KB
  • 大小: 59.3 KB
  • 大小: 74.3 KB
  • 大小: 77.5 KB
0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

.Net网站架构设计(二)Web服务器集群架构

网站集群搭建
  • liming850628
  • liming850628
  • 2016-02-23 18:11
  • 2654

大型互联网架构与集群技术

java架构必须掌握的几点技术? 关于学习架构,必须会的几点技术 1. java反射技术 2. xml文件处理 3. properties属性文件处理 4. 线程安全机制 5. annocation...
  • he90227
  • he90227
  • 2015-04-03 17:41
  • 3985

一个分布式服务器集群架构方案

分布式 集群
  • u013276181
  • u013276181
  • 2016-12-07 16:21
  • 2452

构建大型网站架构服务器集群

十步构建大型网站架构(1)今天我们来谈谈一个网站一般是如何一步步来构建起系统架构的,虽然我们希望网站一开始就能有一个很好的架构,但马克思告诉我们事物是在发展中不断前进的,网站架构也是随着业务的扩大、用...
  • chaixiachen
  • chaixiachen
  • 2011-12-08 14:47
  • 1835

外贸B2C网站架构升级-从单服务器到服务器集群

最近,帮朋友把网站架构调整了一下,从单服务器调整到5台服务器集群。朋友的网站是做外贸女装B2C的,前面租用的亚马逊的云主机。系统架构如下:     这样的系统架构,不支持负载均衡、HA和可扩展性...
  • china_world
  • china_world
  • 2012-06-06 14:52
  • 2035

.Net网站架构设计(二)Web服务器集群架构

.Net网站架构设计(二)Web服务器集群架构  开通黄钻 .Net网站架构设计(二)Web服务器集群架构 .Net网站架构设计(二)Web服务器集群架构 转载 ...
  • qq_19389201
  • qq_19389201
  • 2017-12-09 12:48
  • 35

Linux环境下使用Apache搭建Apusic应用服务器集群

  • 2011-12-14 14:12
  • 721KB
  • 下载

应用服务器集群的伸缩性设计

应用服务器集群的伸缩性设计原则:应用服务器应该设计成无状态的,即应用服务器不存储请求上下文信息,每次用户请求都可以发送到集群任意一台服务器上去处理。而一般使用负责均衡实现应用服务器的伸缩性。 实现...
  • Joe520Kay
  • Joe520Kay
  • 2016-12-12 17:43
  • 211

解决应用服务器集群的Session问题

先来看一下什么是Session。 用户使用网站的服务,基本上需要浏览器与Web服务器的多次交互。HTTP协议本身是无状态的,需要基于HTTP协议支持会话状态(Session Stat...
  • ricky73999
  • ricky73999
  • 2017-12-01 17:37
  • 58

J2EE 应用服务器集群

在Web上企业正在选择Java2, Enterprise Edition (J2EE)产生他们关键性任务的应用.在J2EE框架里, 集群提供了保证最少下载时间和最大伸缩性的关键性任务服务.集群是在一组...
  • baby_soga
  • baby_soga
  • 2014-03-25 09:02
  • 627
    个人资料
    • 访问:141425次
    • 积分:1678
    • 等级:
    • 排名:千里之外
    • 原创:139篇
    • 转载:10篇
    • 译文:0篇
    • 评论:36条
    最新评论