请教一下:负载均衡服务器自身是怎样抗住高并发的?

请教一下:负载均衡服务器自身是怎样抗住高并发的?,第1张

1、负载原理

负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。

负载均衡(Load Balance)其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务

2、负载方案

1)、硬负载---通过在应用服务上层添加负载设备(F5),对访问请求根据后端应用服务的负载情况进行分发到各个服务器

2)、软负载----使用三方、开源软件(proxy、nginx)的配置,部署负载架构

简单负载架构:

3、高并发负载方案

1、扩容服务集群节点,增加相应节点数

2、扩容负载集群节点,减少单节点分流压力

电子商务网站高负载,简单可以分为前端和后台:

前端主要是(应该没有文件下载吧),因为是电子商务网站,少不了大量的,用户集中的情况下,网页加载就会变的极其缓慢。

解决思路:1、压缩,使产品图不失真的情况下尽可能的减少体积,节省宽带。2、增大服务器带宽。3、优化网页代码,尽量采用异步加载方式。4、CDN

后台则是数据处理和数据库负载,电子商务网站后台除了庞大的用户数据要处理意外,还有大量订单,和结算数据。

解决思路:增大数据库服务器配置。

高并发,是所有访问量大的网站都会遇到的问题,并发数是指同一时刻,服务器能接受多少次同时访问,比如服务器配置并发数为200,则这一刻只能允许200个用户同时访问,超过并发数,轻则用户打不开网站,严重的则是服务器宕机。

解决思路:1、CDN。2、增加服务器配置

注:CDN是现在网站普遍使用的加速方案,对减轻服务器负载,避免高并发,缓解恶意攻击都有很好的效果,其主要原理就是将服务器上的数据分发给多个服务器,用户访问的是CDN服务器,从而减轻和保护了网站服务器,也就是常说的云服务器。

决应用高并发的问题方法:

第一,确认服务器硬件是否足够支持当前的流量。 普通的P4服务器一般最多能支持每天10万独立IP,如果访问量比这个还要大,那么必须首先配置一台更高性能的专用服务器才能解决问题,否则怎么优化都不可能彻底解决性能问题。

第二,优化数据库访问。 服务器的负载过大,一个重要的原因是CPU负荷过大,降低服务器CPU的负荷,才能够有效打破瓶颈。而使用静态页面可以使得CPU的负荷最小化。前台实现完全的静态化 当然最好,可以完全不用访问数据库,不过对于频繁更新的网站,静态化往往不能满足某些功能。 缓存技术 就是另一个解决方案,就是将动态数据存储到缓存文件中,动态网页直接调用这些文件,而不必再访问数据库,WordPress和Z-Blog都大量使用这种缓存技术 。我自己也写过一个Z-Blog的计数器插件,也是基于这样的原理。 如果确实无法避免对数据库的访问,那么可以尝试优化数据库的查询SQL避免使用Select from这样的语句,每次查询只返回自己需要的结果,避免短时间内的大量SQL查询。

在线点播都是长时间并发访问的应用,一般看一个视频少则5分钟,长则2小时,高并发特别明显。因此对服务器的cpu、磁盘和网络的性能要求比较高。

你可以看看国产品牌正睿的这款双路四核服务器。标配一颗至强E5620四核八线程处理器(24GHz/586GT/12M缓存),英特尔5500服务器芯片组主板,2G DDR3 REG ECC 1333MHz内存,SATA2 500G硬盘,双千兆网卡,性能可以说是非常不错。如果以后随着业务量的增长,觉得性能不够用了,还可以扩展到两颗处理器,达成8颗处理核心,16条处理线程(在任务管理器处能看到16个处理核心的格子- -~很NB),最大支持48GB DDR3 REG ECC高速容错校验内存。

产品型号:I2496286S-E

产品类型:双路四核机架式服务器

处 理 器:Xeon E5620

内 存:2G DDR3 REG ECC

硬 盘:SATA2 500G

机 构:2U机架式

价 格:¥8999

银牌服务

重庆五年免费上门服务,全国三年免费上门服务,关键部件三年以上免费质保。

