From a9bb7c1932d4c14db9581ed067fdaf701c8d9023 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=86=B7=E5=86=B7?= Date: Fri, 28 Jun 2019 16:17:40 +0800 Subject: [PATCH] =?UTF-8?q?:bug:=20Fixing=20a=20bug.=20=E8=B7=AF=E7=94=B1?= =?UTF-8?q?=E8=A7=84=E5=88=99=E8=B0=83=E6=95=B4=EF=BC=8C=E8=A7=A3=E5=86=B3?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E6=9C=89=E9=99=90=E4=B8=8D=E7=94=9F=E6=95=88?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/gateway/rule/MetadataAwareRule.java | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/pigx-common/pigx-common-gateway/src/main/java/com/pig4cloud/pigx/common/gateway/rule/MetadataAwareRule.java b/pigx-common/pigx-common-gateway/src/main/java/com/pig4cloud/pigx/common/gateway/rule/MetadataAwareRule.java index 786282d51..8f9190cfd 100755 --- a/pigx-common/pigx-common-gateway/src/main/java/com/pig4cloud/pigx/common/gateway/rule/MetadataAwareRule.java +++ b/pigx-common/pigx-common-gateway/src/main/java/com/pig4cloud/pigx/common/gateway/rule/MetadataAwareRule.java @@ -64,17 +64,16 @@ public class MetadataAwareRule extends DiscoveryEnabledRule { List priorServerList = new ArrayList<>(); for (Server server : serverList) { String host = server.getHost(); - // 2. 优先的 ip 服务 - if (hasPriorIpPattern && PatternMatchUtils.simpleMatch(priorIpPatterns, host)) { - log.debug("路由匹配 {},优先路由", priorIpPatterns); - priorServerList.add(server); - } - - // 3. 优先本地 ip 的服务 - if (ObjectUtil.equal(hostIp, host)) { - log.debug("路由匹配本地IP,优先路由", hostIp); + // 2. 优先本地 ip 的服务 + if (!hasPriorIpPattern && ObjectUtil.equal(hostIp, host)) { + log.debug("{} 不存在优先配置,本地路由条件", hostIp); return Collections.singletonList(server); } + // 3. 优先的 ip 服务 + if (hasPriorIpPattern && PatternMatchUtils.simpleMatch(priorIpPatterns, host)) { + log.debug("{} 存在优先配置,ribbon 强制路由", priorIpPatterns); + priorServerList.add(server); + } } // 4. 如果优先的有数据直接返回