fundplatform/logs/fund-gateway.log
zhangjf 8e4afcd1a5 feat: TenantAwareLoadBalancer 整合 TenantRoutingProperties 配置
问题:TenantRoutingProperties 定义了配置但未被使用

解决方案:
1. TenantAwareLoadBalancer 注入 TenantRoutingProperties
   - 使用配置的 tenantHeader 名称
   - 使用配置的 buildTenantGroup 方法
   - 使用配置的 isSharedService 判断
   - 使用配置的 isFallbackToShared 策略

2. 新增功能
   - 支持 enabled=false 禁用租户路由
   - 共享服务跳过租户过滤
   - 可配置是否回退到共享实例

3. 更新测试适配新构造函数
2026-02-19 21:02:25 +08:00

174 lines
43 KiB
Plaintext

17:24:34,427 |-INFO in ch.qos.logback.core.joran.spi.ConfigurationWatchList@1f2f9244 - URL [jar:nested:/home/along/MyCode/wanjiabuluo/fundplatform/fund-gateway/target/fund-gateway-0.0.1-SNAPSHOT.jar/!BOOT-INF/classes/!/logback-spring.xml] is not of type file
17:24:34,605 |-INFO in ch.qos.logback.classic.model.processor.ConfigurationModelHandlerFull - Registering a new ReconfigureOnChangeTask ReconfigureOnChangeTask(born:1771493074603)
17:24:34,607 |-INFO in ch.qos.logback.classic.model.processor.ConfigurationModelHandlerFull - Will scan for changes in [jar:nested:/home/along/MyCode/wanjiabuluo/fundplatform/fund-gateway/target/fund-gateway-0.0.1-SNAPSHOT.jar/!BOOT-INF/classes/!/logback-spring.xml]
17:24:34,607 |-INFO in ch.qos.logback.classic.model.processor.ConfigurationModelHandlerFull - Setting ReconfigureOnChangeTask scanning period to 1 minutes
17:24:34,619 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - Processing appender named [CONSOLE]
17:24:34,619 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - About to instantiate appender of type [ch.qos.logback.core.ConsoleAppender]
17:24:34,629 |-INFO in ch.qos.logback.core.model.processor.ImplicitModelHandler - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property
17:24:34,672 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - Processing appender named [FILE_INFO]
17:24:34,672 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - About to instantiate appender of type [ch.qos.logback.core.rolling.RollingFileAppender]
17:24:34,678 |-INFO in ch.qos.logback.core.model.processor.ImplicitModelHandler - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property
17:24:34,711 |-INFO in c.q.l.core.rolling.TimeBasedRollingPolicy@1280124872 - No compression will be used
17:24:34,715 |-INFO in c.q.l.core.rolling.TimeBasedRollingPolicy@1280124872 - Will use the pattern ./logs/fund-gateway/info-%d{yyyy-MM-dd}.%i.log for the active file
17:24:34,780 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@6821ea29 - The date pattern is 'yyyy-MM-dd' from file name pattern './logs/fund-gateway/info-%d{yyyy-MM-dd}.%i.log'.
17:24:34,780 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@6821ea29 - Roll-over at midnight.
17:24:34,806 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@6821ea29 - Setting initial period to 2026-02-18T08:55:16.338Z
17:24:34,809 |-WARN in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@6821ea29 - SizeAndTimeBasedFNATP is deprecated. Use SizeAndTimeBasedRollingPolicy instead
17:24:34,809 |-WARN in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@6821ea29 - For more information see http://logback.qos.ch/manual/appenders.html#SizeAndTimeBasedRollingPolicy
17:24:34,824 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[FILE_INFO] - Active log file name: ./logs/fund-gateway/info.log
17:24:34,824 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[FILE_INFO] - File property is set to [./logs/fund-gateway/info.log]
17:24:34,826 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - Processing appender named [FILE_ERROR]
17:24:34,826 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - About to instantiate appender of type [ch.qos.logback.core.rolling.RollingFileAppender]
17:24:34,826 |-INFO in ch.qos.logback.core.model.processor.ImplicitModelHandler - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property
17:24:34,829 |-INFO in c.q.l.core.rolling.TimeBasedRollingPolicy@864326906 - No compression will be used
17:24:34,829 |-INFO in c.q.l.core.rolling.TimeBasedRollingPolicy@864326906 - Will use the pattern ./logs/fund-gateway/error-%d{yyyy-MM-dd}.%i.log for the active file
17:24:34,830 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@505a9d7c - The date pattern is 'yyyy-MM-dd' from file name pattern './logs/fund-gateway/error-%d{yyyy-MM-dd}.%i.log'.
17:24:34,830 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@505a9d7c - Roll-over at midnight.
17:24:34,830 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@505a9d7c - Setting initial period to 2026-02-18T04:53:21.985Z
17:24:34,831 |-WARN in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@505a9d7c - SizeAndTimeBasedFNATP is deprecated. Use SizeAndTimeBasedRollingPolicy instead
17:24:34,831 |-WARN in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@505a9d7c - For more information see http://logback.qos.ch/manual/appenders.html#SizeAndTimeBasedRollingPolicy
17:24:34,832 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[FILE_ERROR] - Active log file name: ./logs/fund-gateway/error.log
17:24:34,832 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[FILE_ERROR] - File property is set to [./logs/fund-gateway/error.log]
17:24:34,833 |-WARN in ch.qos.logback.core.model.processor.AppenderModelHandler - Appender named [JSON_FILE] not referenced. Skipping further processing.
17:24:34,833 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - Processing appender named [FILE_AOP]
17:24:34,833 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - About to instantiate appender of type [ch.qos.logback.core.rolling.RollingFileAppender]
17:24:34,833 |-INFO in ch.qos.logback.core.model.processor.ImplicitModelHandler - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property
17:24:34,836 |-INFO in c.q.l.core.rolling.TimeBasedRollingPolicy@1972143064 - No compression will be used
17:24:34,836 |-INFO in c.q.l.core.rolling.TimeBasedRollingPolicy@1972143064 - Will use the pattern ./logs/fund-gateway/aop-%d{yyyy-MM-dd}.%i.log for the active file
17:24:34,837 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@129b4fe2 - The date pattern is 'yyyy-MM-dd' from file name pattern './logs/fund-gateway/aop-%d{yyyy-MM-dd}.%i.log'.
17:24:34,837 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@129b4fe2 - Roll-over at midnight.
17:24:34,838 |-INFO in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@129b4fe2 - Setting initial period to 2026-02-18T08:55:16.339Z
17:24:34,838 |-WARN in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@129b4fe2 - SizeAndTimeBasedFNATP is deprecated. Use SizeAndTimeBasedRollingPolicy instead
17:24:34,838 |-WARN in ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP@129b4fe2 - For more information see http://logback.qos.ch/manual/appenders.html#SizeAndTimeBasedRollingPolicy
17:24:34,839 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[FILE_AOP] - Active log file name: ./logs/fund-gateway/aop.log
17:24:34,839 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[FILE_AOP] - File property is set to [./logs/fund-gateway/aop.log]
17:24:34,840 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting level of logger [API_LOG] to INFO
17:24:34,840 |-INFO in ch.qos.logback.classic.jul.LevelChangePropagator@5af3a0f - Propagating INFO level on Logger[API_LOG] onto the JUL framework
17:24:34,848 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting additivity of logger [API_LOG] to false
17:24:34,849 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [FILE_AOP] to Logger[API_LOG]
17:24:34,849 |-INFO in ch.qos.logback.classic.model.processor.RootLoggerModelHandler - Setting level of ROOT logger to INFO
17:24:34,849 |-INFO in ch.qos.logback.classic.jul.LevelChangePropagator@5af3a0f - Propagating INFO level on Logger[ROOT] onto the JUL framework
17:24:34,849 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [CONSOLE] to Logger[ROOT]
17:24:34,849 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [FILE_INFO] to Logger[ROOT]
17:24:34,849 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [FILE_ERROR] to Logger[ROOT]
17:24:34,849 |-INFO in ch.qos.logback.core.model.processor.DefaultProcessor@19ae6bb - End of configuration.
17:24:34,850 |-INFO in org.springframework.boot.logging.logback.SpringBootJoranConfigurator@10993713 - Registering current configuration as safe fallback point
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v3.2.0)
2026-02-19 17:24:35.003 [background-preinit] [] INFO org.hibernate.validator.internal.util.Version - HV000001: Hibernate Validator 8.0.1.Final
2026-02-19 17:24:35.123 [main] [] INFO com.fundplatform.gateway.GatewayApplication - Starting GatewayApplication v0.0.1-SNAPSHOT using Java 21 with PID 101722 (/home/along/MyCode/wanjiabuluo/fundplatform/fund-gateway/target/fund-gateway-0.0.1-SNAPSHOT.jar started by along in /home/along/MyCode/wanjiabuluo/fundplatform)
2026-02-19 17:24:35.125 [main] [] INFO com.fundplatform.gateway.GatewayApplication - No active profile set, falling back to 1 default profile: "default"
2026-02-19 17:24:37.012 [main] [] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode
2026-02-19 17:24:37.018 [main] [] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data Redis repositories in DEFAULT mode.
2026-02-19 17:24:37.083 [main] [] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 33 ms. Found 0 Redis repository interfaces.
2026-02-19 17:24:37.527 [main] [] INFO o.springframework.cloud.context.scope.GenericScope - BeanFactory id=930e75f9-1da3-3702-8bfd-279509248342
2026-02-19 17:24:38.012 [main] [] WARN o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.cloud.client.loadbalancer.LoadBalancerAutoConfiguration$LoadBalancerInterceptorConfig' of type [org.springframework.cloud.client.loadbalancer.LoadBalancerAutoConfiguration$LoadBalancerInterceptorConfig] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). The currently created BeanPostProcessor [lbRestClientPostProcessor] is declared through a non-static factory method on that class; consider declaring it as static instead.
2026-02-19 17:24:38.016 [main] [] WARN o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.cloud.loadbalancer.config.BlockingLoadBalancerClientAutoConfiguration' of type [org.springframework.cloud.loadbalancer.config.BlockingLoadBalancerClientAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected into a currently created BeanPostProcessor [lbRestClientPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies.
2026-02-19 17:24:38.020 [main] [] WARN o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.cloud.loadbalancer.config.LoadBalancerAutoConfiguration' of type [org.springframework.cloud.loadbalancer.config.LoadBalancerAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected into a currently created BeanPostProcessor [lbRestClientPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies.
2026-02-19 17:24:38.040 [main] [] WARN o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.cloud.commons.config.CommonsConfigAutoConfiguration' of type [org.springframework.cloud.commons.config.CommonsConfigAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected into a currently created BeanPostProcessor [lbRestClientPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies.
2026-02-19 17:24:38.047 [main] [] WARN o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.cloud.client.loadbalancer.LoadBalancerDefaultMappingsProviderAutoConfiguration' of type [org.springframework.cloud.client.loadbalancer.LoadBalancerDefaultMappingsProviderAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected into a currently created BeanPostProcessor [lbRestClientPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies.
2026-02-19 17:24:38.048 [main] [] WARN o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'loadBalancerClientsDefaultsMappingsProvider' of type [org.springframework.cloud.client.loadbalancer.LoadBalancerDefaultMappingsProviderAutoConfiguration$$Lambda/0x00007fa12c41e3a0] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected into a currently created BeanPostProcessor [lbRestClientPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies.
2026-02-19 17:24:38.053 [main] [] WARN o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'defaultsBindHandlerAdvisor' of type [org.springframework.cloud.commons.config.DefaultsBindHandlerAdvisor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected into a currently created BeanPostProcessor [lbRestClientPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies.
2026-02-19 17:24:38.076 [main] [] WARN o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'spring.cloud.loadbalancer-org.springframework.cloud.client.loadbalancer.LoadBalancerClientsProperties' of type [org.springframework.cloud.client.loadbalancer.LoadBalancerClientsProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected into a currently created BeanPostProcessor [lbRestClientPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies.
2026-02-19 17:24:38.089 [main] [] WARN o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'default.org.springframework.cloud.loadbalancer.config.LoadBalancerAutoConfiguration.LoadBalancerClientSpecification' of type [org.springframework.cloud.loadbalancer.annotation.LoadBalancerClientSpecification] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected into a currently created BeanPostProcessor [lbRestClientPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies.
2026-02-19 17:24:38.093 [main] [] WARN o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'default.org.springframework.cloud.loadbalancer.config.BlockingLoadBalancerClientAutoConfiguration.LoadBalancerClientSpecification' of type [org.springframework.cloud.loadbalancer.annotation.LoadBalancerClientSpecification] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected into a currently created BeanPostProcessor [lbRestClientPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies.
2026-02-19 17:24:38.095 [main] [] WARN o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'loadBalancerClientFactory' of type [org.springframework.cloud.loadbalancer.support.LoadBalancerClientFactory] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected into a currently created BeanPostProcessor [lbRestClientPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies.
2026-02-19 17:24:38.107 [main] [] WARN o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'blockingLoadBalancerClient' of type [org.springframework.cloud.loadbalancer.blocking.client.BlockingLoadBalancerClient] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected into a currently created BeanPostProcessor [lbRestClientPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies.
2026-02-19 17:24:38.133 [main] [] WARN o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'loadBalancerServiceInstanceCookieTransformer' of type [org.springframework.cloud.loadbalancer.core.LoadBalancerServiceInstanceCookieTransformer] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected into a currently created BeanPostProcessor [lbRestClientPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies.
2026-02-19 17:24:38.137 [main] [] WARN o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'xForwarderHeadersTransformer' of type [org.springframework.cloud.loadbalancer.blocking.XForwardedHeadersTransformer] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected into a currently created BeanPostProcessor [lbRestClientPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies.
2026-02-19 17:24:38.140 [main] [] WARN o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.cloud.client.loadbalancer.LoadBalancerAutoConfiguration' of type [org.springframework.cloud.client.loadbalancer.LoadBalancerAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected into a currently created BeanPostProcessor [lbRestClientPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies.
2026-02-19 17:24:38.145 [main] [] WARN o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'loadBalancerRequestFactory' of type [org.springframework.cloud.client.loadbalancer.LoadBalancerRequestFactory] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected into a currently created BeanPostProcessor [lbRestClientPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies.
2026-02-19 17:24:38.148 [main] [] WARN o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'loadBalancerInterceptor' of type [org.springframework.cloud.client.loadbalancer.LoadBalancerInterceptor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected into a currently created BeanPostProcessor [lbRestClientPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies.
2026-02-19 17:24:38.153 [main] [] WARN o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.cloud.client.loadbalancer.reactive.LoadBalancerBeanPostProcessorAutoConfiguration' of type [org.springframework.cloud.client.loadbalancer.reactive.LoadBalancerBeanPostProcessorAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). The currently created BeanPostProcessor [loadBalancerWebClientBuilderBeanPostProcessor] is declared through a non-static factory method on that class; consider declaring it as static instead.
2026-02-19 17:24:38.157 [main] [] WARN o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.cloud.client.loadbalancer.reactive.LoadBalancerBeanPostProcessorAutoConfiguration$ReactorDeferringLoadBalancerFilterConfig' of type [org.springframework.cloud.client.loadbalancer.reactive.LoadBalancerBeanPostProcessorAutoConfiguration$ReactorDeferringLoadBalancerFilterConfig] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected into a currently created BeanPostProcessor [loadBalancerWebClientBuilderBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies.
2026-02-19 17:24:38.162 [main] [] WARN o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'reactorDeferringLoadBalancerExchangeFilterFunction' of type [org.springframework.cloud.client.loadbalancer.reactive.DeferringLoadBalancerExchangeFilterFunction] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected into a currently created BeanPostProcessor [loadBalancerWebClientBuilderBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies.
2026-02-19 17:24:40.604 [main] [] DEBUG o.s.cloud.gateway.config.GatewayProperties - Routes supplied from Gateway Properties: [RouteDefinition{id='fund-sys', predicates=[PredicateDefinition{name='Path', args={_genkey_0=/sys/**}}], filters=[FilterDefinition{name='StripPrefix', args={_genkey_0=1}}], uri=http://localhost:8100, order=0, metadata={}}, RouteDefinition{id='fund-cust', predicates=[PredicateDefinition{name='Path', args={_genkey_0=/cust/**}}], filters=[FilterDefinition{name='StripPrefix', args={_genkey_0=1}}], uri=http://localhost:8200, order=0, metadata={}}, RouteDefinition{id='fund-proj', predicates=[PredicateDefinition{name='Path', args={_genkey_0=/proj/**}}], filters=[FilterDefinition{name='StripPrefix', args={_genkey_0=1}}], uri=http://localhost:8120, order=0, metadata={}}, RouteDefinition{id='fund-req', predicates=[PredicateDefinition{name='Path', args={_genkey_0=/req/**}}], filters=[FilterDefinition{name='StripPrefix', args={_genkey_0=1}}], uri=http://localhost:8800, order=0, metadata={}}, RouteDefinition{id='fund-exp', predicates=[PredicateDefinition{name='Path', args={_genkey_0=/exp/**}}], filters=[FilterDefinition{name='StripPrefix', args={_genkey_0=1}}], uri=http://localhost:8140, order=0, metadata={}}, RouteDefinition{id='fund-receipt', predicates=[PredicateDefinition{name='Path', args={_genkey_0=/receipt/**}}], filters=[FilterDefinition{name='StripPrefix', args={_genkey_0=1}}], uri=http://localhost:8150, order=0, metadata={}}, RouteDefinition{id='fund-report', predicates=[PredicateDefinition{name='Path', args={_genkey_0=/report/**}}], filters=[FilterDefinition{name='StripPrefix', args={_genkey_0=1}}], uri=http://localhost:8700, order=0, metadata={}}, RouteDefinition{id='fund-file', predicates=[PredicateDefinition{name='Path', args={_genkey_0=/file/**}}], filters=[FilterDefinition{name='StripPrefix', args={_genkey_0=1}}], uri=http://localhost:8600, order=0, metadata={}}]
2026-02-19 17:24:40.971 [main] [] INFO o.s.c.gateway.route.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [After]
2026-02-19 17:24:40.971 [main] [] INFO o.s.c.gateway.route.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [Before]
2026-02-19 17:24:40.971 [main] [] INFO o.s.c.gateway.route.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [Between]
2026-02-19 17:24:40.971 [main] [] INFO o.s.c.gateway.route.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [Cookie]
2026-02-19 17:24:40.972 [main] [] INFO o.s.c.gateway.route.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [Header]
2026-02-19 17:24:40.972 [main] [] INFO o.s.c.gateway.route.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [Host]
2026-02-19 17:24:40.972 [main] [] INFO o.s.c.gateway.route.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [Method]
2026-02-19 17:24:40.972 [main] [] INFO o.s.c.gateway.route.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [Path]
2026-02-19 17:24:40.972 [main] [] INFO o.s.c.gateway.route.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [Query]
2026-02-19 17:24:40.972 [main] [] INFO o.s.c.gateway.route.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [ReadBody]
2026-02-19 17:24:40.973 [main] [] INFO o.s.c.gateway.route.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [RemoteAddr]
2026-02-19 17:24:40.973 [main] [] INFO o.s.c.gateway.route.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [XForwardedRemoteAddr]
2026-02-19 17:24:40.973 [main] [] INFO o.s.c.gateway.route.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [Weight]
2026-02-19 17:24:40.973 [main] [] INFO o.s.c.gateway.route.RouteDefinitionRouteLocator - Loaded RoutePredicateFactory [CloudFoundryRouteService]
2026-02-19 17:24:41.014 [main] [] INFO c.a.c.s.gateway.scg.SentinelSCGAutoConfiguration - [Sentinel SpringCloudGateway] register SentinelGatewayFilter with order: -2147483648
2026-02-19 17:24:41.367 [main] [] INFO c.a.c.s.gateway.scg.SentinelSCGAutoConfiguration - [Sentinel SpringCloudGateway] register SentinelGatewayBlockExceptionHandler
INFO: Sentinel log output type is: file
INFO: Sentinel log charset is: utf-8
INFO: Sentinel log base directory is: /home/along/logs/csp/
INFO: Sentinel log name use pid is: false
INFO: Sentinel log level is: INFO
2026-02-19 17:24:42.034 [main] [] WARN o.s.c.l.c.LoadBalancerCacheAutoConfiguration$LoadBalancerCaffeineWarnLogger - Spring Cloud LoadBalancer is currently working with the default cache. While this cache implementation is useful for development and tests, it's recommended to use Caffeine cache in production.You can switch to using Caffeine cache, by adding it and org.springframework.cache.caffeine.CaffeineCacheManager to the classpath.
2026-02-19 17:24:42.265 [main] [] INFO o.s.boot.web.embedded.netty.NettyWebServer - Netty started on port 8000
2026-02-19 17:24:42.371 [main] [] DEBUG o.s.c.gateway.route.RouteDefinitionRouteLocator - RouteDefinition fund-sys applying {_genkey_0=/sys/**} to Path
2026-02-19 17:24:42.425 [main] [] DEBUG o.s.c.gateway.route.RouteDefinitionRouteLocator - RouteDefinition fund-sys applying filter {redis-rate-limiter.replenishRate=100, redis-rate-limiter.burstCapacity=200, key-resolver=#{@ipKeyResolver}} to RequestRateLimiter
2026-02-19 17:24:42.516 [main] [] DEBUG o.s.c.gateway.route.RouteDefinitionRouteLocator - RouteDefinition fund-sys applying filter {_genkey_0=1} to StripPrefix
2026-02-19 17:24:42.524 [main] [] DEBUG o.s.c.gateway.route.RouteDefinitionRouteLocator - RouteDefinition matched: fund-sys
2026-02-19 17:24:42.525 [main] [] DEBUG o.s.c.gateway.route.RouteDefinitionRouteLocator - RouteDefinition fund-cust applying {_genkey_0=/cust/**} to Path
2026-02-19 17:24:42.528 [main] [] DEBUG o.s.c.gateway.route.RouteDefinitionRouteLocator - RouteDefinition fund-cust applying filter {redis-rate-limiter.replenishRate=100, redis-rate-limiter.burstCapacity=200, key-resolver=#{@ipKeyResolver}} to RequestRateLimiter
2026-02-19 17:24:42.533 [main] [] DEBUG o.s.c.gateway.route.RouteDefinitionRouteLocator - RouteDefinition fund-cust applying filter {_genkey_0=1} to StripPrefix
2026-02-19 17:24:42.536 [main] [] DEBUG o.s.c.gateway.route.RouteDefinitionRouteLocator - RouteDefinition matched: fund-cust
2026-02-19 17:24:42.537 [main] [] DEBUG o.s.c.gateway.route.RouteDefinitionRouteLocator - RouteDefinition fund-proj applying {_genkey_0=/proj/**} to Path
2026-02-19 17:24:42.539 [main] [] DEBUG o.s.c.gateway.route.RouteDefinitionRouteLocator - RouteDefinition fund-proj applying filter {redis-rate-limiter.replenishRate=100, redis-rate-limiter.burstCapacity=200, key-resolver=#{@ipKeyResolver}} to RequestRateLimiter
2026-02-19 17:24:42.546 [main] [] DEBUG o.s.c.gateway.route.RouteDefinitionRouteLocator - RouteDefinition fund-proj applying filter {_genkey_0=1} to StripPrefix
2026-02-19 17:24:42.549 [main] [] DEBUG o.s.c.gateway.route.RouteDefinitionRouteLocator - RouteDefinition matched: fund-proj
2026-02-19 17:24:42.549 [main] [] DEBUG o.s.c.gateway.route.RouteDefinitionRouteLocator - RouteDefinition fund-req applying {_genkey_0=/req/**} to Path
2026-02-19 17:24:42.551 [main] [] DEBUG o.s.c.gateway.route.RouteDefinitionRouteLocator - RouteDefinition fund-req applying filter {redis-rate-limiter.replenishRate=100, redis-rate-limiter.burstCapacity=200, key-resolver=#{@ipKeyResolver}} to RequestRateLimiter
2026-02-19 17:24:42.557 [main] [] DEBUG o.s.c.gateway.route.RouteDefinitionRouteLocator - RouteDefinition fund-req applying filter {_genkey_0=1} to StripPrefix
2026-02-19 17:24:42.560 [main] [] DEBUG o.s.c.gateway.route.RouteDefinitionRouteLocator - RouteDefinition matched: fund-req
2026-02-19 17:24:42.561 [main] [] DEBUG o.s.c.gateway.route.RouteDefinitionRouteLocator - RouteDefinition fund-exp applying {_genkey_0=/exp/**} to Path
2026-02-19 17:24:42.563 [main] [] DEBUG o.s.c.gateway.route.RouteDefinitionRouteLocator - RouteDefinition fund-exp applying filter {redis-rate-limiter.replenishRate=100, redis-rate-limiter.burstCapacity=200, key-resolver=#{@ipKeyResolver}} to RequestRateLimiter
2026-02-19 17:24:42.568 [main] [] DEBUG o.s.c.gateway.route.RouteDefinitionRouteLocator - RouteDefinition fund-exp applying filter {_genkey_0=1} to StripPrefix
2026-02-19 17:24:42.570 [main] [] DEBUG o.s.c.gateway.route.RouteDefinitionRouteLocator - RouteDefinition matched: fund-exp
2026-02-19 17:24:42.570 [main] [] DEBUG o.s.c.gateway.route.RouteDefinitionRouteLocator - RouteDefinition fund-receipt applying {_genkey_0=/receipt/**} to Path
2026-02-19 17:24:42.573 [main] [] DEBUG o.s.c.gateway.route.RouteDefinitionRouteLocator - RouteDefinition fund-receipt applying filter {redis-rate-limiter.replenishRate=100, redis-rate-limiter.burstCapacity=200, key-resolver=#{@ipKeyResolver}} to RequestRateLimiter
2026-02-19 17:24:42.579 [main] [] DEBUG o.s.c.gateway.route.RouteDefinitionRouteLocator - RouteDefinition fund-receipt applying filter {_genkey_0=1} to StripPrefix
2026-02-19 17:24:42.582 [main] [] DEBUG o.s.c.gateway.route.RouteDefinitionRouteLocator - RouteDefinition matched: fund-receipt
2026-02-19 17:24:42.582 [main] [] DEBUG o.s.c.gateway.route.RouteDefinitionRouteLocator - RouteDefinition fund-report applying {_genkey_0=/report/**} to Path
2026-02-19 17:24:42.584 [main] [] DEBUG o.s.c.gateway.route.RouteDefinitionRouteLocator - RouteDefinition fund-report applying filter {redis-rate-limiter.replenishRate=100, redis-rate-limiter.burstCapacity=200, key-resolver=#{@ipKeyResolver}} to RequestRateLimiter
2026-02-19 17:24:42.589 [main] [] DEBUG o.s.c.gateway.route.RouteDefinitionRouteLocator - RouteDefinition fund-report applying filter {_genkey_0=1} to StripPrefix
2026-02-19 17:24:42.591 [main] [] DEBUG o.s.c.gateway.route.RouteDefinitionRouteLocator - RouteDefinition matched: fund-report
2026-02-19 17:24:42.591 [main] [] DEBUG o.s.c.gateway.route.RouteDefinitionRouteLocator - RouteDefinition fund-file applying {_genkey_0=/file/**} to Path
2026-02-19 17:24:42.594 [main] [] DEBUG o.s.c.gateway.route.RouteDefinitionRouteLocator - RouteDefinition fund-file applying filter {redis-rate-limiter.replenishRate=100, redis-rate-limiter.burstCapacity=200, key-resolver=#{@ipKeyResolver}} to RequestRateLimiter
2026-02-19 17:24:42.600 [main] [] DEBUG o.s.c.gateway.route.RouteDefinitionRouteLocator - RouteDefinition fund-file applying filter {_genkey_0=1} to StripPrefix
2026-02-19 17:24:42.602 [main] [] DEBUG o.s.c.gateway.route.RouteDefinitionRouteLocator - RouteDefinition matched: fund-file
2026-02-19 17:24:42.632 [main] [] INFO com.fundplatform.gateway.GatewayApplication - Started GatewayApplication in 8.959 seconds (process running for 9.983)
2026-02-19 17:40:24.118 [reactor-http-epoll-2] [] DEBUG o.s.c.gateway.handler.RoutePredicateHandlerMapping - Route matched: fund-sys
2026-02-19 17:40:24.123 [reactor-http-epoll-2] [] DEBUG o.s.c.gateway.handler.RoutePredicateHandlerMapping - Mapping [Exchange: GET http://localhost:8000/sys/api/v1/sys/health] to Route{id='fund-sys', uri=http://localhost:8100, order=0, predicate=Paths: [/sys/**], match trailing slash: true, gatewayFilters=[[org.springframework.cloud.gateway.filter.factory.RequestRateLimiterGatewayFilterFactory$$Lambda/0x00007fa12c682230@6bbf9b9, order = 1], [[StripPrefix parts = 1], order = 1]], metadata={}}
2026-02-19 17:40:24.124 [reactor-http-epoll-2] [] DEBUG o.s.c.gateway.handler.RoutePredicateHandlerMapping - [0dcdce11-1] Mapped to org.springframework.cloud.gateway.handler.FilteringWebHandler@4a1b9861
2026-02-19 17:40:24.125 [reactor-http-epoll-2] [] DEBUG o.s.cloud.gateway.handler.FilteringWebHandler - Sorted gatewayFilterFactories: [[GatewayFilterAdapter{delegate=com.fundplatform.gateway.filter.GlobalLogFilter@19d27c27}, order = -2147483648], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.RemoveCachedBodyFilter@410382cb}, order = -2147483648], [GatewayFilterAdapter{delegate=com.alibaba.csp.sentinel.adapter.gateway.sc.SentinelGatewayFilter@370a8b6e}, order = -2147483648], [GatewayFilterAdapter{delegate=com.fundplatform.gateway.filter.JwtAuthFilter@7d537616}, order = -2147483647], [GatewayFilterAdapter{delegate=com.fundplatform.gateway.filter.TenantGatewayFilter@6181bc4a}, order = -2147483646], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.AdaptCachedBodyGlobalFilter@2299d903}, order = -2147482648], [GatewayFilterAdapter{delegate=com.fundplatform.gateway.filter.ApiLogFilter@604c7e9b}, order = -100], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.NettyWriteResponseFilter@628962e5}, order = -1], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.ForwardPathFilter@29f3185c}, order = 0], [org.springframework.cloud.gateway.filter.factory.RequestRateLimiterGatewayFilterFactory$$Lambda/0x00007fa12c682230@6bbf9b9, order = 1], [[StripPrefix parts = 1], order = 1], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.RouteToRequestUrlFilter@399f5daf}, order = 10000], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.ReactiveLoadBalancerClientFilter@70485aa}, order = 10150], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.LoadBalancerServiceInstanceCookieFilter@4bf8b77}, order = 10151], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.WebsocketRoutingFilter@74bbc273}, order = 2147483646], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.NettyRoutingFilter@e06ec83}, order = 2147483647], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.ForwardRoutingFilter@c4cceb}, order = 2147483647]]
2026-02-19 17:40:24.135 [reactor-http-epoll-2] [] INFO com.fundplatform.gateway.filter.GlobalLogFilter - [5fdf3f751b8f4139a78e8a2dc6b2e73b] Request: GET /sys/api/v1/sys/health from 0:0:0:0:0:0:0:1%0
2026-02-19 17:40:24.152 [reactor-http-epoll-2] [] WARN c.fundplatform.gateway.filter.TenantGatewayFilter - 缺少 Token: /sys/api/v1/sys/health
2026-02-19 17:40:24.766 [lettuce-epollEventLoop-5-1] [] DEBUG o.s.c.gateway.filter.ratelimit.RedisRateLimiter - response: Response{allowed=true, headers={X-RateLimit-Remaining=199, X-RateLimit-Requested-Tokens=1, X-RateLimit-Burst-Capacity=200, X-RateLimit-Replenish-Rate=100}, tokensRemaining=-1}
2026-02-19 17:40:25.205 [reactor-http-epoll-2] [] INFO com.fundplatform.gateway.filter.GlobalLogFilter - [5fdf3f751b8f4139a78e8a2dc6b2e73b] Response: GET /sys/api/v1/sys/health - 200 (1079ms)
2026-02-19 17:40:25.235 [reactor-http-epoll-5] [] DEBUG o.s.c.gateway.handler.RoutePredicateHandlerMapping - Route matched: fund-sys
2026-02-19 17:40:25.236 [reactor-http-epoll-5] [] DEBUG o.s.c.gateway.handler.RoutePredicateHandlerMapping - Mapping [Exchange: GET http://localhost:8000/sys/api/v1/sys/health] to Route{id='fund-sys', uri=http://localhost:8100, order=0, predicate=Paths: [/sys/**], match trailing slash: true, gatewayFilters=[[org.springframework.cloud.gateway.filter.factory.RequestRateLimiterGatewayFilterFactory$$Lambda/0x00007fa12c682230@6bbf9b9, order = 1], [[StripPrefix parts = 1], order = 1]], metadata={}}
2026-02-19 17:40:25.236 [reactor-http-epoll-5] [] DEBUG o.s.c.gateway.handler.RoutePredicateHandlerMapping - [7cc9eec3-2] Mapped to org.springframework.cloud.gateway.handler.FilteringWebHandler@4a1b9861
2026-02-19 17:40:25.236 [reactor-http-epoll-5] [] DEBUG o.s.cloud.gateway.handler.FilteringWebHandler - Sorted gatewayFilterFactories: [[GatewayFilterAdapter{delegate=com.fundplatform.gateway.filter.GlobalLogFilter@19d27c27}, order = -2147483648], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.RemoveCachedBodyFilter@410382cb}, order = -2147483648], [GatewayFilterAdapter{delegate=com.alibaba.csp.sentinel.adapter.gateway.sc.SentinelGatewayFilter@370a8b6e}, order = -2147483648], [GatewayFilterAdapter{delegate=com.fundplatform.gateway.filter.JwtAuthFilter@7d537616}, order = -2147483647], [GatewayFilterAdapter{delegate=com.fundplatform.gateway.filter.TenantGatewayFilter@6181bc4a}, order = -2147483646], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.AdaptCachedBodyGlobalFilter@2299d903}, order = -2147482648], [GatewayFilterAdapter{delegate=com.fundplatform.gateway.filter.ApiLogFilter@604c7e9b}, order = -100], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.NettyWriteResponseFilter@628962e5}, order = -1], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.ForwardPathFilter@29f3185c}, order = 0], [org.springframework.cloud.gateway.filter.factory.RequestRateLimiterGatewayFilterFactory$$Lambda/0x00007fa12c682230@6bbf9b9, order = 1], [[StripPrefix parts = 1], order = 1], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.RouteToRequestUrlFilter@399f5daf}, order = 10000], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.ReactiveLoadBalancerClientFilter@70485aa}, order = 10150], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.LoadBalancerServiceInstanceCookieFilter@4bf8b77}, order = 10151], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.WebsocketRoutingFilter@74bbc273}, order = 2147483646], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.NettyRoutingFilter@e06ec83}, order = 2147483647], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.ForwardRoutingFilter@c4cceb}, order = 2147483647]]
2026-02-19 17:40:25.236 [reactor-http-epoll-5] [] INFO com.fundplatform.gateway.filter.GlobalLogFilter - [2360d1dd8d794149a8e1910f9a7f7129] Request: GET /sys/api/v1/sys/health from 0:0:0:0:0:0:0:1%0
2026-02-19 17:40:25.237 [reactor-http-epoll-5] [] WARN c.fundplatform.gateway.filter.TenantGatewayFilter - 缺少 Token: /sys/api/v1/sys/health
2026-02-19 17:40:25.240 [lettuce-epollEventLoop-5-1] [] DEBUG o.s.c.gateway.filter.ratelimit.RedisRateLimiter - response: Response{allowed=true, headers={X-RateLimit-Remaining=199, X-RateLimit-Requested-Tokens=1, X-RateLimit-Burst-Capacity=200, X-RateLimit-Replenish-Rate=100}, tokensRemaining=-1}
2026-02-19 17:40:25.250 [reactor-http-epoll-5] [] INFO com.fundplatform.gateway.filter.GlobalLogFilter - [2360d1dd8d794149a8e1910f9a7f7129] Response: GET /sys/api/v1/sys/health - 200 (14ms)
2026-02-19 17:40:25.282 [reactor-http-epoll-6] [] DEBUG o.s.c.gateway.handler.RoutePredicateHandlerMapping - Route matched: fund-sys
2026-02-19 17:40:25.283 [reactor-http-epoll-6] [] DEBUG o.s.c.gateway.handler.RoutePredicateHandlerMapping - Mapping [Exchange: GET http://localhost:8000/sys/api/v1/sys/health] to Route{id='fund-sys', uri=http://localhost:8100, order=0, predicate=Paths: [/sys/**], match trailing slash: true, gatewayFilters=[[org.springframework.cloud.gateway.filter.factory.RequestRateLimiterGatewayFilterFactory$$Lambda/0x00007fa12c682230@6bbf9b9, order = 1], [[StripPrefix parts = 1], order = 1]], metadata={}}
2026-02-19 17:40:25.283 [reactor-http-epoll-6] [] DEBUG o.s.c.gateway.handler.RoutePredicateHandlerMapping - [dc97ef5c-3] Mapped to org.springframework.cloud.gateway.handler.FilteringWebHandler@4a1b9861
2026-02-19 17:40:25.283 [reactor-http-epoll-6] [] DEBUG o.s.cloud.gateway.handler.FilteringWebHandler - Sorted gatewayFilterFactories: [[GatewayFilterAdapter{delegate=com.fundplatform.gateway.filter.GlobalLogFilter@19d27c27}, order = -2147483648], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.RemoveCachedBodyFilter@410382cb}, order = -2147483648], [GatewayFilterAdapter{delegate=com.alibaba.csp.sentinel.adapter.gateway.sc.SentinelGatewayFilter@370a8b6e}, order = -2147483648], [GatewayFilterAdapter{delegate=com.fundplatform.gateway.filter.JwtAuthFilter@7d537616}, order = -2147483647], [GatewayFilterAdapter{delegate=com.fundplatform.gateway.filter.TenantGatewayFilter@6181bc4a}, order = -2147483646], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.AdaptCachedBodyGlobalFilter@2299d903}, order = -2147482648], [GatewayFilterAdapter{delegate=com.fundplatform.gateway.filter.ApiLogFilter@604c7e9b}, order = -100], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.NettyWriteResponseFilter@628962e5}, order = -1], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.ForwardPathFilter@29f3185c}, order = 0], [org.springframework.cloud.gateway.filter.factory.RequestRateLimiterGatewayFilterFactory$$Lambda/0x00007fa12c682230@6bbf9b9, order = 1], [[StripPrefix parts = 1], order = 1], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.RouteToRequestUrlFilter@399f5daf}, order = 10000], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.ReactiveLoadBalancerClientFilter@70485aa}, order = 10150], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.LoadBalancerServiceInstanceCookieFilter@4bf8b77}, order = 10151], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.WebsocketRoutingFilter@74bbc273}, order = 2147483646], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.NettyRoutingFilter@e06ec83}, order = 2147483647], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.ForwardRoutingFilter@c4cceb}, order = 2147483647]]
2026-02-19 17:40:25.284 [reactor-http-epoll-6] [] INFO com.fundplatform.gateway.filter.GlobalLogFilter - [db2b78f4cc3a4c60b6be9dba9e09c5d2] Request: GET /sys/api/v1/sys/health from 0:0:0:0:0:0:0:1%0
2026-02-19 17:40:25.284 [reactor-http-epoll-6] [] WARN c.fundplatform.gateway.filter.TenantGatewayFilter - 缺少 Token: /sys/api/v1/sys/health
2026-02-19 17:40:25.288 [lettuce-epollEventLoop-5-1] [] DEBUG o.s.c.gateway.filter.ratelimit.RedisRateLimiter - response: Response{allowed=true, headers={X-RateLimit-Remaining=198, X-RateLimit-Requested-Tokens=1, X-RateLimit-Burst-Capacity=200, X-RateLimit-Replenish-Rate=100}, tokensRemaining=-1}
2026-02-19 17:40:25.298 [reactor-http-epoll-6] [] INFO com.fundplatform.gateway.filter.GlobalLogFilter - [db2b78f4cc3a4c60b6be9dba9e09c5d2] Response: GET /sys/api/v1/sys/health - 200 (14ms)