exp:分布式限流

2024-04-17 02:38
文章标签 分布式 限流 exp

本文主要是介绍exp:分布式限流,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

方法1:

采用分布式每个节点单独控制限流的方式。
就是如果总限流10000,4个节点,每个节点限制2500即可(前提是负载均衡,每个节点均匀服务)。
代码见:
https://github.com/lifan2/lfLearn/tree/master/src/main/java/com/lflearn/ratelimiter2

现在要对某方法mm限流,在方法上注解了@RateLimiterAnno
注意,如果mm是被其他方法调用的,必须使mm方法调用采用**Service.mm的形式

@Service
public class TestService2 {//  特殊@Resourceprivate TestService2 testService2;public void printNum2(int order){      //  特殊testService2.printNum(i);}@RateLimiterAnno(limiterName = "printLimiter",limitCount = 30)public void printNum(int order) {System.out.println(Thread.currentThread().getName() + ":" + order );}}printNum2里调用printNum,如果不采用特殊的写法,注解不会起到作用。

具体自定义注解失效原因分析:https://blog.csdn.net/li12412414/article/details/81012952

测试时用线程池跑多个线程,代码见上面github地址。

方法2:

如果仅仅是抢令牌,没抢到也没事就不执行的这种,可以采用Redis +Lua的方式限流。
代码见:
https://github.com/lifan2/lfLearn/tree/master/src/main/java/com/lflearn/ratelimiter

这篇关于exp:分布式限流的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/910584

相关文章

Eureka高可用注册中心registered-replicas没有分布式注册中心

自己在学习过程中发现,如果Eureka挂掉了,其他的Client就跑不起来了,那既然是商业项目,还是要处理好这个问题,所以决定用《Spring Cloud微服务实战》(PDF版在全栈技术交流群中自行获取)中说的“高可用注册中心”。 一开始我yml的配置是这样的 server:port: 8761eureka:instance:hostname: 127.0.0.1client:fetch-r

[分布式网络通讯框架]----Zookeeper客户端基本操作----ls、get、create、set、delete

Zookeeper数据结构 zk客户端常用命令 进入客户端 在bin目录下输入./zkCli.sh 查看根目录下数据ls / 注意:要查看哪一个节点,必须把路径写全 查看节点数据信息 get /第一行代码数据,没有的话表示没有数据 创建节点create /sl 20 /sl为节点的路径,20为节点的数据 注意,不能跨越创建,也就是说,创建sl2的时候,必须确保sl

[分布式网络通讯框架]----ZooKeeper下载以及Linux环境下安装与单机模式部署(附带每一步截图)

首先进入apache官网 点击中间的see all Projects->Project List菜单项进入页面 找到zookeeper,进入 在Zookeeper主页的顶部点击菜单Project->Releases,进入Zookeeper发布版本信息页面,如下图: 找到需要下载的版本 进行下载既可,这里我已经下载过3.4.10,所以以下使用3.4.10进行演示其他的步骤。

分布式事务的解决方案(一)

前言应用场景 事务必须满足传统事务的特性,即原子性,一致性,分离性和持久性。但是分布式事务处理过程中, 某些场地比如在电商系统中,当有用户下单后,除了在订单表插入一条记录外,对应商品表的这个商品数量必须减1吧,怎么保证? 在搜索广告系统中,当用户点击某广告后,除了在点击事件表中增加一条记录外, 还得去商家账户表中找到这个商家并扣除广告费吧,怎么保证? 一 本地事务 以用户A

分布式锁实现方案-基于Redis实现的分布式锁

目录 一、基于Lua+看门狗实现 1.1 缓存实体 1.2 延迟队列存储实体 1.3 分布式锁RedisDistributedLockWithDog 1.4 看门狗线程续期 1.5 测试类 1.6 测试结果 1.7 总结 二、RedLock分布式锁 2.1 Redlock分布式锁简介 2.2 RedLock测试例子 2.3 RedLock 加锁核心源码分析 2.4

分布式,容错:10台电脑坏了2台

由10台电脑组成的分布式系统,随机、任意坏了2台,剩下的8台电脑仍然储存着全部信息,可以继续服务。这是怎么做到的? 设N台电脑,坏了H台,要保证上述性质,需要有冗余,总的存储量降低为1/(H+1)。例如: H=1,随机坏1台,总容量变为1/2; H=2,随机坏2台,总容量变为1/3; 特别地,H=0,总容量不变; H=N-1,总容量变为1/N,这时,每台电脑都储存着全部信息,保证任意坏了N-1台

视频讲解|【双层模型】分布式光伏储能系统的优化配置方法

1 主要内容 该讲解视频对应的程序链接为【双层模型】分布式光伏储能系统的优化配置方法,模型参考《分布式光伏储能系统的优化配置方法》,分为上下层求解方式,上层采用粒子群算法确定储能的选址和容量方案,以全年购电成本、网络损耗、光伏运行成本、储能充放电和投资成本为目标;下层采用混合整数规划算法(默认求解器为cplex,也可替换成gurobi),以IEEE33节点配电网为研究对象,通过二阶锥模型求解,以

java分布式(分布式架构)

开头的话,架构多半和业务关联在一起,如果只是简单的图书管理系统、选课系统或者什么简单的财务系统,用不着分布式。只有大型公司、高并发的业务才需要分布式的帮助。当然,架构本身要和业务模型紧密配合才能发挥作用。        很长一段时间,java都是最流行的编程语言。我想,一方面是由于java可以用来开发网站后端程序,另外一方面java可以用来开发android这样的客户端程序。当然,很多人会说,

分布式的任务调度,技术上我们选择了zookeeper

http://www.ibm.com/developerworks/cn/opensource/os-cn-zookeeper/     ---zookeeper初识 http://blog.csdn.net/liuc0317/article/details/42266177      dubbo发布服务在zookeeper上 http://blog.csdn.net/lfsf802/art

分布式架构的优势与实现

目录 前言1. 什么是分布式架构1.1 分布式架构的定义1.2 分布式架构的基本原理 2. 分布式架构的优势2.1 可扩展性2.2 容错性和高可用性2.3 性能优化2.4 灵活性和可维护性 3. 分布式架构的实现方法3.1 服务拆分3.1.1 功能拆分3.1.2 垂直拆分3.1.3 水平拆分 3.2 数据分布与存储3.2.1 分片3.2.2 复制3.2.3 分布式缓存 3.3 网络通信与协调