作者回复: 这个是被Bulkhead拒掉的,还没到服务提供方那里呢。你是想在消费者这里搞个队列慢慢处理?那在catch到BulkheadFullException异常后自己处理放到异步队列就好了。
作者回复: bulkhead在控制并发,并发度内的都会发给下游,到达设定阈值先在本地排队,超过等待时间的就直接在本地拒了,不会向下游发起调用的。
作者回复: 针对用户进行限流是否粒度太细了?你想解决的问题是什么,可以再分析一下。假设你为每个用户设置一个RateLimiter,用户多了不好维护,用户少,是不是又没必要限……所以,建议你再仔细分一下你的场景。
作者回复: 就是模拟同一时间去访问目标地址。你说的ms us还是ns,这个我还真不清楚,这种就算我程序里写什么精度,最后也是执行时系统来决定的吧。
作者回复: 你已经Try.ofSupplier了,为什么外面还要再包一段try呢?Try.ofXXX就是函数式风格里的try了。
作者回复: 你是指服务的提供方不想做限流改造?那你只能控制发起调用的频率,在调用方这里做限流,不过如果有多个调用方,光改一处是没用的,A不会压垮它,BCD会。如果是遗留系统,不方便改动,那就在它的接口前加一层保护吧。