spring-cloud-practice
spring-cloud-practice copied to clipboard
for (Server server : serverList) 循环遍历后 就直接返回匹配的 server。 如果有多个匹配 就不可以了
底下这段代码永远只返回第一个符合条件的实例。父类的roundrobin被你忽略了。 ` // 优先匹配label String labelOr = metadata.get(META_DATA_KEY_LABEL_OR); if(!StringUtils.isEmpty(labelOr)){ List metadataLabel = Arrays.asList(labelOr.split(CoreHeaderInterceptor.HEADER_LABEL_SPLIT)); for (String label : metadataLabel) { if(CoreHeaderInterceptor.label.get().contains(label)){ return server; } } }` 核心判断建议通过扩展AbstractServerPredicate来实现。
把您的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...