https://blog.csdn.net/xiaoyi5224765/article/details/115706271
为什么这个Sentinel的 漏桶算法 限流 RateLimiterController 的实现中:
if (expectedTime <= currentTime) {//@5
// Contention may exist here, but it's okay.
latestPassedTime.set(currentTime);
return true;
} else {
}
期望时间小于当前时间 则放行, 这个代码存在并发的情况,怎么他还 is ok? 这玩意是不是不准?
没保证只有一个线程成功更新latestPassedTime。
b
他这个限流算法在业务上其实做的粗略,并不会特别影响实际业务的执行,如果为了这个流量的搞精度,用上了锁,或者影响了太多性能那就得不偿失了