javaweb 如何将请求缓存到队列 20C

现在我有一个webservice接口供客户方调用,以后可能并发量会越来越大。上头让我了解下mq,将请求缓存到队列中,进行流量削峰。我不太明白,客户调用接口就进入接口内了,代码上应该写在接口前,具体该怎么写呢?

就比如,一秒钟内来了一万次请求,我让服务器一秒内处理500条,其他的缓存到队列这样

0

7个回答

mq队列了解一下,主流的有Apache的activemq(带ack机制)、rocketmq(阿里的现已捐献给Apache),rabbitmq,kafka(一般用于大数据)。甚至你还可以用redis。
mq是一种做异步架构常用的策略。既能做到架构解耦,又能提高系统可靠性和吞吐能力。

0
Tomdwannn
Tomdwannn 回复weixin_42362539: 想请教下您,我这边也有这个需求,请求过来要把请求放到redis的队列中。请问是拿到请求的url放到redis里吗?
11 个月之前 回复
Tomdwannn
Tomdwannn 想请教下您,我这边也有这个需求,请求过来要把请求放到redis的队列中。请问是拿到请求的url放到redis里吗?
11 个月之前 回复
weixin_42362539
伙焰冰伈 队列了解一下,主流的有Apache的activemq(带ack机制)、rocketmq(阿里的现已捐献给Apache),rabbitmq,kafka(一般用于大数据)。甚至你还可以用redis。 mq是一种做异步架构常用的策略。既能做到架构解耦,又能提高系统可靠性和吞吐能力。
大约一年之前 回复
qq_39348131
qq_39348131 使用rocketmq,具体该怎么实现?大概步骤是怎样?比方说,客户方是生产者,我这个生产者代码些在哪?
大约一年之前 回复

mq可以控制,但是相对麻烦,tomcat可以完成,在server.xml里的<Connector配置就行

0
xcgh
xcgh 回复qq_39348131: https://blog.csdn.net/u011622226/article/details/72510385
大约一年之前 回复
qq_39348131
qq_39348131 具体配置哪些属性?
大约一年之前 回复

直接让请求方不用调用接口,直接把请求放入mq队列,然后你去队列获得请求进行处理,1秒钟处理多少个就完全有你们自己决定啦

0
qq_39348131
qq_39348131 那样请求方和我们这边的系统都要装mq,能不能只在我们这边使用mq,请求方正常调用接口
大约一年之前 回复

其实如果你们有用redis的话,也可以实现,而且比较简单

0

其实就是用队列等来保持请求,避免服务器处理不过来,所以你需要做的就是在API网关,把客户的请求放到一个消息队列,比如直接用JAVA的LinkedBlockingQueue等,然后服务器从这个里面取任务进行处理。
如果用专业的MQ,那么就是API 网关做生产者,把客户端请求放入队列,后台服务器做消费者,从MQ中取任务来进行处理

0
luyiming_king
luyiming_king 回复qq_39348131: 楼上大神,所述正解。
大约一年之前 回复
qq_39348131
qq_39348131 不是很懂api网关是什么,它和jms有什么关系?
大约一年之前 回复
0

说说我的想法 用achivemq,当对面调用你的接口的时候,你把请求装到队列里面,然后发送它到消费的地方
再在消费地方再实际调用你的接口 ,
因为mq会自动给你排队消费的

