import java.security.SecureRandom;
import java.util.BitSet;
import java.util.Random;
import java.util.concurrent.atomic.AtomicInteger;
public class RequestSampler {
private final AtomicInteger counter = new AtomicInteger(0);
private final BitSet sampleDecisions;
private float percentage =0.1f;
private static float percentCount = 10000.0f;
public RequestSampler(float percentage) {
RequestSampler.setPercentCount(1/percentage);
int outOf100 = (int) (percentage * percentCount);
this.sampleDecisions = randomBitSet((int)percentCount, outOf100, new SecureRandom());
this.percentage = percentage;
}
public boolean isSampled() {
if (this.percentage == 0) {
return false;
} else if (this.percentage == percentCo

这个Java类`RequestSampler`实现了随机采样算法。它使用`BitSet`和`AtomicInteger`来跟踪采样决策,并通过`SecureRandom`生成随机数。采样率可以通过构造函数设置,并且在每次调用`isSampled()`方法时,根据设定的采样率决定是否返回`true`。
最低0.47元/天 解锁文章
1638

被折叠的 条评论
为什么被折叠?



