servlet调用接口根据不同用户控制并发数 java servlet写的接口程序,需要对每个用户进行并发数限制,这个怎么实现,具体代码怎么写 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用户通过http访问servlet,servlet接受到请求,调用接口,返回json数据 直接求代码的,恐怕基本都没人给。三个前提假设:1)如果所需要的场景,并没有很高的并发压力要求;2)用户是有身份的,或者说是需要登录的;3)服务器是单节点的。可以直接在 ServletFilter 里面,对Session对象设置计数器,进入Filter的时候增加计数器,结束Filter的时候减少计数器。如果计数器高于一定值,就直接拒绝请求。 别纠结,限流是个大工程,直接用框架吧,不是那么简单的事情Sentinel根据参数限流https://github.com/alibaba/Sentinel/wiki/%E7%83%AD%E7%82%B9%E5%8F%82%E6%95%B0%E9%99%90%E6%B5%81如果要自己做,就写个令牌桶https://www.cnblogs.com/googlemeoften/p/6020718.html 该用户当前并发访问量,因为ServletFilter是包装(这个词用的不准)在真正被执行的 JSP 或 Servlet 之外的。你看下Servlet的例子就知道了。 考虑到你又提了几个概念:1)当前用户量(登录用户数);—— 这个一般来说用SessionListener来做计数器,不那么精确的记录目前仍在会话有效期中的登录用户数。2)当前并发访问量;—— 这个一般用Web前置服务器来控制比较合适,非要用中间件的话,就是控制线程数之类。3)当前用户并发量;—— 说实话这个控制的比较少,一般都是改为针对 IP 来控制并发访问量,那么就还是用Web前置机。—— 不过既然你喜欢研究,那么招数就是ServletFilter来进行控制,策略就是请求开始时记录该用户有一次请求中,请求结束时删减该请求次数。4)当前用户登录量。—— 这个是避免某用户反复登录,开N个窗口登录之类的行为,一般来说是通过SessionListener和ServletFilter配合来处理。 查询分页 JAVA-WEB 权限问题,请教大哥们 救我。。。。菜单制作 大家都来看看吧->帮我看看 开发过亚信CMPP3.0移动网关的高手进~!高分! 请教高手,关于tomcat连接池的问题,困绕多日-_-|| [RMI]为何说找不到stub类? jb3-tom4的小问题? 同一次会话产生几次sessionId 在执行抛出异常语句时,怎么会打印NULL 求帮助,调用linux上面.so动态链接和h头文件,显示都源码,就是不知道这个linux的路径怎么使用 System.loadLibrary获取 【Spring入门问题】通过注入对象是如何替换原来默认的配置的?
1)如果所需要的场景,并没有很高的并发压力要求;
2)用户是有身份的,或者说是需要登录的;
3)服务器是单节点的。可以直接在 ServletFilter 里面,对Session对象设置计数器,进入Filter的时候增加计数器,结束Filter的时候减少计数器。如果计数器高于一定值,就直接拒绝请求。
Sentinel根据参数限流
https://github.com/alibaba/Sentinel/wiki/%E7%83%AD%E7%82%B9%E5%8F%82%E6%95%B0%E9%99%90%E6%B5%81如果要自己做,就写个令牌桶
https://www.cnblogs.com/googlemeoften/p/6020718.html
该用户当前并发访问量,因为ServletFilter是包装(这个词用的不准)在真正被执行的 JSP 或 Servlet 之外的。你看下Servlet的例子就知道了。
考虑到你又提了几个概念:
1)当前用户量(登录用户数);
—— 这个一般来说用SessionListener来做计数器,不那么精确的记录目前仍在会话有效期中的登录用户数。
2)当前并发访问量;
—— 这个一般用Web前置服务器来控制比较合适,非要用中间件的话,就是控制线程数之类。
3)当前用户并发量;
—— 说实话这个控制的比较少,一般都是改为针对 IP 来控制并发访问量,那么就还是用Web前置机。
—— 不过既然你喜欢研究,那么招数就是ServletFilter来进行控制,策略就是请求开始时记录该用户有一次请求中,请求结束时删减该请求次数。
4)当前用户登录量。
—— 这个是避免某用户反复登录,开N个窗口登录之类的行为,一般来说是通过SessionListener和ServletFilter配合来处理。