当前位置: 首页 > news >正文

javascript特效大全seo排名优化收费

javascript特效大全,seo排名优化收费,桂林最新情况最新数据,做网站如何挣钱目录 1:如何实现分布式限流 2:限流的几种类别 2.1:固定窗口限流 2.2:滑动窗口限流 2.3:漏桶限流 2.4:令牌桶限流 3:实现分布式限流:Redis 3.1:引入Redisson的依赖包 3.2:初始化Redisson 3.3:创建Redisson的限流类 1:如何实现分布式限流 1:把统计用户的使用频率等这些…

目录

1:如何实现分布式限流

2:限流的几种类别 

2.1:固定窗口限流

2.2:滑动窗口限流

2.3:漏桶限流

2.4:令牌桶限流

3:实现分布式限流:Redis

3.1:引入Redisson的依赖包

3.2:初始化Redisson

3.3:创建Redisson的限流类 


1:如何实现分布式限流

1:把统计用户的使用频率等这些数据放到一个集中的存储,比如redis,这样无论用户的请求落在了哪台服务器,都以集中存储的数据为准。(Redis)

2:限流的几种类别 

2.1:固定窗口限流

单位时间内,允许部分操作。 1小时,只允许10个用户操作。

优点:最简单

缺点:可能出现流量突刺

eg:前59分钟,第59分钟来了十个操作。第一小时01分钟又来了十个操作,就可能导致流量突刺,相当于2分钟实现了20个操作。

2.2:滑动窗口限流

单位时间内,允许部分操作,但是这个时间是滑动的  需要指定滑动单位

滑动单位: 1min

开始前:

0s  1h 2h

一分钟:

1min 1h1min

优点;能够解决上面流量突刺的问题,第59分钟,限流窗口59min到1h59min,这个时间段内接受10次请求,只要在这个窗口内,更多的操作就会被拒绝。

缺点:实现相对复杂。滑动单位越小,限效果越好。

2.3:漏桶限流

以固定的速率请求,当请求桶满后,拒绝请求。

每秒处理10个请求,桶的容量是10,每0.1秒处理1次请求(固定的),如果1秒内,来了10个都可以处理完,但如果一秒内来了11个请求,最后那个请求就会被拒绝。

优点:能够一定程度上应对流量突刺,能够以固定的速率处理请求,安全性高

缺点:速度是固定的,没有办法处理一批请求,只能一个一个来

2.4:令牌桶限流

管理员先生成一批令牌,每秒生成10个令牌,当用户操作前,先去拿到令牌,有令牌的人可以先执行,都能够同时执行。

优点:能够并发处理同时的请求,并发性高

缺点:时间单位选取的问题。

 以上漏桶限流和令牌桶限流最常用。

3:实现分布式限流:Redis

3.1:引入Redisson的依赖包

  <dependency><groupId>org.redisson</groupId><artifactId>redisson</artifactId><version>3.17.5</version></dependency>

3.2:初始化Redisson

@Configuration
@ConfigurationProperties(prefix = "spring.redis")public class RedissonConfig {private Integer database;private String host;private String port;@Beanpublic RedissonClient getRedissonClient(){//配置Redis的配置类Config config=new Config();config.useSingleServer().setDatabase(database).setAddress("redis://"+host+":"+port);RedissonClient redisson= Redisson.create(config);return redisson;}
}

 

3.3:创建Redisson的限流类 

@Service
public class RedisLimiterManage {@Autowiredprivate RedissonClient redissonClient;//key:区分不同的限流器:不同的用户idpublic void doRateLimit(String key){RRateLimiter rateLimiter=redissonClient.getRateLimiter(key);//将所有用户的访问次数放在同一个限流器上,1秒允许两次rateLimiter.trySetRate(RateType.OVERALL,2,1, RateIntervalUnit.SECONDS);//每当一个用户来了之后,请求一个令牌boolean result = rateLimiter.tryAcquire(1);if(!result){throw new BusinessException(ErrorCode.NO_AUTH_ERROR,"请求过于频繁");}}
}

当我们使用分布式限流Redis的时候,只需要让这个RedisLimiterManage调用doRateLimit方法,就可以进行分布式限流的操作。

 @Autowiredprivate RedisLimiterManage redisLimiterManage;
//引入依赖//进行限流判断redisLimiterManage.doRateLimit("genChartByAi_"+user.getId());//每个用户的限流器

 

http://www.mnyf.cn/news/48207.html

相关文章:

  • 无锡住房建设网站seo课程在哪培训好
  • 申请备案 关网站珠海企业网站建设
  • 保定干洗机做网站直通车关键词优化口诀
  • 找人做网站需要先了解哪些要点semicircle
  • 设计素材网站照片武汉百度推广电话
  • 网站建设的公司系统规划手机百度app下载
  • 网站设计规划书例子百度招聘2022年最新招聘
  • 用html5做的旅游网站代码百度关键词排名提升工具
  • 辽宁省住房和城乡建设部网站主页百度商家版下载
  • 优化一个网站可以做多少关键词免费网站统计代码
  • 知名的网站建设公司电商网站首页
  • 在日本网站做推广渠道发文章用哪个平台比较好
  • 怎么做游戏和网站漏洞搜什么关键词能搜到好片
  • 外贸网站的建设企业培训课程体系
  • 天津武清网站建设做网站seo怎么赚钱
  • 曲靖网站建设淘宝店怎么运营和推广
  • 做商城网站费用外链服务
  • 网站建设一般需要什么功能网站建设首页
  • 怎样做网站优化百度seo如何优化关键词
  • 浏览器大全列表下载信息流优化师招聘
  • 怎样做不用备案的网站宝鸡seo排名
  • 两个网站链接怎么做百度一下你就知道移动官网
  • 淘宝客网站都用什么做百度广告投放平台
  • 网站建设服务提供商合肥网站制作
  • 做虚拟币网站需要什么手续线下推广都有什么方式
  • 2018什么语言做网站比较好全国疫情最新名单
  • 商洛网站建设哪家好重庆自动seo
  • 国家企业信用信息没有网站怎么做杭州搜索引擎排名
  • 好看的旅游网站模版怎么自己注册网站
  • 石家庄手机网站销售管理软件