欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

大并发量应对方案——应用降级开关

程序员文章站 2022-06-02 15:55:18
...

背景:双11在即,手头的优惠券接口压测结果不理想,开发了一个降级开关,可以在双11接口压力大时配置关闭一部分用户的领券中心,降低接口压力,与扩容配合作为保障
详情:
大并发量应对方案——应用降级开关

配置中心(存放系统中一些可配置参数)
配置两个参数,useCoupon和useCouponPercent
useCoupon:是否使用全量优惠券,
true:使用,代表不降级
false:不使用,代表降级,此时下面的useCouponPercent生效
useCouponPercent:0-100,代表屏蔽的用户百分比

    /**
     * 是否使用优惠券服务: true(使用) false(不使用)
     * @return
     */
    private boolean useCouponService(){
        boolean useCoupon = duccConfig.isUseCoupon();
        Long useCouponPercent = duccConfig.getUseCouponPercent().longValue();
        Long time = System.currentTimeMillis();
        if (!useCoupon && time%100 < useCouponPercent){
            return false;
        }
        return true;
    }
ResultDto resultDto;
        if (!useCouponService()){
            resultDto = new ResultDto(CodeEnum.SUCCESS.getCode(), CodeEnum.SUCCESS.getMessage());
            log.info("优惠券tab接口降级!");
            return resultDto;
        }
        NewCouponInfo couponInfos = JSON.parseObject(body, NewCouponInfo.class);
        //正常逻辑balabalabala
        return resultDto;

如果用户被降级,优惠券接口返回给前端被降级的提示,前端取到优惠券信息为null,会自动折叠该楼层,实现关闭该用户入口