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

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

    所以,RouteLocator的refresh時間不能太長,不然后果很嚴重
    如果refresh結(jié)束之前,dirty值已經(jīng)被改成false,當(dāng)時確實更新的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項目下的,一般都會配合eureak使用
    eureka-client包中,在DiscoveryClient初始化的時候,默認會開啟一個定時器,每隔30秒發(fā)布一個HeartbeatEvent事件,而ZuulRefreshListener會監(jiān)聽這個事件,然后調(diào)用ZuulHandlerMapping.setDirty(true);

    所以,RouteLocator的refresh時間不能太長,不然后果很嚴重
    如果refresh結(jié)束之前,dirty值已經(jīng)被改成false,當(dāng)時確實更新的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(我認為是哈),更神奇的是,這個bug一年前已經(jīng)有人提了issue...

中超| 乡城县| 舒城县| 长沙市| 新平| 易门县| 体育| 塔河县| 靖安县| 莱州市| 惠州市| 壶关县| 三明市| 资阳市| 乡城县| 丰都县| 乌兰县| 遵化市| 循化| 阜新市| 安多县| 思南县| 拜泉县| 滕州市| 博白县| 汝州市| 武陟县| 喜德县| 新和县| 周口市| 灵宝市| 禹州市| 安仁县| 和田县| 广西| 兴安县| 彭州市| 长泰县| 鹤庆县| 布尔津县| 咸丰县|