这个算法以前在网络游戏开发时服务端常用,需要有一些前提条件。假设你的并发请求每秒钟少于一万(当然这还取决于你的服务器性能,如果你的服务器性能(含数据库)每秒可以处理的多,那么这个值就会高),并且假设高峰期请求不超过几万,也就是这几万之后再也不会有那么多请求了。这个时候你可以用内存队列,而不是用消息队列中间件(当年开发游戏时都没听说有消息队列中间件)。算法很简单,就是请求来的时候先加入队列,然后在同一个方法里使用while循环执行操作,然后再返回给客户端。

假如这是一个理财平台或中型电子商务网站的购买操作,对应的方法:

   java先new 出一个ConcurrentLinkedQueue队列,作为类成员。

购买(购买参数){

(1)队列.add(购买参数)

(2)马上计算

While(队列.size>0){

取出队列元素进行计算

}

(3)去数据库根据购买参数查询结果

(4)返回结果

}

这样做的好处是可以将并发的请求暂时存储,并计算,客户可以第一时间得到计算结果,把异步处理变成了实时处理。网络游戏就是这么做的,所以有时用户多时会卡,卡就是队列没有计算完。

转载于:https://www.cnblogs.com/qiumingcheng/p/5257484.html

一个高并发请求的算法相关推荐

  1. php处理抢购类功能的高并发请求,php处理抢购类

    ...d> 最近在做抢购系统,但头疼的是,在多用户高并发的情况下经常会库存出现问题.排查到,在同一时间内多用户同时下单导致查询和插入不同步了,而查询中跟插入又有时间差而在高并发的情况下导致库存问 ...

  2. 达达O2O后台架构演进实践:从0到4000高并发请求背后的努力

    1.引言 达达创立于2014年5月,业务覆盖全国37个城市,拥有130万注册众包配送员,日均配送百万单,是全国领先的最后三公里物流配送平台. 达达的业务模式与滴滴以及Uber很相似,以众包的方式利用社 ...

  3. 【面试】如何设计一个高并发系统

    一.为什么需要秒杀系统? 电商平台本质是在线上撮合买卖双方的购销需求,达成交易.虽然是线上交易,但也遵守朴素的经济学原理,供求关系决定了商品的经济活动.当供求平衡时,买方和卖方处于对等关系,双方相对稳 ...

  4. 高并发流量控制与算法实现思路

    高并发流量控制与算法实现思路 前言 ​ 昨天看了一篇关于高并发流量控制的文章,感觉对我启发非常的大,所以写一篇记录总结一下,方便于以后我自己的学习与复盘. 简介 首先要知道什么是大流量 ​ 听到大流量 ...

  5. 【面试题】如何设计一个高并发的系统?

    每个行业都一样,人才都是分层次的,从事技术行业的程序员们更是如此,按照技术能力分为三六九等. 每个层次的人出去面试,面试官考察的方向是不一样的. 刚入职场的小白,会问你很多基础性的知识,有过几年经验的 ...

  6. mysql每秒支持多少并发_如何设计一个高并发系统?

    面试题 如何设计一个高并发系统? 面试官心理分析 说实话,如果面试官问你这个题目,那么你必须要使出全身吃奶劲了.为啥?因为你没看到现在很多公司招聘的 JD 里都是说啥,有高并发就经验者优先. 如果你确 ...

  7. 一个springboot能支持多少并发_吃透这篇,你也能搭建出一个高并发和高性能的系统...

    " 什么是高并发?高并发是互联网分布式系统架构的性能指标之一,它通常是指单位时间内系统能够同时处理的请求数,简单点说,就是 QPS(Queries Per Second). 那么我们在谈论高 ...

  8. oom 如何避免 高并发_【面试题】如何设计一个高并发系统?

    面试题 如何设计一个高并发系统? 原文链接:https://github.com/doocs/advanced-java/blob/master/docs/high-concurrency/high- ...

  9. 解秘 Node.js 单线程实现高并发请求原理,以及串联同步执行并发请求的方案

    最近在做一个支持多进程请求的 Node 服务,要支持多并发请求,而且请求要按先后顺序串联同步执行返回结果. 对,这需求就是这么奇琶,业务场景也是那么奇琶. 需求是完成了,为了对 Node.js 高并发 ...

最新文章

  1. 一个关于异步的纠结问题
  2. 编程软件python图片-python Plotly绘图工具的简单使用
  3. JAVA——保持cookie登录状态的HttpClient封装工具类
  4. $.ajax 发送请求,JavaScript之Ajax-2 Ajax(使用Ajax发送get请求、使用Ajax发送post请求)
  5. 一文带你纵览 200+ 大规模机器学习研究
  6. 基于ssm的仓库管理系统
  7. WPS简历模板的图标怎么修改_160套个人求职简历模板精美套装,修改内容直接套用...
  8. 联想y7000电脑未正确启动_联想y7000wifi突然不能用了是怎么回事
  9. Win7、Win10封装系统制作系统镜像,操作流程#gho
  10. 关于微信公众号accesstoken
  11. 【历史上的今天】4 月 10 日:Github 诞生;人类第一张黑洞照片;计算机延误航天飞机
  12. Easyui DataGrid Editor
  13. 博弈论2:学会换位思考(弱劣势策略)
  14. 从事Web前端的工作,日常工作内容有哪些?
  15. java实现通过浏览器方式下载文件及多个文件
  16. [pinyin4j] java版汉字转换拼音(大小写)
  17. 2018-2019-2 20175227张雪莹《Java程序设计》
  18. 《iOS Human Interface Guidelines》——iCloud
  19. HIVE获取当天时间和计算时差
  20. 3个方法提取PDF文件里的图片

热门文章

  1. 查询ms sql 2005版本号
  2. VS2010旗舰版无法安装
  3. tableview插入刷新_iOS中tableview的几种刷新
  4. c语言求两者之间最小数,C语言课件第2章基本数据类型.ppt
  5. 合肥天鹅湖万达广场机器人_万达王健林再考察合肥!瞄准政务、高新,年末合肥楼市出现区域分化!...
  6. android otp接口,Android-高通平台调试camera的OTP参数
  7. 两两对应成排的 表格 样式
  8. 自定义结构体-相机参数数据类型
  9. css数字发光,每日CSS_发光文本效果
  10. 用net连某台电脑c盘怎么连_关于电脑的4个冷知识,恐怕90%的人连第一个都不知道!...