为了能存储更多的视频文件,建议你增加4个2tb硬盘,做raid5阵列,既能保障数据安全性,又能提高磁盘系统的性能。增加4个2TB硬盘后的总价也就在12000多。

给你推荐的是国产品牌正睿的服务器产品,他们的产品性价比很高,做工很专业,兼容性,质量之类的都有保障,售后也很完善,3年免费质保,3年免费上门服务,在业界口碑很不错。

1、提供HTML静态访问

web界面上最快的访问速度是什么?当然是最原始的HTML文件访问,对于其他语言 比如 jsp ,asp,php等等,他们首先要通过服务器解析成html之后在返回给访问者,如果我们能提供全部是htm来的页面,那么就能大大的降低服务器和数据库资源的利用和提高网站的并发,所以我们尽可能使我们的网站上的页面采用静态页面来实现,这个最简单的方法其实也是最有效的方法。当然实现这种方式大家比较了解的就是信息发布系统CMS,信息发布系统可以实现最简单的信息录入自动生成静态页面,还能具备频道管理、权限管理、自动抓取等功能,对于一个大型网站来说,拥有一套高效、可管理的CMS是必不可少的。

在后续的文章中我们会单独的使用jsp + servlet实现一个简单的信息发布系统

2、使用独立的服务器

为什么要把单独设置一个服务器?对于Web服务器来说,消耗的服务器资源是最多的,如果能把所有的资源放到一个单独的服务器中进行处理的话,可以降低提供页面访问请求的服务器系统压力,从而能进一步的提高web程序的并发所以在有条件的情况下最好能把放置到一个单独的服务器中

3、配置多台数据库服务器,多个数据库集群

集群(Cluster)技术是使用特定的连接方式,将价格相对较低的硬件设备结合起来,同时也能提供高性能相当的任务处理能力。

越是大型高并发的应用,数据库的压力就会越大,如果数据库操作很频繁,数据库的瓶颈很快就能显现出来,这时一台数据库将很快无法满足应用,于是我们需要使用数据库集群。

数据库集群就是使用多个数据库服务器分担请求的压力,达到快速响应的目的

4、使用缓存

所谓的缓存就是把数据咱是放置到内存中,前台在请求的时候直接从内存中读取数据,而不需要去查询数据库或者读取文件等,这样就能做到最快的响应。网站架构和网站开发中的缓存是非常重要的。

目前有很多开源的缓冲实现方案,APC,File,SQLite,Memcache等等各种类库实现着不同的缓存方式,只有通过了解他们的实现方式,根据具体应用具体选择,才会使缓存系统发挥出最大的性能。

对于java开发来说,大名顶顶的 分布式缓存系统Memcache 可能是最好的选择,他提供一个基于Socket的访问方式,使得该缓存系统支持远程读写访问。尽管这个缓存的内容可能是存在内存中,也可能是存在文件内。

问题一:java程序员面试时被问到:如何在j2ee项目中处理高并发量访问? 该怎么回答? 请仔细看题干再回答 blogcsdn/y_h_t/article/details/6322823

你是一名java程序员,这些应该知道些吧

问题二:如何处理高并发带来的系统性能问题 那必须了解linux中的基本使用,比如如何找到某个路径,如何打开一个文件,如何编辑修改一个文件等等,那就是linux中命令的使用;还有就是必须知道linux服务器中所用的什么服务器(有weblogic、websphere等等);精通相关服务器的重要属性配置等等。

问题三:JAVA中高访问量高并发的问题怎么解决 你指的高并发量大概有多少?

几点需要注意:

尽量使用缓存,包括用户缓存,信息缓存等,多花点内存来做缓存,可以大量减少与数据库的交互,提高性能。

用jprofiler等工具找出性能瓶颈,减少额外的开销。

优化数据库查询语句,减少直接使用hibernate等工具的直接生成语句(仅耗时较长的查询做优化)。

优化数据库结构,多做索引,提高查询效率。

统计的功能尽量做缓存,或按每天一统计或定时统计相关报表,避免需要时进行统计的功能。

