diff --git a/fizz-core/src/main/java/we/plugin/auth/GatewayGroupService.java b/fizz-core/src/main/java/we/plugin/auth/GatewayGroupService.java index f3a0fb6..751bf7c 100644 --- a/fizz-core/src/main/java/we/plugin/auth/GatewayGroupService.java +++ b/fizz-core/src/main/java/we/plugin/auth/GatewayGroupService.java @@ -24,6 +24,7 @@ import org.springframework.data.redis.core.ReactiveStringRedisTemplate; import org.springframework.stereotype.Service; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; +import we.FizzAppContext; import we.config.AggregateRedisConfig; import we.flume.clients.log4j2appender.LogService; import we.util.Consts; @@ -165,8 +166,7 @@ public class GatewayGroupService { return Mono.just(ReactorUtils.EMPTY_THROWABLE); } - private void updateGatewayGroupMap(GatewayGroup gg, Map gatewayGroupMap, - Set currentGatewayGroupSet) { + private void updateGatewayGroupMap(GatewayGroup gg, Map gatewayGroupMap, Set currentGatewayGroupSet) { if (gg.isDeleted == GatewayGroup.DELETED) { GatewayGroup r = gatewayGroupMap.remove(gg.group); log.info("remove " + r); @@ -182,8 +182,7 @@ public class GatewayGroupService { updateCurrentGatewayGroupSet(currentGatewayGroupSet, gatewayGroupMap); } - private void updateCurrentGatewayGroupSet(Set currentGatewayGroupSet, Map gatewayGroupMap) { + private void updateCurrentGatewayGroupSet(Set currentGatewayGroupSet, Map gatewayGroupMap) { Set ips = NetworkUtils.getServerIps(); String applicationName = environment.getProperty("spring.application.name"); currentGatewayGroupSet.clear(); @@ -199,6 +198,7 @@ public class GatewayGroupService { if (currentGatewayGroupSet.isEmpty()) { currentGatewayGroupSet.add(GatewayGroup.DEFAULT); } + // publish event } public boolean currentGatewayGroupIn(Set gatewayGroups) { diff --git a/fizz-core/src/main/java/we/plugin/stat/StatPluginFilter.java b/fizz-core/src/main/java/we/plugin/stat/StatPluginFilter.java index 6384a9d..dbbdcfb 100644 --- a/fizz-core/src/main/java/we/plugin/stat/StatPluginFilter.java +++ b/fizz-core/src/main/java/we/plugin/stat/StatPluginFilter.java @@ -71,6 +71,7 @@ public class StatPluginFilter extends PluginFilter { @Resource private GatewayGroupService gatewayGroupService; + /* private String currentGatewayGroups; @PostConstruct @@ -84,6 +85,7 @@ public class StatPluginFilter extends PluginFilter { } } } + */ @Override public Mono doFilter(ServerWebExchange exchange, Map config, String fixedConfig) { @@ -92,7 +94,7 @@ public class StatPluginFilter extends PluginFilter { StringBuilder b = ThreadContext.getStringBuilder(); b.append(Consts.S.LEFT_BRACE); b.append(ip); toJsonStringValue(b, WebUtils.getOriginIp(exchange)); b.append(Consts.S.COMMA); - b.append(gatewayGroup); toJsonStringValue(b, currentGatewayGroups); b.append(Consts.S.COMMA); + b.append(gatewayGroup); toJsonStringValue(b, currentGatewayGroups()); b.append(Consts.S.COMMA); b.append(service); toJsonStringValue(b, WebUtils.getClientService(exchange)); b.append(Consts.S.COMMA); String appId = WebUtils.getAppId(exchange); @@ -115,6 +117,23 @@ public class StatPluginFilter extends PluginFilter { return WebUtils.transmitSuccessFilterResultAndEmptyMono(exchange, STAT_PLUGIN_FILTER, null); } + private String currentGatewayGroups() { + int sz = gatewayGroupService.currentGatewayGroupSet.size(); + if (sz == 1) { + return gatewayGroupService.currentGatewayGroupSet.iterator().next(); + } + StringBuilder b = ThreadContext.getStringBuilder(); + byte i = 0; + for (String g : gatewayGroupService.currentGatewayGroupSet) { + b.append(g); + i++; + if (i < sz) { + b.append(Consts.S.COMMA); + } + } + return b.toString(); + } + private static void toJsonStringValue(StringBuilder b, String value) { b.append(Consts.S.DOUBLE_QUOTE).append(value).append(Consts.S.DOUBLE_QUOTE); }