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

如何外贸网站推广wordpress视差插件

如何外贸网站推广,wordpress视差插件,作者联合开发的小说网站叫什么,做外贸是不是必须有网站常见的限流算法 限流的定义固定窗口算法滑动窗口算法漏桶算法#xff08;推荐#xff09;令牌桶算法(推荐)限流粒度本地限流#xff08;单机限流#xff09;分布式限流#xff08;多机限流#xff09;分布式限流的实现 限流的定义 限流#xff0c;也称流量控制。是指系统… 常见的限流算法 限流的定义固定窗口算法滑动窗口算法漏桶算法推荐令牌桶算法(推荐)限流粒度本地限流单机限流分布式限流多机限流分布式限流的实现 限流的定义 限流也称流量控制。是指系统在面临高并发或者大流量请求的情况下限制新的请求对系统的访问从而保证系统的稳定性。限流会导致部分用户请求处理不及时或者被拒这就影响了用户体验。所以一般需要在系统稳定和用户体验之间平衡一下。 一般对于一些调用需要付费的接口对用户进行限流操作限制用户的请求次数。 比如限制单个用户每秒只使用一次 固定窗口算法 单位时间内允许部分操作 维护一个计数器将单位时间段当做一个窗口计数器记录这个窗口接收请求的次数。 当次数少于限流阀值就允许访问并且计数器1 当次数大于限流阀值就拒绝访问。 当前的时间窗口过去之后计数器清零,开始下一个窗口。 假设单位时间是1秒限流阀值为3。在单位时间1秒内每来一个请求,计数器就加1如果计数器累加的次数超过限流阀值3后续的请求全部拒绝。等到1s结束后计数器清0重新开始计数 优点实现简单 缺点会出现流量突刺 滑动窗口算法 单位时间内允许部分操作但这个单位时间是滑动的,需要指定一个滑动单位。 优点解决了流量突刺问题 缺点实现较麻烦很难找到准确的滑动单位,滑动单位越小效果越好。 漏桶算法推荐 以固定速率处理请求(漏水操作)当请求桶满了之后就拒绝请求 优点在一定程度上能够应对流量突刺以固定速率处理请求能够保证服务器的安全 缺点无法迅速的对请求做出处理,只能一个个按顺序处理(固定速率处理的缺点) 令牌桶算法(推荐) 以固定速率向令牌桶添加令牌每个令牌代表一定数量的请求请求需要获取令牌之后才能够被处理。没有令牌的请求会被拒绝。 优点:能够并发的处理请求并发的性能会更高一点。 缺点还是存在时间单位选取的问题 限流粒度 1.针对某个方法进行限流单位时间内最多允许XXX个操作使用使用这个方法。 2,针对某个用户进行限流某个用户单位时间内最多执行XXX个操作 3.针对某个用户X方法单个用户单位时间内最多执行XXX次这个方法 本地限流单机限流 这里采用谷歌的Guava RateLimiter实现 import com.google.common.util.concurrent.RateLimiter;public static void main(String[] args) {// 每秒限流5个请求RateLimiter limiter RateLimiter.create(5.0);while (true) {if (limiter.tryAcquire()) {// 处理请求} else {// 超过流量限制需要做何处理}} } 分布式限流多机限流 如果你的项目有多个服务器比如微服务那么建议使用分布式限流。 1.把用户的使用频率等数据放到一个集中的存储进行统计比如Redis这样无论用户的 请求落到了哪台服务器都以集中存储中的数据为准。(Redisson --是一个操作 Redis 的工具库) 2.在网关集中进行限流和统计(比如 Sentinel、Spring Cloud Gateway) import org.redisson.Redisson; import org.redisson.api.RSemaphore; import org.redisson.api.RedissonClient;public static void main(String[] args) {// 创建RedissonClientRedissonClient redisson Redisson.create();// 获取限流器RSemaphore semaphore redisson.getSemaphore(mySemaphore);// 尝试获取许可证boolean result semaphore.tryAcquire();if (result) {// 处理请求} else {// 超过流量限制需要做何处理} }分布式限流的实现 redission配置 package com.cheng.config;import org.redisson.config.Config; import lombok.Data; import org.redisson.Redisson; import org.redisson.api.RedissonClient; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;Configuration ConfigurationProperties(prefix spring.redis) Data public class RedissonConfig {private String host;private Integer port;private Integer database;private String password;Beanpublic RedissonClient redissonClient() {Config config new Config();config.useSingleServer().setAddress(redis:// host : port).setDatabase(database).setPassword(password);return Redisson.create(config);} }RedisLimiterManager服务的实现 package com.cheng.manager;import com.cheng.common.ErrorCode; import com.cheng.exception.BusinessException; import org.redisson.api.RRateLimiter; import org.redisson.api.RateIntervalUnit; import org.redisson.api.RateType; import org.redisson.api.RedissonClient; import org.springframework.stereotype.Service;import javax.annotation.Resource;/*** 专门提供 RedisLimiter 限流基础服务*/ Service public class RedisLimiterManager {Resourceprivate RedissonClient redissonClient;/*** 采用令牌桶限流算法* 每个用户一个限流器** 限流操作** param key 区分不同的限流器比如不同的用户 id 应该分别统计*/public void doRateLimit(String key) {// 创建一个名称为user_limiter的限流器每秒最多访问 2 次RRateLimiter rateLimiter redissonClient.getRateLimiter(key);//RateType.OVERALL 统一速率全局的rateLimiter.trySetRate(RateType.OVERALL, 2, 1, RateIntervalUnit.SECONDS);// 每当一个操作来了后请求一个令牌boolean canOp rateLimiter.tryAcquire(1);if (!canOp) {throw new BusinessException(ErrorCode.REQUEST_OVER);}} } 测试类 package com.cheng.springbootinit.manager;import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest;import javax.annotation.Resource;import static org.junit.jupiter.api.Assertions.*;SpringBootTest class RedisLimiterManagerTest {Resourceprivate RedisLimiterManager redisLimiterManager;Testvoid doRateLimit() throws InterruptedException {// 模拟一下操作String userId 1;// 瞬间执行2次,每成功一次,就打印成功for (int i 0; i 2; i) {redisLimiterManager.doRateLimit(userId);System.out.println(成功);}// 睡1秒Thread.sleep(1000);// 瞬间执行5次,每成功一次,就打印成功for (int i 0; i 5; i) {redisLimiterManager.doRateLimit(userId);System.out.println(成功);}} }
http://www.hkea.cn/news/14517963/

