色偷偷精品伊人,欧洲久久精品,欧美综合婷婷骚逼,国产AV主播,国产最新探花在线,九色在线视频一区,伊人大交九 欧美,1769亚洲,黄色成人av

240 發(fā)簡信
IP屬地:北京
  • zuul是被spring集成在spring-cloud項(xiàng)目下的,一般都會配合eureak使用
    eureka-client包中,在DiscoveryClient初始化的時候,默認(rèn)會開啟一個定時器,每隔30秒發(fā)布一個HeartbeatEvent事件,而ZuulRefreshListener會監(jiān)聽這個事件,然后調(diào)用ZuulHandlerMapping.setDirty(true);

    所以,RouteLocator的refresh時間不能太長,不然后果很嚴(yán)重
    如果refresh結(jié)束之前,dirty值已經(jīng)被改成false,當(dāng)時確實(shí)更新的route不會生效,但是會在下一個HeartbeatEvent事件發(fā)布后生效

    如果,需要在refresh之后,立刻生效,也可以通過aop+反射來解決這個問題
    private Logger logger = LoggerFactory.getLogger(CompositeRouteAop.class);

    @Resource
    private ZuulHandlerMapping handlerMapping;

    @Pointcut("execution(* org.springframework.cloud.netflix.zuul.filters.CompositeRouteLocator.refresh(..))")
    public void pointCut() {
    }

    @Around("pointCut()")
    public Object resetDirty(ProceedingJoinPoint joinPoint) throws Throwable {
    Object proceed = joinPoint.proceed(joinPoint.getArgs());

    try {
    Field dirty = ZuulHandlerMapping.class.getDeclaredField("dirty");
    dirty.setAccessible(true);
    dirty.setBoolean(handlerMapping, true);
    } catch (Throwable e) {
    logger.error("reset zuulHandlerMapping dirty value error after refresh route", e);
    }

    return proceed;
    }

  • zuul是被spring集成在spring-cloud項(xiàng)目下的,一般都會配合eureak使用
    eureka-client包中,在DiscoveryClient初始化的時候,默認(rèn)會開啟一個定時器,每隔30秒發(fā)布一個HeartbeatEvent事件,而ZuulRefreshListener會監(jiān)聽這個事件,然后調(diào)用ZuulHandlerMapping.setDirty(true);

    所以,RouteLocator的refresh時間不能太長,不然后果很嚴(yán)重
    如果refresh結(jié)束之前,dirty值已經(jīng)被改成false,當(dāng)時確實(shí)更新的route不會生效,但是會在下一個HeartbeatEvent事件發(fā)布后生效

    如果,需要在refresh之后,立刻生效,也可以通過aop+反射來解決這個問題
    private Logger logger = LoggerFactory.getLogger(CompositeRouteAop.class);

    @Resource
    private ZuulHandlerMapping handlerMapping;

    @Pointcut("execution(* org.springframework.cloud.netflix.zuul.filters.CompositeRouteLocator.refresh(..))")
    public void pointCut() {
    }

    @Around("pointCut()")
    public Object resetDirty(ProceedingJoinPoint joinPoint) throws Throwable {
    Object proceed = joinPoint.proceed(joinPoint.getArgs());

    try {
    Field dirty = ZuulHandlerMapping.class.getDeclaredField("dirty");
    dirty.setAccessible(true);
    dirty.setBoolean(handlerMapping, true);
    } catch (Throwable e) {
    logger.error("reset zuulHandlerMapping dirty value error after refresh route", e);
    }

    return proceed;
    }

    spring cloud zuul使用記錄(2)路由接入流程以及并發(fā)刷新問題

    最近在看spring cloud zuul(版本Finchley.SR1)的源代碼,一不小心還看到了個bug(我認(rèn)為是哈),更神奇的是,這個bug一年前已經(jīng)有人提了issue...

舞钢市| 乌恰县| 临洮县| 河东区| 汤阴县| 凤冈县| 康马县| 永修县| 依兰县| 图们市| 两当县| 成武县| 永新县| 许昌市| 舟山市| 花莲县| 大田县| 巨鹿县| 图片| 沈丘县| 确山县| 当雄县| 阜城县| 普兰店市| 正镶白旗| 平安县| 阳东县| 禄丰县| 株洲县| 闵行区| 来宾市| 武威市| 高平市| 会同县| 资阳市| 长兴县| 临澧县| 泰兴市| 武邑县| 金阳县| 呈贡县|