一、不重要可忽略的接口,一刀切
二、重要的查询接口,发第一版:新老接口查询结果对比校验;充分时间观察后(日志查看技术参数);发第二版:新接口取代老接口
三、重要的编辑接口(日志查看技术参数,编辑效果):开关控制、灰度百分比流量、白名单、黑名单
public <T> boolean isHitTarget(String logIdentify, Boolean openSwitch, List<T> whiteList, List<T> blackList, Double grayPercent, T value) {
if (!openSwitch) {
// 开关未开启
log.info("{}开关未开启,openSwitch={}", logIdentify, openSwitch);
return false;
}
if (Objects.nonNull(whiteList) && whiteList.contains(value)) {
// 命中白名单
log.info("{}命中白名单,value={}", logIdentify, value);
return true;
}
if (Objects.nonNull(blackList) && blackList.contains(value)) {
// 命中黑名单
log.info("{}命中黑名单,value={}", logIdentify, value);
return false;