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

微网站建设制作线上推广员是干什么的

微网站建设制作,线上推广员是干什么的,wordpress下拉框插件,wordpress cx-udy在分布式系统和高并发场景中#xff0c;限流是一个非常常见且重要的需求。以下是一些常用的限流工具和库#xff0c;包括它们的特点和使用场景#xff1a; 1. Guava RateLimiter Google 的 Guava 库中的 RateLimiter 是一个简单且高效的限流工具#xff0c;适用于单节点应…在分布式系统和高并发场景中限流是一个非常常见且重要的需求。以下是一些常用的限流工具和库包括它们的特点和使用场景 1. Guava RateLimiter Google 的 Guava 库中的 RateLimiter 是一个简单且高效的限流工具适用于单节点应用。 优点: 易于使用高效 缺点: 仅适用于单节点环境不支持分布式限流 示例代码: import com.google.common.util.concurrent.RateLimiter;public class GuavaRateLimiterExample {public static void main(String[] args) {// 创建一个每秒允许10个请求的RateLimiterRateLimiter rateLimiter RateLimiter.create(10.0);for (int i 0; i 20; i) {// 尝试获取一个许可if (rateLimiter.tryAcquire()) {System.out.println(Acquired permit (i 1));// 执行限流操作} else {System.out.println(Could not acquire permit (i 1));}}} }2. Redis Lua 脚本 使用 Redis 和 Lua 脚本可以实现分布式限流因为 Redis 本身是一个高性能的分布式缓存和存储系统。 优点: 支持分布式高性能 缺点: 实现复杂度较高需要编写和维护 Lua 脚本 示例代码Lua脚本: local key KEYS[1] local limit tonumber(ARGV[1]) local current tonumber(redis.call(get, key) or 0)if current 1 limit thenreturn 0 elseredis.call(INCRBY, key, 1)redis.call(EXPIRE, key, 1)return 1 end Java代码调用Lua脚本: import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool;public class RedisRateLimiter {private JedisPool jedisPool;public RedisRateLimiter(JedisPool jedisPool) {this.jedisPool jedisPool;}public boolean tryAcquire(String key, int limit) {try (Jedis jedis jedisPool.getResource()) {String luaScript ...; // 上述Lua脚本内容Object result jedis.eval(luaScript, 1, key, String.valueOf(limit));return result.equals(1L);}} } 3. Redisson RRateLimiter Redisson 是一个基于 Redis 的 Java 客户端提供了多种分布式数据结构和服务其中包括 RRateLimiter 用于分布式限流。 优点: 支持分布式使用方便集成良好 缺点: 依赖 Redis 示例代码: import org.redisson.Redisson; import org.redisson.api.RRateLimiter; import org.redisson.api.RedissonClient; import org.redisson.config.Config;public class RedissonRateLimiterExample {public static void main(String[] args) {Config config new Config();config.useSingleServer().setAddress(redis://127.0.0.1:6379);RedissonClient redisson Redisson.create(config);RRateLimiter rateLimiter redisson.getRateLimiter(myRateLimiter);rateLimiter.trySetRate(RRateLimiter.RateType.OVERALL, 5, 1, RateIntervalUnit.SECONDS);for (int i 0; i 10; i) {if (rateLimiter.tryAcquire()) {System.out.println(Acquired permit (i 1));} else {System.out.println(Could not acquire permit (i 1));}}redisson.shutdown();} } dependencygroupIdorg.redisson/groupIdartifactIdredisson-spring-boot-starter/artifactId/dependencyspring:redis:redisson:config: |singleServerConfig:address: redis://xxxxx:6383connectionPoolSize: 30connectionMinimumIdleSize: 30password: xxxdatabase: 0connectTimeout: 1000timeout: 500retryAttempts: 3retryInterval: 1000threads: 10nettyThreads: 10transportMode: NIOComponent Configuration public class XXXControlConfig {Autowiredprivate RedissonClient redissonClient;Autowiredprivate xxxControlProperties xxxControlProperties;/*** 拆章滑动窗口*/Beanpublic RRateLimiter rateLimiter() {RRateLimiter rateLimiter redissonClient.getRateLimiter(xxx);rateLimiter.trySetRate(RateType.OVERALL,flowControlProperties.getRate().getInterval(),flowControlProperties.getRate().getPermits(),RateIntervalUnit.MINUTES);return rateLimiter;}/*** 试听最大并发数*/Beanpublic RSemaphore semaphore() {RSemaphore semaphore redissonClient.getSemaphore(xxxxx);semaphore.trySetPermits(flowControlProperties.getSemaphore().getPermits());return semaphore;}Autowiredprivate RRateLimiter rateLimiter;if(flowControlProperties.getRate().isEnabled() !rateLimiter.tryAcquire()) {throw new SystemException(Code, 系统繁忙请稍后再试);} 4. Bucket4j Bucket4j 是一个 Java 限流库提供了灵活的令牌桶算法实现可用于本地或分布式限流通过第三方存储如 Hazelcast。 优点: 灵活支持多种存储后端 缺点: 配置相对复杂 示例代码: import io.github.bucket4j.Bandwidth; import io.github.bucket4j.Bucket; import io.github.bucket4j.Bucket4j; import io.github.bucket4j.Refill;import java.time.Duration;public class Bucket4jExample {public static void main(String[] args) {Bandwidth limit Bandwidth.classic(10, Refill.greedy(10, Duration.ofSeconds(1)));Bucket bucket Bucket4j.builder().addLimit(limit).build();for (int i 0; i 20; i) {if (bucket.tryConsume(1)) {System.out.println(Acquired permit (i 1));} else {System.out.println(Could not acquire permit (i 1));}}} } 这些工具各有优缺点可以根据你的具体需求选择合适的限流工具。如果你需要分布式限流推荐使用 Redis 相关的解决方案如 Redisson 或者自定义 Lua 脚本。如果是单节点应用Guava 的 RateLimiter 或 Bucket4j 都是不错的选择。
http://www.w-s-a.com/news/110538/

