// 因为令牌桶对业务有一定的容忍度
public class TokenBucket { private int bucketNums=100; // 桶的容量
private int rate=1; // 流入速度
private int nowTokens; // 当前令牌数量
private long timestamp=getNowTime(); // 时间 private long getNowTime(){
return System.currentTimeMillis();
} private int min(int tokens){
if(bucketNums > tokens){
return tokens;
}else{
return bucketNums;
}
} public boolean getToken(){
// 记录来拿令牌的时间
long nowTime = getNowTime();
// 添加令牌【判断该有多少个令牌】
nowTokens = nowTokens + (int)((nowTime - timestamp)*rate);
// 添加以后的令牌数量与桶的容量那个小
nowTokens = min(nowTokens);
System.out.println("当前令牌数量"+nowTokens);
// 修改拿令牌的时间
timestamp = nowTime;
// 判断令牌是否足够
if(nowTokens < 1){
return false;
}else{
nowTokens -= 1;
return true;
}
}
}

服务限流是高可用的一种手段

Spring Security开发Restful服务的更多相关文章

  1. Spring Boot开发RESTful接⼝服务及单元测试

    Spring Boot开发RESTful接⼝服务及单元测试 常用注解解释说明: @Controller :修饰class,⽤来创建处理http请求的对象 @RestController :Spring ...

  2. Spring Security开发安全的REST服务

    第1章 课程导学 项目介绍 Java实战:Spring Security开发安全的REST服务,来自慕客网的视频 ,主要讲认证和授权. 企业级的认证和授权 从0开始实现一个可重用的,企业级的,认证和授 ...

  3. 使用CXF开发RESTFul服务

    相信大家在阅读CXF官方文档(http://cxf.apache.org/docs/index.html)时,总是一知半解.这里向大家推荐一本PacktPub.Apache.CXF.Web.Servi ...

  4. 使用 Spring HATEOAS 开发 REST 服务

    使用 Spring HATEOAS 开发 REST 服务 学习博客:https://www.ibm.com/developerworks/cn/java/j-lo-SpringHATEOAS/ htt ...

  5. 使用Spring MVC开发RESTful API

    第3章 使用Spring MVC开发RESTful API Restful简介 第一印象 左侧是传统写法,右侧是RESTful写法 用url描述资源,而不是行为 用http方法描述行为,使用http状 ...

  6. weblogic 10.x 上开发restful服务

    之前已经学习过 利用JAX-RS快速开发RESTful 服务,当时是jboss环境,如果原封不动的迁移到weblogic 10.x 版本,会杯具的发现应用启动失败,需要做些小调整: 项目结构如下: 需 ...

  7. 应用Spring MVC发布restful服务是怎样的一种体验

            摘要:“约定优于配置”这是一个相当棒的经验,SOAP服务性能差.基于配置.紧耦合,restful服务性能好.基于约定.松耦合,现在我就把使用Spring MVC发布restful服务的 ...

  8. 使用Spring boot开发RestFul 风格项目PUT/DELETE方法不起作用

    在使用Spring boot 开发restful 风格的项目,put.delete方法不起作用,解决办法. 实体类Student @Data public class Student { privat ...

  9. Spring Security构建Rest服务-1200-SpringSecurity OAuth开发APP认证框架

    基于服务器Session的认证方式: 前边说的用户名密码登录.短信登录.第三方登录,都是普通的登录,是基于服务器Session保存用户信息的登录方式.登录信息都是存在服务器的session(服务器的一 ...

随机推荐

  1. @NotNull和@NotEmpty和@NotBlank 区别

    1.@NotNull:不能为null,但可以为empty:用在基本类型上. 2.@NotEmpty:不能为null,而且长度必须大于0:用在集合类上面. 3.@NotBlank:只能作用在String ...

  2. Go爬去以太坊的价格数据

    package main import ( "encoding/json" "errors" "fmt" "io/ioutil&q ...

  3. Spring Boot 定时任务使用

    详情参考文章https://blog.csdn.net/qq_31001665/article/details/76408929

  4. Oracle 批量增加 / 批量跟新

    在使用oracl过程中踩到好多坑,在此记录,也分享给大家. 第一:批量插入 代码一(在为明确表和字段的情况下,动态批量增加): @Insert("<script> " ...

  5. multi-label image classification:多标签图像分类总结

    多标签图像分类总结 目录 1.简介 2.现有数据集和评价指标 3.学习算法 4.总结(现在存在的问题,研究发展的方向) 简介 传统监督学习主要是单标签学习,而现实生活中目标样本往往比较复杂,具有多个语 ...

  6. 我的代码-flask

    import pickleimport flaskimport pandas as pdimport jsonfrom flask import Flaskfrom flask import requ ...

  7. 用python给邮箱发邮件,问题,以及解决方法。

    模版 import smtplib #导入相关模块 from email.mime.text import MIMEText from email.utils import formataddr de ...

  8. ubuntu18安装网易云音乐

    1.打开ubuntu软件搜索网易云安装 2.解决ubuntu18.04下网易云音乐打不开的问题 修改/etc/sudoers文件 sudo vi /etc/sudoers 在最后增加一行: usern ...

  9. SQLServer 账户当前被锁定

    嗯,被攻击了一波,烦躁很 ‘帐户当前被锁定,所以用户 ‘sa’ 登录失败.系统管理员无法将该帐户解锁’解决方法 如果短时间内不停连接,就会被SQL SERVER误认为是这是攻击,会将此账号锁定. 要用 ...

  10. lua 匹配空白符

    lua 支持的所有字符类: .     任意字符%s 空白符 空白字符一般包括空格.换行符\n.制表符\t以及回到行首符\r%p 标点字符%c 控制字符%d 数字%x 十六进制数字%z 代表0的字符% ...