相关文章:

  • 电子产品去什么网站做站点wordpress镜像是什么意思
  • 视频直播点播网站建设青岛网站建设邓巴迪
  • 崇左网站搭建北京seo公司有哪些
  • 怎么往公司网站添加网站二维码链接怎么做
  • 江西科技学校网站建设中文wordpress网站模板
  • 自己在公司上班做网站宣传 侵权吗wordpress4.9.8 特别慢
  • 建设网站选什么地方的主机长沙谷歌seo
  • 网站推广视频的服务方案建设银行境外购物网站
  • 物流公司网站源码专业做视频的网站有哪些内容
  • 湘西吉首市建设局网站太原seo关键词优化
  • 南通百度网站快速优化腾讯云快速建站
  • 网页设计与网站建设连接数据库网站名称注册程序
  • 公司网站建设包含的内容欢迎页面设计模板
  • 北京手机版建站系统开发中国数学外国人做视频网站
  • 旅行网站开发贵阳网站建设公司招聘
  • 河北通信建设有限公司网站自网站EXCel数据导入怎么做
  • 网站百度终端适配代码影视公司网页设计
  • seo网站内部优化方案2017年做网站维护总结
  • 织梦大气金融类通用企业网站模板网站业务员好做吗
  • 长沙建网站临沂seo公司
  • 有关网站建设的说说漳浦县城乡规划建设局网站
  • 官方网站建设流程iis的网站默认端口
  • 防伪网站怎么做洛阳网站建设培训
  • 移动网站开发框架多用户商城app源码
  • 贵阳网站建设方案报价台州网站排名优化价格
  • 如何整理做网站的素材优秀网站介绍
  • 做海报 画册的素材网站wordpress建站事例
  • 网站用单页面框架做石家庄全网推广
  • 学做的网站基础蛋糕国外设计网站及介绍
  • 网站建设制作细节中国交通建设集团有限公司级别