什么是高并发,如何避免高并发

之前我将高并发的解决方法误认为是线程或者是队列可以解决,因为高并发的时候是有很多用户在访问,导致出现系统数据不正确、丢失数据现象,所以想到 的是用队列解决,其实队列解决的方式也可以处理,比如我们在竞拍商品、转发评论微博或者是秒杀商品等,同一时间访问量特别大,队列在此起到特别的作用,将 所有请求放入队列,以毫秒计时单位,有序的进行,从而不会出现数据丢失系统数据不正确的情况。

今天我经过查资料,高并发的解决方法有俩种,一种是使用缓存、另一种是使用生成静态页面;还有就是从最基础的地方优化我们写代码减少不必要的资源浪费:(

1.不要频繁的new对象,对于在整个应用中只需要存在一个实例的类使用单例模式.对于String的连接操作,使用StringBuffer或者StringBuilder.对于utility类型的类通过静态方法来访问。

2. 避免使用错误的方式,如Exception可以控制方法推出,但是Exception要保留stacktrace消耗性能,除非必要不要使用 instanceof做条件判断,尽量使用比的条件判断方式.使用JAVA中效率高的类,比如ArrayList比Vector性能好。)

首先缓存技术我一直没有使用过,我觉得应该是在用户请求时将数据保存在缓存中,下次请求时会检测缓存中是否有数据存在,防止多次请求服务器,导致服务器性能降低,严重导致服务器崩溃,这只是我自己的理解,详细的资料还是需要在网上收集;

使用生成静态页面我想大家应该不模式,我们见过很多网站当在请求的时候页面的后最已经变了,如“http://developer.51cto.com/art/201207/348766.htm”该页面其实是一个服务器请求地址,在转换成htm后,访问速度将提升,因为静态页面不带有服务器组件;在这里我就多多介绍一下:

一、什么是页面静态化:

简 单的说,我们如果访问一个链接 ,服务器对应的模块会处理这个请求,转到对应的jsp界面,最后生成我们想要看到的数据。这其中的缺点是显而易见的:因为每次请求服务器都会进行处理,如 果有太多的高并发请求,那么就会加重应用服务器的压力,弄不好就把服务器 搞down 掉了。那么如何去避免呢?如果我们把对 test.do 请求后的结果保存成一个 html 文件,然后每次用户都去访问 ,这样应用服务器的压力不就减少了?

那么静态页面从哪里来呢?总不能让我们每个页面都手动处理吧?这里就牵涉到我们要讲解的内容了,静态页面生成方案… 我们需要的是自动的生成静态页面,当用户访问 ,会自动生成 test.html ,然后显示给用户。

二、下面我们在简单介绍一下要想掌握页面静态化方案应该掌握的知识点:

1、 基础- URL Rewrite

什么是 URL Rewrite 呢 ? URL 重写。用一个简单的例子来说明问题:输入网址 ,但是实际上访问的却是 abc.com/test.action,那我们就可以说 URL 被重写了。这项技术应用广泛,有许多开源的工具可以实现这个功能。

2、 基础- Servlet web.xml

