大型网站--负载均衡架构选型关注点
- 格式:docx
- 大小:1.70 MB
- 文档页数:10
网站性能优化与负载均衡对于现代网站来说,高性能和高可用性是至关重要的。
随着用户对网站响应速度和稳定性的要求越来越高,网站性能优化和负载均衡成为了构建高效网站的关键。
一、网站性能优化的重要性网站性能优化是指通过各种手段和技术来提高网站的加载速度和响应时间,以提升用户体验和满足用户的需求。
优化网站性能不仅可以提高用户的满意度,还可以增加网站的转化率和收入。
1.1 缩短页面加载时间页面加载时间是用户判断一个网站性能的关键指标之一。
当用户访问一个网站时,如果页面加载时间过长,会导致用户流失率的增加。
所以,优化网站的页面加载时间至关重要。
1.2 提升服务器性能服务器性能对网站的稳定性和响应时间有着直接影响。
通过优化服务器的硬件配置,合理分配服务器资源,以及优化服务器中的软件配置,可以提高服务器的性能,进而提升网站的性能。
1.3 前端性能优化前端性能优化是指通过对网站前端代码、图像压缩和资源合并等技术手段的应用,来减少网站的HTTP请求数量和文件大小,以提高网站的加载速度。
二、负载均衡的作用和原理负载均衡是通过将用户请求分发到多个服务器上,以避免单一服务器负载过载,提高网站的可用性和性能。
负载均衡可以平衡服务器的负载,减少单个服务器的压力,提高网站的可扩展性和容错性。
2.1 作用负载均衡可以提高网站的可用性和性能,保证用户能够快速访问和使用网站。
当某一台服务器出现故障时,负载均衡可以将用户的请求自动转发到其他可用的服务器上,避免因单点故障而导致网站宕机。
2.2 原理负载均衡可以通过多种方式实现,如DNS负载均衡、硬件负载均衡和软件负载均衡等。
- DNS负载均衡是通过将一个域名映射到多个IP地址上,使得用户的请求可以被分发到不同的服务器上。
- 硬件负载均衡是通过使用专门的负载均衡设备(如负载均衡器或交换机)来分发用户的请求,根据服务器的性能和负载情况,将请求分发到不同的服务器上。
- 软件负载均衡是通过在服务器集群中的每一台服务器上运行负载均衡软件,将请求分发到不同的服务器上。
随着互联网的迅猛发展,大型网站架构设计显得尤为重要。
2024年,大型网站架构设计方案主要关注以下几点:1.扩展性和可伸缩性:随着用户量的增长以及业务需求的变化,大型网站需要能够快速扩展和处理大量的并发请求。
因此,架构设计方案需要考虑如何实现分布式部署、负载均衡和水平扩展等能力。
2.高可用性和容错性:大型网站需要具备高可用性,即在部分节点或系统故障的情况下,仍能保持正常运行。
因此,架构设计方案需要考虑如何实现故障转移、错误恢复和数据备份等能力。
3.高性能:大型网站需要具备高性能,即能够快速响应用户请求并处理大量的并发访问。
因此,架构设计方案需要考虑如何优化数据库查询、缓存数据和使用异步处理等技术手段来提高网站的性能。
4.安全性:大型网站需要具备较高的安全性,即能够有效防御各种网络攻击和恶意行为。
因此,架构设计方案需要考虑如何实现固定漏洞、防止数据库注入和加密敏感数据等能力。
基于以上需求,2024年大型网站架构设计方案可以采用如下方案:1. 分布式架构:将大型网站拆分为多个独立的子系统,每个子系统可以独立部署和扩展。
可以采用微服务架构或领域驱动设计(Domain-driven Design, DDD)来实现分布式架构。
2. 负载均衡:使用负载均衡器将用户请求均匀分配给不同的服务器节点,提高系统的并发处理能力。
可以使用硬件负载均衡器或软件负载均衡器,如Nginx、HAProxy等。
3. 水平扩展:根据实际需求,可以通过增加服务器节点的数量来扩展系统的处理能力。
可以使用自动化部署工具和容器化技术,如Docker、Kubernetes等来实现快速扩展。
4. 高可用性和容错性:采用主从复制和集群技术来实现数据备份和冗余,保证系统在部分节点或系统故障的情况下仍能正常运行。
可以使用数据库集群技术,如MySQL Cluster、MongoDB Replica Set等。
5. 高性能:通过优化数据库查询、使用缓存技术和异步处理来提高系统的性能。
⼤型⽹站技术架构1. ⼤型⽹站架构演化发展历程1)初始阶段的⽹站架构应⽤程序、数据库、⽂件等所有资源都在⼀台服务器上。
Linux+PHP+Apache+MySQL。
初始阶段的⽹站架构2)应⽤服务和数据服务分离使⽤三台服务器:应⽤服务器、⽂件服务器、数据库服务器。
应⽤服务和数据服务分离3)使⽤缓存改善⽹站性能⽹站使⽤缓存4)使⽤应⽤服务器集群改善⽹站的并发处理能⼒应⽤服务器集群部署5)数据库读写分离数据库读写分离6)使⽤反向代理和CDN加速⽹站响应⽹站使⽤反向代理和CDN加速访问7)使⽤分布式⽂件系统和分布式数据库系统使⽤分布式⽂件和分布式数据库系统8)使⽤NoSQL和搜索引擎使⽤NoSQL和搜索引擎9)业务拆分垂直拆分,分⽽治之,按业务拆分成不同的应⽤。
业务拆分10)分布式服务⽔平拆分,提取公共组件,中台战略。
分布式服务2. ⼤型⽹站架构模式1)分层⽔平切分:应⽤层、服务层、数据层。
2)分割垂直切分:按业务切分。
3)分布式分布式应⽤和服务、分布式数据和存储、分布式计算、分布式锁、分布式⽂件系统。
4)集群5)缓存6)异步7)冗余8)⾃动化9)安全3. ⼤型⽹站核⼼架构要素软件架构:系统的各个重要组成部分及其关系构成了系统的架构,这些组成部分可以是具体的功能模块,也可以是⾮功能的设计与决策,他们相互关系组成⼀个整体,共同构成了软件系统的架构。
1)性能性能优化,前端:浏览器缓存、页⾯压缩、CDN缓存、反向代理缓存。
后端:缓存、异步、集群、多线程、改善内存管理、数据库索引、SQL优化。
2)可⽤性⾼可⽤的⼿段:冗余、负载均衡集群。
3)伸缩性关注点:⾮功能性需求(技术需求)。
衡量架构伸缩性的主要标准:是否可以⽤多台服务器构建集群,是否容易向集群中添加新的服务器,新服务器是否可以提供和原服务器⽆差别的服务,集群可容纳的总的服务器数量是否有限制。
4)扩展性关注点:功能需求。
衡量架构扩展性的主要标准:增加新的业务产品时,是否可以实现对现有产品透明⽆影响,不需要改动或者很少改动既有业务功能就可以上线新产品,不同产品之间是否很少耦合,⼀个产品改动对其他产品功能⽆影响。
大型网站的架构设计和性能优化随着互联网的发展,大型网站的架构设计和性能优化变得越来越重要。
一方面,用户对网站的性能要求越来越高,期望能够快速、稳定地访问网站,另一方面,随着网站业务规模的不断扩大,网站架构设计也面临着挑战。
本文将讨论大型网站的架构设计和性能优化,包括架构设计的原则和方法、性能优化的策略和技术手段等。
一、大型网站的架构设计大型网站的架构设计是一个复杂而关键的工作,其关键在于满足网站的高可用性、高性能、高伸缩性和高安全性等需求。
在进行架构设计时,需要考虑以下几个方面:1.高可用性大型网站通常需要实现24*7的全天候访问,因此高可用性是架构设计的首要考虑因素。
为了实现高可用性,可以采用多台服务器进行负载均衡,同时使用冗余备份和故障转移等技术手段。
2.高性能大型网站通常需要处理大量的并发访问请求,因此高性能是架构设计的另一个重要考虑因素。
为了实现高性能,可以采用分布式架构、缓存技术和异步处理等手段。
3.高伸缩性大型网站的流量可能会随着业务规模的扩大而急剧增加,因此高伸缩性是架构设计的另一个重要考虑因素。
为了实现高伸缩性,可以采用水平扩展和垂直扩展等技术手段。
4.高安全性大型网站通常会面临各种网络安全威胁,因此高安全性是架构设计的另一个重要考虑因素。
为了实现高安全性,可以采用防火墙、反向代理和加密传输等技术手段。
在进行架构设计时,需要综合考虑以上几个方面的因素,制定合理的架构设计方案。
二、大型网站的性能优化大型网站的性能优化是一个复杂而关键的工作,其关键在于提高网站的访问速度、降低网站的响应时间和提高网站的并发处理能力等。
在进行性能优化时,需要采取以下几个策略和技术手段:1.前端性能优化前端性能优化是指通过优化网页的HTML、CSS和JavaScript等前端资源,提高网页的加载速度和渲染效率。
具体可以采取以下几个技术手段:压缩和合并前端资源、使用CDN加速、使用异步加载和延迟加载等。
2.后端性能优化后端性能优化是指通过优化服务器端的应用程序和数据库等后端资源,提高网站的响应时间和并发处理能力。
大型网站架构设计原则详解随着互联网的快速发展,大型网站已经成为了互联网的主流之一。
普及率高、访问量大,这些大型网站的核心技术便一直备受关注。
而实现这些核心技术的关键点便是架构。
大型网站的架构设计原则必须具备规模化、高可用、可扩展、安全性等要素。
下面笔者将就这几个方面逐一介绍。
一、规模化众所周知,大型网站的用户数一般都是级数级的,所以网站架构设计的首要原则之一是规模化。
规模化是指通过多台服务器来分摊网站的负载并提高网站的并发能力,同时确保网站的性能和可靠性。
在设计规模化的架构时,需要考虑负载均衡、缓存、分布式、异步处理等因素。
其中,负载均衡是最重要的基础,因为它可以确保网站的可用性。
一个好的负载均衡设计可以使得用户请求被分散到不同的服务器,从而保证用户的访问速度和质量。
另外,缓存也是规模化架构的另一个重要因素,通过将常用数据存储到缓存服务器上,可以大幅提高网站的响应速度,减轻数据库服务器的负载。
二、高可用高可用是指网站始终能够对外提供服务,避免发生宕机或服务不可用等情况。
网站的高可用性与应用程序、硬件、网络设备等因素密切相关,需要采取相应的措施来保证。
在高可用设计中,主要涉及到数据备份和灾难恢复、容错和故障转移、监控和告警等技术。
数据备份和灾难恢复可以通过定期备份和灾难恢复方案来保障数据的完整性;容错和故障转移可以通过采用冗余设计、切换机制等方式来实现;监控和告警则是通过监控系统来实时反馈网站的状态并发送告警信息,保障网站的稳定性。
三、可扩展性可扩展性是指网站架构可以随着业务的发展而快速扩展,从而满足用户的需求。
在设计可扩展的架构时,应当考虑业务增长、数据增长等方面的问题。
在可扩展设计中,需要注意使用可伸缩的硬件和软件,采用分布式和异步处理技术,以及设计合理的数据库和缓存等。
此外,还应考虑负载均衡、复制和分割等方面的问题,保证网站的可伸缩性。
四、安全性安全性是大型网站设计不可或缺的一个方面。
互联网的不安全性使得网站极易遭受黑客攻击、病毒侵袭、数据泄漏等安全威胁。
浅谈大型网站之负载均衡架构概念负载均衡,英文名称为Load Balance,其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。
负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。
分类一般有以下3种类型的负载均衡架构1、链路负载均衡链路负载均衡就是一般讲的DNS轮循负载均衡,负载均衡是由DNS动态解析成不同的IP完成的,在DNS中为多个地址配置同一个名字,因而查询这个名字的客户机将得到其中一个地址,从而使得不同的客户访问不同的服务器,达到负载均衡的目的。
DNS负载均衡虽然是一种简单而有效的方法,但是它不能区分服务器的差异,也不能反映服务器的当前运行状态,如果某一台服务器挂掉了,即这个域名不能被访问,整个网站也就瘫痪了,后果是可想而知的。
2、集群负载均衡集群负载均衡是目前比较广泛使用的负载均衡方式,主要分为硬件层和软件层的负载均衡。
硬件负载均衡就是像F5这样的负载均衡设备,通过负载均衡硬件设备来分发用户的请求。
硬件负载均衡性能特别好,但同时价格也非常昂贵,一般小公司用不起的,还有硬件负载均衡也不能动态扩容,当然这不够成问题。
软件负载均衡就是现在使用最多较为普遍的一种负载均衡方式,主要就是软件成本相对硬件来说成本比较低,直接购买普通的服务器就能搭建软件负载均衡,但如果软件负载均衡需要经过的代理服务器比较多也会带来网络延迟等问题。
常见的软件负载均衡包括工作在TCP第四层的LVS,即在网络层进行IP地址分发,然后还有工作在TCP第7层的HaProxy、Nginx等根据用户访问信息(如:域名、Cookie等信息)分发到不同的服务器。
3、操作系统负载均衡操作系统负载均衡就是通过利用操作系统级别的软中断和硬中断来达到负载均衡,比如可以设置多队列的网卡来实现等,这种负载均衡一般不会用到。
一、软件负载均衡概述硬件负载均衡性能优越,功能全面,但是价格昂贵,一般适合初期或者土豪级公司长期使用。
因此软件负载均衡在互联网领域大量使用。
常用的软件负载均衡软件有Nginx,Lvs,HaProxy等。
本文参考大量文档,部分为直接拷贝。
二、Ngnix负载均衡Ngnix是一款轻量级的Web服务器/反向代理服务器,工作在七层Http协议的负载均衡系统。
具有高性能、高并发、低内存使用等特点。
是一个轻量级的Http 和反向代理服务器。
Nginx使用epoll and kqueue作为开发模型。
能够支持高达50,000 个并发连接数的响应。
操作系统:Liunx,Windows(Linux、FreeBSD、Solaris、Mac OS X、AIX以及Microsoft Windows)开发语言:C并发性能:官方支持每秒5万并发,实际国内一般到每秒2万并发,有优化到每秒10万并发的。
具体性能看应用场景。
2.1.特点1.模块化设计:良好的扩展性,可以通过模块方式进行功能扩展。
2.高可靠性:主控进程和worker是同步实现的,一个worker出现问题,会立刻启动另一个worker。
3.内存消耗低:一万个长连接(keep-alive),仅消耗2.5MB内存。
4.支持热部署:不用停止服务器,实现更新配置文件,更换日志文件、更新服务器程序版本。
5.并发能力强:官方数据每秒支持5万并发;6.功能丰富:优秀的反向代理功能和灵活的负载均衡策略2.2.功能2.2.1 基本功能∙支持静态资源的web服务器。
∙http,smtp,pop3协议的反向代理服务器、缓存、负载均衡;∙支持FASTCGI(fpm)∙支持模块化,过滤器(让文本可以实现压缩,节约带宽),ssl及图像大小调整。
∙内置的健康检查功能∙基于名称和ip的虚拟主机∙定制访问日志∙支持平滑升级∙支持KEEPALIVE∙支持url rewrite∙支持路径别名∙支持基于IP和用户名的访问控制。
《大型网站架构系列:负载均衡详解(上)》面对大量用户访问、高并发请求,海量数据,可以使用高性能的服务器、大型数据库,存储设备,高性能Web服务器,采用高效率的编程语言比如(Go,Scala)等,当单机容量达到极限时,我们需要考虑业务拆分和分布式部署,来解决大型网站访问量大,并发量高,海量数据的问题。
从单机网站到分布式网站,很重要的区别是业务拆分和分布式部署,将应用拆分后,部署到不同的机器上,实现大规模分布式系统。
分布式和业务拆分解决了,从集中到分布的问题,但是每个部署的独立业务还存在单点的问题和访问统一入口问题,为解决单点故障,我们可以采取冗余的方式。
将相同的应用部署到多台机器上。
解决访问统一入口问题,我们可以在集群前面增加负载均衡设备,实现流量分发。
负载均衡(Load Balance),意思是将负载(工作任务,访问请求)进行平衡、分摊到多个操作单元(服务器,组件)上进行执行。
是解决高性能,单点故障(高可用),扩展性(水平伸缩)的终极解决方案。
本文是负载均衡详解的第一篇文章,介绍负载均衡的原理,负载均衡分类(DNS负载均衡,HTTP负载均衡,IP负载均衡,链路层负载均衡,混合型P负载均衡)。
部分内容摘自读书笔记。
一、负载均衡原理系统的扩展可分为纵向(垂直)扩展和横向(水平)扩展。
纵向扩展,是从单机的角度通过增加硬件处理能力,比如CPU处理能力,内存容量,磁盘等方面,实现服务器处理能力的提升,不能满足大型分布式系统(网站),大流量,高并发,海量数据的问题。
因此需要采用横向扩展的方式,通过添加机器来满足大型网站服务的处理能力。
比如:一台机器不能满足,则增加两台或者多台机器,共同承担访问压力。
这就是典型的集群和负载均衡架构:如下图:应用集群:将同一应用部署到多台机器上,组成处理集群,接收负载均衡设备分发的请求,进行处理,并返回相应数据。
∙∙∙负载均衡设备:将用户访问的请求,根据负载均衡算法,分发到集群中的一台处理服务器。
各种大型网站技术架构大型网站技术架构是指那些能够应对高并发、大数据处理以及高可用性等特点的网站架构。
下面将介绍几种常见的大型网站技术架构。
1. 分层架构(Layered Architecture)分层架构是一种常见的大型网站技术架构,将系统分为多个层次,每个层次具有特定的功能。
主要包括用户界面层、应用程序层、业务逻辑层、数据访问层等。
这种架构的优点是清晰、可维护性好,不同层次的模块可以独立开发和测试,容易实现扩展和升级。
2. 微服务架构(Microservices Architecture)微服务架构是一种将大型系统拆分为多个小型服务的架构。
每个服务都运行在独立的进程中,通过API进行通信。
这种架构的优点是灵活性高,每个服务可以独立开发、部署、扩展和替换,容错性好,能够快速响应变化。
3. 分布式架构(Distributed Architecture)分布式架构是将系统的各个组件分布在不同的服务器上,通过网络进行通信。
这种架构的优点是能够有效地处理大规模数据,提高系统的可扩展性和可靠性。
常见的分布式架构包括Master/Slave(主从)、Master/Master(主主)、分布式缓存、分布式数据库等。
4. 高可用性架构(High Availability Architecture)高可用性架构是保证系统在任何时候都能保持正常运行的架构。
为了实现高可用性,常见的架构模式包括负载均衡、故障转移、冗余备份等。
负载均衡可以将请求分发到多个服务器上,提高系统的吞吐量和响应速度。
故障转移可以在一些服务器故障的情况下,将请求转移到其他正常运行的服务器上。
冗余备份可以保证系统在部分组件发生故障的情况下仍然能够正常运行。
5. 大数据架构(Big Data Architecture)大数据架构是用于处理大规模数据的架构。
常见的大数据架构包括分布式存储系统(如Hadoop、HDFS)、分布式计算框架(如MapReduce)以及实时数据处理系统(如Spark、Storm)。
大型网站--负载均衡架构
负载均衡(Load Balancing)负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。
•全局负载均衡系统(GSLB)
•内容缓存系统(CDN)
•服务器负载均衡系统(SLB)
最初的负载均衡解决方案(DNS轮询)
优点
•基本上无成本,因为往往域名注册商的这种解析都是免费的;
•部署方便,除了网络拓扑的简单扩增,新增的Web服务器只要增加一个公网IP即可
缺点
•健康检查,如果某台服务器宕机,DNS服务器是无法知晓的,仍旧会将访问分配到此服务器。
修改DNS记录全部生效起码要3-4小时,甚至更久;
•分配不均,如果几台Web服务器之间的配置不同,能够承受的压力也就不同,但是DNS解析分配的访问却是均匀分配的。
用户群的分配不均衡导致DNS解析的不均衡。
•会话保持,如果是需要身份验证的网站,在不修改软件构架的情况下,这点是比较致命的,因为DNS解析无法将验证用户的访问持久分配到同一服务器。
虽然有一定的本地DNS缓存,但是很难保证在用户访问期间,本地DNS不过期,而重新查询服务器并指向新的服务器,那么原服务器保存的用户信息是无法被带到新服务器的,而且可能要求被重新认证身份,来回切换时间长了各台服务器都保存有用户不同的信息,对服务器资源也是一种浪费。
全局负载均衡系统(GSLB)
优势
•数据中心冗余备份
•多站点流量优化
•确保用户体验
全局负载均衡系统(GSLB)的原理
DNS检查工具网上有很多,感兴趣的可以搜索一下。
内容缓存系统(CDN)
•内容缓存系统(CDN)之静态加速
•内容缓存系统(CDN)之动态加速
动态加速的特点
•智能路由
•传输控制协议(TCP)优化
•HTTP预载
应用背景
•访问流量快速增长
•业务量不断提高
用户需求
•希望获得7×24的不间断可用性及较快的系统反应时间负载均衡必须满足性能、扩展、可靠性
服务器负载均衡系统的常见调度算法
•轮询(Round Robin)
•加权轮询(Weighted Round Robin)
•最少连接(Least Connections)
•加权最少连接(Weighted Least Connections)
健康性检查
健康性检查算法的目的:通过某种探针机制,检查服务器群中真实服务器的健康情况,避免把客户端的请求分发给出现故障的服务器,以提高业务的HA能力。
目前常用的健康性检查算法:
•Ping(ICMP)
•TCP
•HTTP
•FTP
系统加速
优化功能-SSL加速
优化功能-HTTP压缩
HTTP压缩是在Web服务器和浏览器间传输压缩文本内容的方法。
F5 HTTP压缩技术通过具有智能压缩能力的BIG-IP 系统可缩短应用交付时间并优化带宽。
HTTP压缩采用通用的压缩算法压缩HTML、JavaScript或CSS文件。
压缩的最大好处就是降低了网络传输的数据量,从而提高客户端浏览器的访问速度。
优化功能-连接复用
优化功能-TCP缓存
会话保持
会话保持-客户端源IP会话保持
源IP地址会话保持就是将同一个源IP地址的连接或者请求认为是同一个用户,根据会话保持策略,在会话保持有效期内,将这些发自同一个源IP地址的连接/请求都转发到同一台服务器。
当采用基于源地址的会话保持无法做到负载均分时,例如客户端发起连接请求的源IP地址相对固定,发生此类问题通常可采用基于应用层的会话保持方式,Cookie通常是存在于H TTP头中,现如今基于HTTP的应用被广泛使用,因此基于Cookie的会话保持越来越多的出现在服务器负载均衡解决方案中。
局限性:
对于非HTTP协议,或者客户端禁用Cookie,无效。
哈希会话保持的一个基本概念就是按照某个Hash因子,根据此因子以及后台存在多少台服务器计算得到的结果来选择将请求分配到那台服务器。
哈希会话保持的特点是在后台服务器的健康状态不发生改变的时候,每个特定的Hash因子被分配到的服务器是固定的。
其最大的优势是哈希会话保持可以没有会话保持表,而仅仅是根据计算的结果来确定被分配到那台服务器,尤其在一些会话保持表查询的开销已经远远大于Hash计算开销的情况下,采用Hash会话保持可以提高系统的处理能力和响应速度。
URL哈希会话保持通常针对后台采用Cache服务器的应用场景,针对URL进行Hash 计算,将同一个URL的请求分配到同一台Cache服务器,这样,对后台的Cache服务器群来说,每台Cache服务器上存放的内容都是不一样的,提高Cache服务器的利用率。
1
故障现象:
Web服务端对用户访问的URL进行判断,对于非https的请求,重定向到http站点,结果导致用户一直302跳转。
原因分析:
采用了负载均衡SSL加速功能,在服务端看到所有的用户请求都来自于http。
解决方案:
全站启用SSL加速。
2
故障现象:
用户在http站点上提交数据到同域名的https站点,web程序抛出session丢失的异常,用户提交数据失败。
原因分析:
http和https在负载均衡设备上被认为是2个独立的服务,产生2个独立的TCP链接,会命中不同的真实服务器,导致session丢失。
解决方案:
在负载均衡设备上启用基于真实服务器的会话保持。
3
故障现象:
服务端获取不到用户外网的IP地址,看到的都是大量来自于内网特定网段的IP地址。
原因分析:
负载均衡设备启用了用户源地址转换(SNAT)模式,修改了TCP报文中的用户源I P。
解决方案:
负载均衡设备会用用户的外网IP改写x-forwarded-for值,服务端通过获取http协议中request header头的x-forwarded-for值作为用户源IP。
IIS日志通过安装插件形式显示用户源IP。
1.价格因素
硬件设备:F5、Citrix 、Redware 、A10
软件:LVS、Nginx、Haproxy、zen loadbalance
2.性能
4/7层吞吐量(单位bps)
4/7层新建连接数(单位CPS)
并发连接数
功能模块性能指标(ssl加速、HTTP压缩、内存Cache)
3.满足真实和未来需求
1)如果确认负载均衡设备对所有应用的处理都是最简单的4层处理,那么理论上选择的负载均衡设备的4层性能稍高于实际性能需求即可。
2)如果确认负载均衡设备对所有应用的处理都是简单的7层处理,那么理论上选择的负载均衡设备的7层性能稍高于实际性能需求即可。
3)如果负载均衡设备处理的应用既有4层的也有7层的,建议按照7层应用的性能来考虑负载均衡设备。
4)如果确认自己的应用经过负载均衡处理时,需要复杂的4层或者7层处理,例如需要根据客户端的地址做策略性分发,需要根据tcp的内容做处理,需要根据HTTP头或者HTTP报文做处理,那么建议选择的负载均衡设备4/7层性能为真实性能需求的两倍。
5)如果负载均衡设备有混合的复杂流量处理并且还开启了一些功能模块,那么建议选择的负载均衡设备4/7层性能为真实性能需求的3倍。
6)考虑到设备需要轻载运行才能更加稳定,所以有可能的话在以上基础上再增加30%的性能。
7)如果还要满足未来几年的发展需求,在以上基础上还要留出未来发展所需要增加的性能。
8)不同负载均衡设备厂家由于不同的架构,使得某些设备在复杂环境下可能也表现的比较优秀,这个客户可以对比判断,但总体来说,以上建议适合于所有厂家的设备。