`
狂想的旅程
  • 浏览: 15916 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

利用静态HashMap及系统时间限制用户请求次数

阅读更多
限制用户在1秒中只允许发出10次webservice请求
	java.util.Date date=new java.util.Date(); 
		if(hashtime.get("time")==null&&hash.get("count")==null){
		  hashtime.put("time", date.getTime());
		  hash.put("count", 0);
		  logger.info(hash.get("time"));
		}
		//拿出数量,记录当前时间
		if(hash.get("count")!=null){
			int count=hash.get("count");
			long tim=hashtime.get("time");
			logger.info("记录时间:"+tim);
			count=hash.get("count");
			long nowdate=date.getTime();
			//如果  当前时间大于  记录的时间加1秒,即程序运行到了下一秒,则重新初始化hashmap
		    if(nowdate>=tim+1000){ 
				hashtime.put("time", nowdate);
				hash.clear();
				hash.put("count", 0); 
			}  
		    count=hash.get("count");
		    tim=hashtime.get("time");
			count++; 
			hash.put("count", count); 
			//如果当前的count大于10,并且当前时间在tim和tim+1000之间
			if(count>10&&tim<=nowdate&&nowdate<=tim+1000){
				    logger.info("当前时间:"+date.getTime());  
					logger.info("count="+count); 
					return "您已经请求超过10次"; 
			}  
} 
  System.out.println("当前1秒内,若访问超过10次,则不会打印该句.10次以后会打印该句,下一秒重新计数");
			
		


1
0
分享到:
评论

相关推荐

    内存缓存技术

    通过合理的设计和实施缓存策略,可以显著提高系统的响应速度和用户体验。NCV5 UAP作为一套成熟的缓存解决方案,在内存占用控制、数据更新管理以及缓存生命周期管理等方面提供了丰富的功能和灵活的配置选项,为企业级...

    华为校园招聘历年经典面试题汇总:Java开发

    2. **缓存机制**:支持自动缓存响应数据,减少网络请求次数。 3. **请求队列**:统一管理所有的网络请求,便于控制并发数量。 4. **数据解析**:内置JSON、XML等多种格式解析器。 #### 如何清理应用缓存 1. **手动...

    后端开发基础知识整理JAVA、JVM、操作系统、网络、设计模式、mysql、redis、多线程、spring、springboo

    - **进程上下文切换的场景**:时间片轮转、系统调用等。 - **线程与进程的区别**:线程共享进程资源,进程拥有独立地址空间。 - **线程的三种实现**:用户级线程、内核级线程、混合模型。 - **线程调度原则与调度...

    跳槽涨薪精选面试题.pdf

    - 零拷贝技术减少了数据从内核态到用户态的拷贝次数,提高了数据传输效率。 - 例如Linux中的sendfile()函数就实现了零拷贝。 - **Netty与Tomcat的比较** - Netty是一个高性能、异步事件驱动的网络应用框架,适用...

    java程序员面试大纲错过了金三银四你还要错过2018吗.docx

    7. **重连机制**:为了避免频繁的重连造成不必要的资源消耗,通常会设置合理的重连间隔时间,并限制最大重连次数。 8. **分布式事务**:实现跨服务的事务一致性,常用的方法有两阶段提交(2PC)、补偿事务(TCC)、...

    (2024)跳槽涨薪必备精选面试题.pdf

    根据提供的文件信息,我们可以归纳并深入探讨其中提及的IT领域知识点。这些知识点主要涉及软件开发、并发编程、数据库管理、网络通信以及系统架构等多个... - 减少数据从内核空间到用户空间的拷贝次数。 - 提高 I/O ...

    互联网大厂Java面试题合集

    - **IP频率限制**:通过限制同一IP地址在单位时间内发起的请求次数来防止DDoS攻击。 - **IP信誉度模型**:基于历史行为数据评估IP地址的信任度,用以识别可疑活动。 #### 滴滴篇 ##### 7.1.0 B+树与B-树的区别 - **...

    java面试笔记整理,包含java,redis,kafka等

    - **静态初始化块和静态变量先于非静态初始化块和非静态变量。** - **构造函数最后执行。 #### 二十七、equals与==的区别 - **==** 用来比较两个变量是否指向同一个对象。 - **equals** 方法用于判断两个对象的...

    经典的问题

    - **Classpath**: 是一个环境变量,用于告诉Java虚拟机在哪里查找用户类文件。如果使用IDE(如Eclipse)开发Java程序,则IDE会自动设置好`classpath`。如果是手动编译和运行,则需要通过命令行指定。 **2. Unicode...

    世界500强面试题.pdf

    1.4.2. 请修改 append 函数,利用这个函数实现............................................. 78 1.4.3. 有 n 个长为 m+1 的字符串 ................................................................ 82 1.4.4. n...

Global site tag (gtag.js) - Google Analytics