能使用静态页面的地方尽量使用,减少容器的解析(尽量将动态内容生成静态html来显示)。

解决以上问题后,使用服务器集群来解决单台的瓶颈问题。

基本上以上述问题解决后,达到系统最优。

至于楼上有人提到别用JAVA来做,除非是低层的连接数过大(如大量的端口占用需求),这种情况下考虑直接C来写,其他的可以用JAVA来做。

问题四:项目中怎么控制多线程高并发访问 synchronized关键字主要解决多线程共享数据同步问题。

ThreadLocal使用场合主要解决多线程中数据因并发产生不一致问题。

ThreadLocal和Synchonized都用于解决多线程并发访问。但是ThreadLocal与synchronized有本质的区别:

synchronized是利用锁的机制,使变量或代码块在某一时该只能被一个线程访问。而ThreadLocal为每一个线程都提供了变量的副本,使 得每个线程在某一时间访问到的并不是同一个对象,这样就隔离了多个线程对数据的数据共享。而Synchronized却正好相反,它用于在多个线程间通信 时能够获得数据共享。

Synchronized用于线程间的数据共享,而ThreadLocal则用于线程间的数据隔离。当然ThreadLocal并不能替代synchronized,它们处理不同的问题域。Synchronized用于实现同步机制,比ThreadLocal更加复杂。

1、Java中synchronized用法

使用了synchronized关键字可以轻松地解决多线程共享数据同步问题。

synchronized关键字可以作为函数的修饰符,也可作为函数内的语句,也就是平时说的同步方法和同步语句块。如果再细的分 类,synchronized可作用于instance变量、object reference(对象引用)、static函数和class literals(类名称字面常量)身上。

synchronized取得的锁都是对象;每个对象只有一个锁(lock)与之相关联;实现同步是要很大的系统开销作为代价的,甚至可能造成死锁,所以尽量避免无谓的同步控制。

问题五:如何处理高并发或列举处理高并发的业务逻辑 1、提高系统的并发能力  2、减轻数据库的负担  这两种用途其实非常容易理解。由于memcached高性能,所以可以同时服务于更多的连接,大大提高了系统的并发处理的能力。另外,memcached 通常部署在业务逻辑层(前台应用)和存储层(主指数据库)之间,作为数据库和前台应用的数据缓冲,因此可以快速的响应前端的请求,减少对数据库的访问。

问题六:数据库怎样处理高并发 1用一个标识,在选择那张票的时候先用(Update 表 set 票flag=‘占用了!’ where 票flag=‘未占用’ and )这样是保险的,不可能存在并发问题,这就牵扯到sql锁机制问题了,你可以测试一下,其实sql中update是先查询出然后删除再添加,但由于使用了update,过程中就自动加锁了,很方便吧2加锁。Microsoft® SQL Server™ 2000 使用锁定确保事务完整性和数据库一致性。锁定可以防止用户读取正在由其他用户更改的数据,并可以防止多个用户同时更改相同数据。如果不使用锁定,则数据库中的数据可能在逻辑上不正确,并且对数据的查询可能会产生意想不到的结果。虽然 SQL Server 自动强制锁定,但可以通过了解锁定并在应用程序中自定义锁定来设计更有效的应用程序。

问题七:数据库怎样处理高并发 理论上不限制并发连接数的就是服务器受硬件的限制过高的并发是会使服务器无法完成并发任务,而造成服务器死机或者假死机不过数据库软件可以优化并发连接,使并发持续的时间更短,以减起服务器的负担,但是一台服务器不能完成几十万的并发

问题八:如何处理大量数据并发操作 如何处理大量数据并发操作

文件缓存,数据库缓存,优化sql,数据分流,数据库表的横向和纵向划分,优化代码结构!

锁述的概

一 为什么要引入锁

多个用户同时对数据库的并发操作时会带来以下数据不一致的问题:

丢失更新

A,B两个用户读同一数据并进行修改,其中一个用户的修改结果破坏了另一个修改的结果,比如订票系统

脏读

A用户修改了数据,随后B用户又读出该数据,但A用户因为某些原因取消了对数据的修改,数据恢复原值,此时B得到的数据就与数据库内的数据产生了不一致