如果你还不知道 web.xml 中一个请求和一个 servlet 是如何匹配到一起的,那么请搜索一下 servlet 的文档。这可不是乱说呀,有很多人就认为 /xyz/*.do 这样的匹配方式能有效。

如果你还不知道怎么编写一个 servlet ,那么请搜索一下如何编写 servlet.这可不是说笑呀,在各种集成工具漫天飞舞的今天,很多人都不会去从零编写一个 servlet了。

三、基本的方案介绍

其中,对于 URL Rewriter的部分,可以使用收费或者开源的工具来实现,如果 url不是特别的复杂,可以考虑在 servlet 中实现,那么就是下面这个样子:

总 结:其实我们在开发中都很少考虑这种问题,直接都是先将功能实现,当一个程序员在干到1到2年,就会感觉光实现功能不是最主要的,安全性能、质量等等才是 一个开发人员最该关心的。今天我所说的是高并发,我的解决思路是,1、采用分布式应用设计2、分布式缓存数据库3、代码优化

时间: 2024-11-08 18:17:56

什么是高并发,如何避免高并发的相关文章

Java并发编程与高并发解决方案

第1章 课程准备   1-1 课程导学    1-2 并发编程初体验   1-3 并发与高并发基本概念第2章 并发基础   2-1 CPU多级缓存-缓存一致性   2-2 CPU多级缓存-乱序执行优化   2-3 JAVA内存模型    2-4 并发的优势与风险第3章 项目准备   3-1 案例环境初始化   3-2 案例准备工作    3-3 并发模拟-工具   3-4 并发模拟-代码 第4章 线程安全性   4-1 线程安全性-原子性-atomic-1    4-2 线程安全性-原子性-at

长文慎入-探索Java并发编程与高并发解决方案

所有示例代码,请见/下载于https://github.com/Wasabi1234/concurrency #1 基本概念##1.1 并发同时拥有两个或者多个线程,如果程序在单核处理器上运行多个线程将交替地换入或者换出内存,这些线程是同时"存在"的,每个线程都处于执行过程中的某个状态,如果运行在多核处理器上,此时,程序中的每个线程都将分配到一个处理器核上,因此可以同时运行.##1.2 高并发( High Concurrency) 互联网分布式系统架构设计中必须考虑的因素之一,通常是指

SYS_并发管理系列4_并发程序管理器程序优先级Priority(案例)

2015-01-22 Created By BaoXinjian 一.摘要 当的Oracle E-Business Suite并发请求(Concurrent Request)提交了好久,但还是一直在排队,等了好久还没有执行. 用户希望对于一些重要性程度高.响应要求高的请求,希望能够优先执行. 默认情况下,并发请求是按照请求提交时间的早晚顺序来执行的. 对于并发请求优先级的需求,其实Oracle EBS是提供了相关配置,即Concurrent:Request Priority(中文名:并发:请求优

并发编程专题(一)-并发与多线程

1.并发 1.1 并发与并行 首先介绍一下并发与并行,两者虽然只有一字之差,但实际上却有着本质的区别,其概念如下: 并行性(parallel):指在同一时刻,有多条指令在多个处理器上同时执行: 并发性(concurrency):指在同一时刻只能有一条指令执行,但多个进程指令被快速轮换执行,使得在宏观上具有多个进程同时执行的效果. 在操作系统中,安装了多个程序,并发指的是在一段时间内宏观上有多个程序同时运行,这在单 CPU 系统中,每一时刻只能有一道程序执行,即微观上这些程序是分时的交替运行,只不

js获取浏览器宽高、网页宽高、屏幕宽高、鼠标位置等(带图片说明)

网页可见区域宽: document.body.clientWidth;网页可见区域高: document.body.clientHeight;(点击查看大图) 网页可见区域宽: document.body.offsetWidth (包括边线的宽);网页可见区域高: document.body.offsetHeight (包括边线的宽);(点击查看大图)有没有发现,offsetWidth和clientWidth的区别,offsetWidt是连滚动条一起包含在内的. 网页正文全文宽: documen

志不可不高,志不高,则同流合污,无足有为矣;心不可太大,心太大,则舍近图远,难期有成矣。

志不可不高,志不高,则同流合污,无足有为矣:心不可太大,心太大,则舍近图远,难期有成矣.

高并发下接口的并发问题

事故 前些天上线的扫码送会员活动. 场景:用户登录账号之后,扫二维码,送七天黄金会员,限制每个帐号只能领取一个 有恶意用户刷接口,在高并发下越过限制. 原因 领取会员流程: 1.后端先生成卡卷,将卡号放到消息队列中 2.用户扫码请求领取会员接口 2-1).先检查用户是否已经领取过该活动会员 2-2).领取过return "该帐号已领取"的标示 2-3).没领取从消息队列中拿取一张卡号 2-4).激活卡 2-5).更新用户本次活动为已经激活 这个流程在一般环境下是没有问题的,在高并发下就

【并发编程】高并发相关技术

高并发之扩容思路 垂直扩容(纵向扩展):提高系统部件能力 水平扩容(横向扩展):增加更多系统成员来实现 读操作扩展:memcache.redis.CDN等缓存 写操作扩展:Cassandra.Hbase等 高并发之缓存思路 缓存特征 命中率:命中数/(命中数+未命中数) 最大元素(空间) 清空策略:FIFO, LFU, LRU, 过期时间,随机等 缓存命中率影响因素 业务场景和业务需求 缓存的设计(粒度和策略) 缓存容量和基础设施 缓存分类和应用场景 本地缓存:编程实现(成员变量.局部变量.静态

Python机器学习经典实例(高清中文版PDF+高清英文版PDF+源代码)

最新出版的Python机器学习经典实例.高清中文版和高清英文版对比学习, 带目录书签,可复制粘贴:讲解详细并配有源代码. 下载:https://pan.baidu.com/s/170qEhYJ4T4IlQwuwASRIfA 一块儿学习探讨,支持正版书籍. 在博客写python学习心得. 原文地址:http://blog.51cto.com/3215120/2300021

《机器学习实战》(高清中文版PDF+高清英文版PDF+源代码)

高清中文版和高清英文版对比学习, 带目录书签,可复制粘贴:讲解详细并配有源代码. 下载:https://pan.baidu.com/s/1s77wmVcPgRZUfsseHsTlWg 一块儿学习探讨,支持正版书籍. 在博客写python学习心得. 其中高清中文版 原文地址:http://blog.51cto.com/3215120/2300314