Giter Site home page Giter Site logo

spring-cloud-practice's People

Contributors

charlesvhe avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

spring-cloud-practice's Issues

HystrixRequestVariableDefault 获取不到存入的数据

把您的CoreHeaderInterceptor 搬过去就改了 存入类型 在 LabelAndWeightMetadataRule里面获取为空 ,是我哪没有 弄好么?
`
public class DevInterceptor extends HandlerInterceptorAdapter {
public static final String DEV_EUREKA_HEADER="DEV_EUREKA_HEADER";
public static final HystrixRequestVariableDefault THREAD_LOCAL = new HystrixRequestVariableDefault<>();

public static void initHystrixRequestContext(DevConfig labels) {
    if (!HystrixRequestContext.isCurrentThreadInitialized()) {
        HystrixRequestContext.initializeContext();
    }
    labels=labels!=null?labels:new DevConfig();
    DevInterceptor.THREAD_LOCAL.set(labels);
}

public static void shutdownHystrixRequestContext() {
    if (HystrixRequestContext.isCurrentThreadInitialized()) {
        HystrixRequestContext.getContextForCurrentThread().shutdown();
    }
}
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
    DevConfig devConfig=null;
    try {
        String header = request.getHeader(DEV_EUREKA_HEADER);
        if(StringUtils.isNotEmpty(header)){
            try {
                devConfig = JSON.parseObject(Base64.getDecoder().decode(header),DevConfig.class);
            }catch (Exception e){
                e.printStackTrace();
            }
        }

    }catch (Exception e){
        e.printStackTrace();
    }

    DevInterceptor.initHystrixRequestContext(devConfig);
    return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
    DevInterceptor.shutdownHystrixRequestContext();
}

}
`

`
public class DevMetadataRule extends ZoneAvoidanceRule {

private Random random = new Random();

@Override
public Server choose(Object key) {
    DevConfig config = DevInterceptor.THREAD_LOCAL.get();
    //config  为null
}

}
`

consumer调用provider没有按照权重请求

如果我直接设置consumer的权重,并通过zuul转发的话,是会根据权重值请求的.
但是当我设置了consumer和provider的权重后,并通过zuul请求consumer,然后consumer通过restTemplate调用provider,这个时候,provider的权重值是不生效的!
如何解决这种连续调用的权重处理? 请指教.跪求

LabelAndWeightMetadataRule 灰度标签问题

场景:根据灰度标签过滤是否将用户转移到灰度环境。
环境的筛选应该放到 IFilter 进行扩展,
IRule 是负载均衡规则,比如根据lable选择出该请求应该转发到灰度环境,IRule 负责按照规则选择灰度环境的服务实例。

rule有明显bug,建议扩展predicate

底下这段代码永远只返回第一个符合条件的实例。父类的roundrobin被你忽略了。
// 优先匹配label String labelOr = metadata.get(META_DATA_KEY_LABEL_OR); if(!StringUtils.isEmpty(labelOr)){ List<String> metadataLabel = Arrays.asList(labelOr.split(CoreHeaderInterceptor.HEADER_LABEL_SPLIT)); for (String label : metadataLabel) { if(CoreHeaderInterceptor.label.get().contains(label)){ return server; } } }

核心判断建议通过扩展AbstractServerPredicate来实现。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.