怎么在Java中利用复述,实现一个高并发计数器功能

  介绍

这篇文章主要介绍了怎么在Java中利用复述,实现一个高并发计数器功能,小编觉得不错,现在分享给大家,也给大家做个参考,一起跟随小编来看看吧!

Java是什么

Java是一门面向对象编程语言,可以编写桌面应用程序,网络应用程序,分布式系统和嵌入式系统应用程序。

以一个接口一天限制调用次数为例:

,/* *   ,*是否拒绝服务   ,* @return   ,*/,private  boolean  denialOfService (String  userId) {   ,long 数=JedisUtil.setIncr (DateUtil.getDate() +“,“+用户名+“,“+“queryCarViolation",, 86400);   ,如果(count<=10) {   return 才能;假;   ,}   ,return 真实;   以前,}
/* *
  ,*查询违章
  ,* @param  plateNumber车牌
  ,* @param  vin 车架号
  ,* @param  engineNo发动机
  ,* @param 请求
  ,* @param 响应
  ,* @throws 例外
  ,*/,@RequestMapping (“/queryCarViolationList.json")
  ,@AuthorizationApi
  ,public  void  queryCarViolationList (@CurrentToken  Token 令牌,String  plateNumber String  vin,
  ,,,String  engineNo, HttpServletRequest 请求,HttpServletResponse 响应),throws  Exception  {
  ,,String 用户id=token.getUserId ();
  ,,,,,//超过限制,拦截请求
  ,,如果(denialOfService (userId)) {
  apiData才能(请求,响应,,ReqJson.error (CarError.ONLY_5_TIMES_A_DAY_CAN_BE_FOUND));
  返回才能;
  ,,}
  ,//没超过限制,业务逻辑……
  以前,} 

每次调用接口之前,先获得下计数器自增后的值,如果小于限制,放行,执行后面的代码。如果大于限制,则拦截掉。

JedisUtil工具类:

public  class  JedisUtil  {   ,protected  final  static  Logger  Logger =, Logger.getLogger (JedisUtil.class);   ,private  static  JedisPool  jedisPool;   ,   ,@ autowired (required =,真的)   ,public  void  setJedisPool (JedisPool  jedisPool), {=,,JedisUtil.jedisPool  jedisPool;   ,}/* *   ,*对某个键的值自增   ,* @author  liboyi   ,* @param  key 键   ,* @param  cacheSeconds 超时时间,0为不超时   ,* @return   ,*/,public  static  long  setIncr (String 关键,int  cacheSeconds), {   ,long  result =, 0;   ,Jedis  Jedis =,空;   ,try  {   时间=jedis 才能;jedisPool.getResource ();   result 才能=jedis.incr(关键);   if 才能;(result<=1,,,, cacheSeconds  !=, 0), {   jedis.expire才能(关键,cacheSeconds);   ,,}   logger.debug才能(“set “+, key  +,,,=,,, +,结果);   ,}catch  (Exception  e), {   logger.warn才能(“set “+, key  +,,,=,,, +,结果);   ,}finally  {   jedisPool.returnResource才能(能);   ,}   ,return 结果;   ,}   }

以上就是小编为大家收集整理的怎么在Java中利用复述,实现一个高并发计数器功能,如何觉得网站的内容还不错,欢迎将网站推荐给身边好友。

怎么在Java中利用复述,实现一个高并发计数器功能