相关文章:

  • 盐城网站建设电话高端定制网站
  • 成都网站seo技术施工企业样板先行制度
  • 高端网站建设电话河北建筑工程信息网站
  • 亲 怎么给一个网站做备份财务系统有哪些软件
  • wordpress重新手机优化专家下载
  • 怎样把网站做成软件设计工作室怎么接单
  • html网站设计实例代码重庆多个区划定风险区
  • 推广方案设计同一个网站可以同时做竞价和优化
  • 论坛网站开发 go电商扶贫网站建设
  • 个人建站教程优秀的定制网站建设
  • 农村建设集团有限公司网站下载百度极速版
  • 微信公众号个人可以做网站么做企业网站需要哪些
  • 如何用付费音乐做视频网站wordpress如何设置首页
  • 杨凯做网站网站首页 排版
  • 网站图片标签江苏省建设类高工申报网站
  • 网站建设中的英文什么网站可以做医疗设备的
  • 柳州购物网站开发设计服装网站的建设与管理
  • 做网站的上海市哪家技术好北京百姓网免费发布信息
  • 网站文章排版制作网站软件
  • 云南网站开发公司网站商城定制网站建设
  • 企业网站的新闻资讯版块有哪些肇庆自助建站模板
  • 怎么做平台网站吗为网站做seo需要什么
  • 苏州吴江建设局招标网站海南网站搭建价格
  • 网站建设主要研究内容用哪个程序做网站收录好
  • 网站建设如何开单装修设计图免费
  • 做内容网站赚钱吗seo推广具体做什么
  • 连山区网站建设seo简历
  • 自助建站系统官方版太仓高端网站制作
  • 怎样只做自己的网站建设银行唐山分行网站
  • 咸阳鑫承网站建设软件开发公司网站模板