`
臻是二哥
  • 浏览: 188547 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
博客专栏
Group-logo
Java技术分享
浏览量: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
分享到:
评论

相关推荐

    大型网站架构资源集合

    9. **各大型网站架构分析.mht**:对不同知名网站的架构进行案例研究,分析它们如何解决特定的技术挑战,为读者提供了实际应用的参考。 10. **大型高并发高负载网站系统架构.mht**:对于处理高并发请求的网站,需要...

    大型网站系统架构演化之路.pdf

    5. 应用服务器集群与负载均衡:为了分担单个应用服务器的压力,可以采用应用服务器集群的方式,并通过负载均衡服务器进行请求分发。负载均衡技术分为硬件和软件两种,硬件如F5,软件如LVS、Nginx、HAProxy。 6. ...

    大型网站架构演变和知识体系【架构演变第十步:进入大型分布式应用时代和廉价服务器群梦想时代】

    本篇将详细探讨这个架构演变的第十个阶段——进入大型分布式应用时代和廉价服务器群梦想时代,同时会涉及到与之相关的源码分析和工具使用。 一、大型分布式应用时代的到来 1. 分布式系统的定义:分布式系统是由多...

    大型网站技术架构_核心原理与案例分析_李智慧PDF高清

    《大型网站技术架构_核心原理与案例分析》是李智慧撰写的一本专著,主要针对Web开发领域的高级架构设计进行深入探讨。这本书旨在帮助读者理解并掌握构建大规模、高性能、高可用性的网站所需的关键技术与实践策略。...

    大型网站技术架构.zip

    《大型网站技术架构》 大型网站技术架构是一个复杂的系统工程,它涵盖了从网站设计初期的架构规划,到后期的性能优化、扩展性考虑等多个方面。本资料主要通过深入讲解网站的发展历程,帮助读者理解大型网站架构的...

    大型WEB网站架构深入分析.pdf

    综合来看,大型WEB网站的架构分析涉及众多技术点,包括但不限于HTML静态化、图片服务器分离、数据库集群与库表散列、缓存技术、镜像技术和负载均衡等。这些技术的综合应用能够显著提高大型网站的性能和稳定性。

    大型网站技术架构

    1. **系统架构演变**:大型网站的发展通常经历单体架构、垂直拆分、水平扩展、分布式服务化、微服务化等阶段。从早期的单一服务器到后来的集群、负载均衡,再到服务化和容器化,每一步都是为了应对不断增长的业务...

    大型网站技术架构核心原理与案例分析

    《大型网站技术架构核心原理与案例分析》这本书深入探讨了构建和优化大型网站所需的关键技术和实践,对于希望成为或已经是架构师的专业人士来说,是一本不可或缺的参考书。书中不仅涵盖了理论知识,还通过实际案例...

    大型门户网站架构设计

    ### 大型门户网站架构设计 #### 一、三层架构简介及其局限性 ##### 1.1 三层架构原理 三层架构是一种常见的软件架构模式,它将应用程序分为三个逻辑层:应用表现层、业务逻辑层和数据访问层。这种分层方式有助于...

    大型网站架构一览从底层到前端技术框架分析.docx

    为了应对高并发访问,网站会采用【应用服务器集群】,通过负载均衡技术将用户请求分发。为了实现【高可用性】,应用服务器设计为无状态,不保存用户会话信息。但是,为了维持用户体验,需要【Session管理】来在集群...

    《大型高负载网站架构和应用初探》

    《大型高负载网站架构和应用初探》这篇文章深入剖析了构建和优化大型高负载网站的关键技术和策略。在当今互联网行业中,像163、Sina、Sohu这样的大型网站需要处理海量用户并发访问,因此他们的架构设计至关重要。 ...

    浅议大型网站动态应用系统架构.docx

    数据库服务器与应用服务器分离,并使用负载均衡设备如BigIP来平衡读库负载。 **4. 缓存系统** 缓存系统主要分为文件缓存、内存缓存和数据库缓存,其中内存缓存如Memcached在大型Web应用中最为高效。缓存系统能提高...

    大型、高负载网站架构和应用初探

    - **架构优化**:采用分布式架构,将不同业务模块部署在不同的服务器集群中。 - **性能监控**:建立了完善的性能监控体系,实时监控系统的各项指标,及时发现并解决问题。 - **社区支持**:积极贡献开源项目,...

    大型电商网站服务器架构完全部署方案.pdf

    应用服务器集群通过负载均衡技术(如F5、LVS、Nginx、HAProxy)分发用户请求,降低单个服务器的压力。四层负载均衡关注目标地址和端口,而七层负载均衡可以基于报文内容选择服务器,提供了更高的灵活性。 5. **...

    服务器负载均衡架构之传输层负载均衡——服务器集群的高扩展性和高可用性.pdf

    相比之下,向外扩展,即构建服务器集群,通过增加服务器数量来分散负载,成为更经济有效的解决方案。 向外扩展的核心在于应用设计的可扩展性,应用程序应被设计成可以跨多台服务器运行多个实例。这种分布式架构使得...

    大型互联网广告应用系统架构

    - **Tomcat**:作为应用服务器承载具体的业务逻辑,通过多实例部署提高并发处理能力。 - **Session管理**:使用Tair集群进行Session数据的分布式存储,有效缓解了单点压力。 - **消息队列**:引入消息队列机制,用于...

    大型网站技术架构+核心原理与案例分析

    这通常包括硬件资源如服务器集群、存储设备、网络设备,以及虚拟化技术如云计算。书中可能会介绍如何根据业务需求选择合适的硬件配置,如何通过负载均衡技术分散流量,以及如何利用虚拟化提高资源利用率。 其次,...

    大型网站架构大型网站架构

    ### 大型网站架构知识点详解 #### 一、大型网站架构概述 大型网站架构是指针对高并发、大流量场景下的网站系统所设计的基础架构。这类架构通常具备高度可靠性、安全性、可扩展性和易于维护等特点,旨在确保网站在...

Global site tag (gtag.js) - Google Analytics