不可重复读

A用户读取数据,随后B用户读出该数据并修改,此时A用户再读取数据时发现前后两次的值不一致

并发控制的主要方法是封锁,锁就是在一段时间内禁止用户做某些操作以避免产生数据不一致

二 锁的分类

锁的类别有两种分法:

1 从数据库系统的角度来看:分为独占锁(即排它锁),共享锁和更新锁

MS-SQL Server 使用以下资源锁模式。

锁模式 描述

共享 (S) 用于不更改或不更新数据的操作(只读操作),如 SELECT 语句。

更新 (U) 用于可更新的资源中。防止当多个会话在读取、锁定以及随后可能进行的资源更新时发生常见形式的死锁。

排它 (X) 用于数据修改操作,例如 INSERT、UPDATE 或 DELETE。确保不会同时同一资源进行多重更新。

意向锁 用于建立锁的层次结构。意向锁的类型为:意向共享 (IS)、意向排它 (IX) 以及与意向排它共享 (SIX)。

架构锁 在执行依赖于表架构的操作时使用。架构锁的类型为:架构修改 (Sch-M) 和架构稳定性 (Sch-S)。

大容量更新 (BU) 向表中大容量复制数据并指定了 TABLOCK 提示时使用。

共享锁

共享 (S) 锁允许并发事务读取 (SELECT) 一个资源。资源上存在共享 (S) 锁时,任何其它事务都不能修改数据。一旦已经读取数据,便立即释放资源上的共享 (S) 锁,除非将事务隔离级别设置为可重复读或更高级别,或者在事务生存周期内用锁定提示保留共享 (S) 锁。

更新锁

更新 (U) 锁可以防止通常形式的死锁。一般更新模式由一个事务组成,此事务读取记录,获取资源(页或行)的共享 (S) 锁,然后修改行,此操作要求锁转换为排它 (X) 锁。如果两个事务获得了资源上的共享模式锁,然后试图同时更新数据,则一个事务尝试将锁转换为排它 (X) 锁。共享模式到排它锁的转换必须等待一段时间,因为一个事务的排它锁与其它事务的共享模式锁不兼容;发生锁等待。第二个事务试图获取排它 (X) 锁以进行更新。由于两个事务都要转换为排它 (X) 锁,并且每个事务都等待另一个事务释放共享模式锁,因此发生死锁。

若要避免这种潜在的死锁问题,请使用更新 (U) 锁。一次只有一个事务可以获得资源的更新 (U) 锁。如果事务修改资源,则更新 (U) 锁转换为排它 (X) 锁。否则,锁转换为共享锁。

排它锁

排它 (X) 锁可以防止并发事务对资源进行访问。其它事务不能读取或修改排它 (X) 锁锁定的数据。

意向锁

意向锁表示 SQL Server 需要在层次结构中的某些底层资源上获取共享 (S) 锁或排它 (X) 锁。例如,放置在表级的共享意向锁表示事务打算在表中的页或行上放置共享 (S) 锁。在表级设置意向锁可防止另一个事务随后在包含那一页的表上获取排它 (X) 锁。意向锁可以提高性能,因为 SQL Server 仅在表级检查意向锁来确定事务是否可以安全地获取该表上的锁。而无须检查表中的每行或每页上的锁>>

问题九:高并发是什么和如何解决 数据库建立多表关联,关键业务数据字段和查询字段建立索引,对唯一性建立好,同时多任务并发时程序设计时注意数据的合理性检验和用户处理数据有问题时的友好提示见面,建立好的结构文档说明,同时对关键字段的关系型作好记录,有效地设计多表的结构安排,尽量减少数据的冗余,同时又要避免对历史数据的影响,保持良好的数据管理

问题十:如何处理高并发量的HTTP请求 尽量减少页面的HTTP请求,可以提高页面载入速度。减少页面中的元素网页中的的、form、flash等等元素都会发出HTTP请求,尽可能的减少页面中非必要的元素,可以减少HTTP请求的次数。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 请教一下:负载均衡服务器自身是怎样抗住高并发的?

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情