0
qq_39348131
qq_39348131 具体在哪里把请求入队列,现在就是搞不清 到底在哪里 写生产者send消息的方法
大约一年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
消息队列RocketMQ
一、生产过程: 1、获取路由消息,本地缓存不存在,重新获取(获取Topic发布信息:tryToFindTopicPublishInfo) 传入topic、消息字符串,根据传入的topic查询是否在本地缓存中,不在从NameSerer中获取topic并存入本地缓存:GET_ALL_TOPIC_LIST_FROM_NAMESERVER; (当topic不存在时,之前的版本可以默认自动创...
http请求入队列以及遇到的问题总结
                                                       http请求入队列排队执行以及遇到的问题总结 队列以及加锁的注意事项,如下所示,记录之,线程的知识体系尚需完善。 public class HttpContext { public HttpListenerContext httpListenerContext...
Java通过缓存队列执行任务代码实现
**Java通过缓存队列执行任务代码实现** 创建缓存队列package cn.com.job;import java.util.HashMap; import java.util.Map; import java.util.concurrent.LinkedBlockingQueue;import cn.com.domain.User;public class UserCacheUtil {p
NettyServer收取数据存库
NettyServer收取数据存库【缓存到队列由单独线程处理
javaweb简单实现前台请求的非阻塞消息队列(ConcurrentLinkedQueue)
自己写了一个很简单的实现非阻塞的对于请求的消息队列处理,前台代码:<script type="text/javascript"> function go() { var timestamp = (new Date()).valueOf(); $.ajax({ url:"${pageContext.request.contextPath
一段简单代码理解异步请求消息队列在高并发环境中的作用
普通同步方法被调用模拟package top.yuyufeng.mq; import java.util.Random; import java.util.concurrent.atomic.AtomicInteger; /** * Created by yuyufeng on 2017/8/29. */ public class MyServer { private static At
JS:js和css本地缓存问题
由于浏览器会自动缓存静态文件的,这些文件一般只在强制刷新时,才会重新读取。 怎么清除浏览器缓存的静态文件呢? 大部分人的想法是url后面加时间戳,但是问题出现了,就是每次url地址变化时 浏览器就会请求服务端的js和css文件,而不会使用缓存。但是会导致浏览器每次都要去请求服务端的js和css文件,占用带宽。 解决方法:在url后面加版本号,现
【队列 高并发】java web瞬间高并发的解决方法
1、任何的高并发,请求总是会有一个顺序的 2、java的队列的数据结构是先进先出的取值顺序 3、BlockingQueue类(线程安全)(使用方法可以百度) 一般使用LinkedBlockingQueue 利用以上几点,我们可以把高并发时候的请求放入一个队列,队列的大小可以自己定义,比如队列容量为1000个数据,那么可以利用过滤器或者拦截器把当前的请求放入队列,如果队列的容量满了,其余...
javaweb基础--消息队列
redismq:轻量级,数据&amp;lt;10K,可以用(看项目配置) rabbitmq: 官方文档地址:http://www.rabbitmq.com/tutorials/tutorial-six-java.html github代码地址:https://github.com/luzhiweistudy/rabbitmq-tutorials/tree/master/java-idea/src ...
将对象缓存到redis中
1,java配置redis客户端public class RedisClient implements Serializable{ private Jedis jedis; private JedisPool jedisPool; ShardedJedis shardedJedis; private ShardedJedisPool shardedJedisPoo...
秒杀系统之缓存、队列、锁
一、秒杀系统为什么难? 1)短时间内的高流量和高并发状态对数据库产生的巨大压力 2)短时间内的高流量和高并发状态下如何精确处理库存量 二、解决办法 1)使用缓存处理秒杀数据,避免直接操作数据库,常用缓存有Redis、MemCache等 三、常见架构 浏览器——&amp;gt;站点——&amp;gt;服务器——&amp;gt;数据 1)浏览器:最上层,js加载数据 2)站点层:访问后台数据,拼接html页面...
Java中将请求数据存入本地缓存
最近做项目的时候,碰到这样的需求,由于一些页面的ajax请求数据太多,而且sql效率很低,导致压力测试时一个页面打开需要一分多钟,所以就想到如下几种解决方案: 1.将请求的数据,通过IO写入硬盘缓存文件,当发现有对应文件时,便从该文件读取存储的请求数据; 2.写一个工具类,在工具类定义一个map类型的成员变量,将请求数据存储到该map中; 3.修改数据库服务器的配置(当然这不是本文要讨论
JSON数据缓存在本地
今天我们来学习一下用JSON数据缓存在本地 现在开始贴代码public class Cache_Json { /** * * @param json 字符串 * @param index 保存的第几个标记 */ private void SaveLocal(String json,int index){ BufferedWri
关于队列的一些东西 把请求数据放入队列里面
http://www.cnblogs.com/XiaoyangBoke/p/6701780.html
如何将数据库中表转化到redis中
如何将数据库中表转化到redis中 方法一:使用string 数据库中user表一条记录:  id username pwd       3      lili    123 set user:3:id 3; set user:3:username lili; set user:3:pwd 123; 方法二:使用hash,表数据同上 hset user1 id 3; hset
如何为Android缓存数据到本地
如何为Android缓存数据到本地对于一个应用来说,有许多的数据是不需要实时访问网络的,或者在用户第二次打开应用的时候 ,访问网络可能不是特别的快 ,但是此时的应用是没有数据展示的,这时候就会涉及到 数据的缓存,数据的缓存 可以提高用户的体验 也可以 为用户节省不必要的流量。
使用队列控制多个请求访问一个异步方法
之前在项目进入测试阶段的时候,测试部给发了一个bug,大致是在搜索的时候搜索出来的东西和实际的不符合。   于是我去翻代码,原来问题是搜索的时候每次键盘按下都会进行一次搜索,但是搜索时间是异步的,这就导致了上一次搜索还没结束下一次搜索就有开始了。代码的执行就想是一锅粥,乱成一团。搜索的结果自然是不可能准确的了。   事实上,异步代码一旦调用频繁后,要么回调满地图跑,要么这些代码不要求有
jquery节点的增删改查 数据存储到本地缓存
&amp;lt;!DOCTYPE html&amp;gt; &amp;lt;html&amp;gt; &amp;lt;head&amp;gt; &amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt; &amp;lt;title&amp;gt;&amp;lt;/title&amp;gt; &amp;lt;style type=&quot;text/css&quot;&amp;gt; * { margin: 0; padding: 0;
Android中网络请求数据以及其他数据本地缓存
Android中网络请求数据以及其他数据本地缓存在很多开发的过程中我们需要联网进行数据请求,有时候一部分数据很长时间都是固定不变的这时候我们就想把这些数据进行本地缓存.之前一看见过很多的框架里面写着网络数据请求进行缓存.很多数据缓存都是对网络请求下来的json数据进行存储,这样如果下次读取数据的时候还要进行解析一遍.今天我们来讲一个非常便捷式的数据对象存储,就是讲网络请求到的json串解析成对象后将
缓存整个页面到redis,到磁盘
在项目中可以缓存整个页面来提高响应速度,如将首页存到缓存中,需要新建类继承HttpServletResponseWrapper类来实现对响应的静态页面的获取 还需要配置过滤器来拦截页面响应,在拦截器中过滤要拦截的页面,如果该页面存在于缓存中就从缓存中取,如果没有就将页面从后台获取,并存到缓存中 创建的MyResponseWrapper类 import java.io.CharArrayWriter...
Chrome 进阶技巧:将缓存路径放到非系统分区并设置大小
Chrome 只能安装在系统分区确实是一个很讨厌的设计,因为不仅仅是这个程序被安装到了系 统分区,连浏览器的缓存以及用户数据文件都会在系统分区里,对于一些不喜欢将程序安装在 系统分区或者系统分区较小的用户来说非常不人性化。尤其是对于使用固态硬盘做系统盘以及 想要实现关机即删除缓存的用户来说更是如此。不过,我们还是有办法限制缓存的大小,以及 让 Chrome 将缓存存放到你指定的目录,比如非系统盘的目录。
android 将bitmap缓存到本地
android 将bitmap缓存到本地,以及读取本地缓存的图片
如何将搜索结果缓存到临时表
请问想DZ那样的搜索 见DZ的搜索URL:rnsearch.php?searchid=60&orderby=lastpost&ascdesc=desc&searchsubmit=yesrn是如何设计的呢?rnrnrn整体思路是怎么样的啊.rnrn存储过程 如何做呢?
前端将数据存入(取出)缓存的方法
** 数据放入缓存 ** localStorage.setItem('user',values.username); 缓存中取数据 localStorage.getItem('user');
文件缓存与内存缓存
//内存缓存 使用软引用 private Map> softcache=new HashMap>(); private List tasks=new ArrayList(); private Thread thread; private boolean isLoop=true; //内存缓存 使用软引用 private Map> softcache=new HashMap>();
xml被浏览器缓存了
之前在做广告投放功能,遇到的一个问题。 在页面上轮播广告,是通过把广告信息保存成xml文件,然后在前台通过唯一的id调取该广告信息,具体用ajax异步响应到xml,把广告内容展示在页面上。 只是ajax响应xml文件的时候,即使后台对广告信息作了相应的修改,可是读取的还是旧的内容。 起初我以为是xml文件保存错误了,可是经查证,发现xml是正确的,仅仅是浏览器上输出的广告与xml内容不符。
前端缓存之本地缓存
之前说了HTTP缓存,今天说说本地缓存。本地缓存也是平时开发过程经常用的。 本地缓存就简单多了,我们常用的有三个:cookie、localStorage、sessionStorage。 Cookie:一般用来存储用户信息,每次请求的时候内容都会自动被传递给服务器。不同浏览器对于cookie的大小并不统一,一般都是4-10kb。Cookie可以设置时效。注意,cookie比较浪费带宽,不建议写入太多...
最简单的缓存到SD卡
//viewpager的布局         headerView = View.inflate(MainActivity.this, R.layout.vp_item, null);         ll = (LinearLayout) headerView.findViewById(R.id.ll);         vp = (ViewPager) headerView.findVi
本地缓存JSCSS.zip
将jquery和公共样式缓存到localStorage,可以减少Http请求,从而优化页面加载时间,下面的代码可以实现此功能: Web使用localStorage缓存Js和css文件
为Android频繁的网络请求设置本地缓存
缓存可以减少网络请求次数,节省流量,减少出错的可能。 设置一个缓存读写类,可以读写缓存,并设置缓存文件失效时间 /** * 缓存服务器接收到的数据到本地,设置一个时间阈值 * 一定时间内访问同一个连接直接从本地文件获取 * 超过一定时间,缓存过期,需要重新从网络获取 */ public class CacheServerResponse { /** *
DMGetVideoDemo
这个Demo是从相册获取视频缓存到沙盒,以及直接调用相机拍摄一段视频缓存到沙盒,主要是为了获取视频数据源,以便之后的上传等操作...
后端技能树修炼:基于队列的流量削峰模式
作者简介:ASCE1885,《Android 高级进阶》 和 《Android 高级进阶(源码剖析篇)》作者 本文由于潜在的商业目的,未经授权不开放全文转载许可,谢谢! 在分布式架构中,前端一个请求会经过后端的多个服务的处理才返回结果,这时就可能会存在一种情况,在间歇性高负载情况下,某个服务 B 的处理能力不能满足负载的需求,从而导致服务 B 崩溃或者服务调用者 A 响应超时,如下图所示: ...
带你了解Android常见的内存缓存算法
带你了解Android常见的内存缓存算法本片博客主要简介以下两个问题 介绍一下常见的内存缓存算法 怎样实现这些算法 大家应该对ImageLoader这个框架都不陌生吧,一个很强大的图片加载框架,虽然作者去年的时候已经停止维护了,但里面的许多东西还是值得我们去学习的。本篇博客讲解的内存缓存算法正是基于ImageLoader的实现基础之上的常见的几种缓存算法 (1)LRU即Least RecentlyU
数据添加异步解析刷新大数据量redis (——)(一)Java Collection之Queue队列
Queue接口与List、Set同一级别,都是继承了Collection接口。LinkedList实现了Queue接 口。Queue接口窄化了对LinkedList的方法的访问权限(即在方法中的参数类型如果是Queue时,就完全只能访问Queue接口所定义的方法 了,而不能直接访问 LinkedList的非Queue的方法),以使得只有恰当的方法才可以使用。BlockingQueue 继承了Que...
Node.js 事件队列娓娓道来
Node.js EventEmitter 事件队列
Vitamio用什么方法可以将播放的视频缓存到本地
3 To achieve On^2 for accumulation for each column, accumulate to i i=,n1 first, then calcuate the result by acci, j = acc, jacc,i1 WebSphere 从开发的角度上考虑,9.3当执行gulp default或gulp将会调用default任务里的所有任务[‘test
保存内容到本地(下载到本地)
js 保存内容到本地,下载到本地
imageLoader
使用Universal-image-loader从网络加载图片到listview并缓存到本地
Android---universal-image-loader应用 异步加载图片并缓存
Android---universal-image-loader应用 实现异步加载图片并缓存到本地
golang 实现一种环形队列,及周期任务
环形队列不同语言有很多种不同的实现,不过大部分都比较复杂。 在使用golang实践生产者消费者模型时,发现了一种变相的环形队列,解决2个问题: 1、生产者消费者间数据传递; 2、内存空间预申请,避免频繁的动态内存申请释放。
相关热词 c#异步发送kafka c#窗体编号 c# 操作二进制文件 c# 反射 机制 c#线程 窗体失去响应 c#角度转弧度 c# 解析gps数据 c# vs设置 语法版本 c# json含回车 c#多线程demo