feat: 完成Nacos配置优化和WebSocket集成
主要更新: 1. 统一所有微服务端口配置(19000-19008) 2. 为所有服务创建本地/测试/生产三套环境配置 3. 配置Nacos认证密码(本地:Peanut2817*#, 测试/生产:EmotionMuseum2025) 4. 优化网关路由配置,支持负载均衡和WebSocket 5. 新增emotion-websocket模块,支持实时聊天 6. 前端集成WebSocket,替代HTTP轮询 7. 添加配置验证和管理工具脚本 技术特性: - 完整的环境隔离和服务发现 - WebSocket实时通信支持 - 负载均衡路由配置 - 跨域和安全配置 - 自动重连和心跳检测
This commit is contained in:
@@ -0,0 +1,93 @@
|
||||
2025-07-16 09:03:40 [main] WARN [com.alibaba.nacos.client.logging.NacosLogging] - Load Logback Configuration of Nacos fail, message: Could not initialize Logback Nacos logging from classpath:nacos-logback.xml
|
||||
|
||||
. ____ _ __ _ _
|
||||
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
|
||||
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
|
||||
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
|
||||
' |____| .__|_| |_|_| |_\__, | / / / /
|
||||
=========|_|==============|___/=/_/_/_/
|
||||
:: Spring Boot :: (v3.0.2)
|
||||
|
||||
2025-07-16 09:03:40 [main] WARN [com.alibaba.nacos.client.logging.NacosLogging] - Load Logback Configuration of Nacos fail, message: Could not initialize Logback Nacos logging from classpath:nacos-logback.xml
|
||||
2025-07-16 09:03:40 [main] INFO [com.emotionmuseum.gateway.GatewayApplication] - Starting GatewayApplication using Java 21.0.7 with PID 20154 (/Users/huazhongmin/peanut/AppleDevelop/EmotionMuseum/backend/emotion-gateway/target/emotion-gateway-1.0.0.jar started by huazhongmin in /Users/huazhongmin/peanut/AppleDevelop/EmotionMuseum/backend/emotion-gateway)
|
||||
2025-07-16 09:03:40 [main] DEBUG [com.emotionmuseum.gateway.GatewayApplication] - Running with Spring Boot v3.0.2, Spring v6.0.4
|
||||
2025-07-16 09:03:40 [main] INFO [com.emotionmuseum.gateway.GatewayApplication] - The following 1 profile is active: "local"
|
||||
2025-07-16 09:03:42 [main] INFO [o.s.d.r.config.RepositoryConfigurationDelegate] - Multiple Spring Data modules found, entering strict repository configuration mode
|
||||
2025-07-16 09:03:42 [main] INFO [o.s.d.r.config.RepositoryConfigurationDelegate] - Bootstrapping Spring Data Redis repositories in DEFAULT mode.
|
||||
2025-07-16 09:03:42 [main] INFO [o.s.d.r.config.RepositoryConfigurationDelegate] - Finished Spring Data repository scanning in 13 ms. Found 0 Redis repository interfaces.
|
||||
2025-07-16 09:03:42 [main] INFO [o.springframework.cloud.context.scope.GenericScope] - BeanFactory id=4710d9c7-5e9d-353b-b960-5b878d180ffe
|
||||
2025-07-16 09:03:42 [main] INFO [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)
|
||||
2025-07-16 09:03:42 [main] INFO [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)
|
||||
2025-07-16 09:03:42 [main] INFO [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)
|
||||
2025-07-16 09:03:44 [main] DEBUG [o.s.cloud.gateway.config.GatewayProperties] - Routes supplied from Gateway Properties: [RouteDefinition{id='emotion-user-route', predicates=[PredicateDefinition{name='Path', args={_genkey_0=/user/**}}], filters=[FilterDefinition{name='StripPrefix', args={_genkey_0=0}}], uri=http://localhost:19001, order=0, metadata={}}, RouteDefinition{id='emotion-captcha-route', predicates=[PredicateDefinition{name='Path', args={_genkey_0=/captcha/**}}], filters=[FilterDefinition{name='StripPrefix', args={_genkey_0=0}}], uri=http://localhost:19001, order=0, metadata={}}, RouteDefinition{id='emotion-oauth-route', predicates=[PredicateDefinition{name='Path', args={_genkey_0=/oauth/**}}], filters=[FilterDefinition{name='StripPrefix', args={_genkey_0=0}}], uri=http://localhost:19001, order=0, metadata={}}, RouteDefinition{id='emotion-ai-route', predicates=[PredicateDefinition{name='Path', args={_genkey_0=/ai/**}}], filters=[FilterDefinition{name='StripPrefix', args={_genkey_0=0}}], uri=http://localhost:19002, order=0, metadata={}}]
|
||||
2025-07-16 09:03:44 [main] INFO [o.s.c.gateway.route.RouteDefinitionRouteLocator] - Loaded RoutePredicateFactory [After]
|
||||
2025-07-16 09:03:44 [main] INFO [o.s.c.gateway.route.RouteDefinitionRouteLocator] - Loaded RoutePredicateFactory [Before]
|
||||
2025-07-16 09:03:44 [main] INFO [o.s.c.gateway.route.RouteDefinitionRouteLocator] - Loaded RoutePredicateFactory [Between]
|
||||
2025-07-16 09:03:44 [main] INFO [o.s.c.gateway.route.RouteDefinitionRouteLocator] - Loaded RoutePredicateFactory [Cookie]
|
||||
2025-07-16 09:03:44 [main] INFO [o.s.c.gateway.route.RouteDefinitionRouteLocator] - Loaded RoutePredicateFactory [Header]
|
||||
2025-07-16 09:03:44 [main] INFO [o.s.c.gateway.route.RouteDefinitionRouteLocator] - Loaded RoutePredicateFactory [Host]
|
||||
2025-07-16 09:03:44 [main] INFO [o.s.c.gateway.route.RouteDefinitionRouteLocator] - Loaded RoutePredicateFactory [Method]
|
||||
2025-07-16 09:03:44 [main] INFO [o.s.c.gateway.route.RouteDefinitionRouteLocator] - Loaded RoutePredicateFactory [Path]
|
||||
2025-07-16 09:03:44 [main] INFO [o.s.c.gateway.route.RouteDefinitionRouteLocator] - Loaded RoutePredicateFactory [Query]
|
||||
2025-07-16 09:03:44 [main] INFO [o.s.c.gateway.route.RouteDefinitionRouteLocator] - Loaded RoutePredicateFactory [ReadBody]
|
||||
2025-07-16 09:03:44 [main] INFO [o.s.c.gateway.route.RouteDefinitionRouteLocator] - Loaded RoutePredicateFactory [RemoteAddr]
|
||||
2025-07-16 09:03:44 [main] INFO [o.s.c.gateway.route.RouteDefinitionRouteLocator] - Loaded RoutePredicateFactory [XForwardedRemoteAddr]
|
||||
2025-07-16 09:03:44 [main] INFO [o.s.c.gateway.route.RouteDefinitionRouteLocator] - Loaded RoutePredicateFactory [Weight]
|
||||
2025-07-16 09:03:44 [main] INFO [o.s.c.gateway.route.RouteDefinitionRouteLocator] - Loaded RoutePredicateFactory [CloudFoundryRouteService]
|
||||
2025-07-16 09:03:44 [main] INFO [c.a.c.s.gateway.scg.SentinelSCGAutoConfiguration] - [Sentinel SpringCloudGateway] register SentinelGatewayFilter with order: -2147483648
|
||||
2025-07-16 09:03:44 [main] DEBUG [o.s.web.reactive.handler.SimpleUrlHandlerMapping] - Patterns [/webjars/**, /**] in 'resourceHandlerMapping'
|
||||
2025-07-16 09:03:44 [main] INFO [o.s.b.actuate.endpoint.web.EndpointLinksResolver] - Exposing 2 endpoint(s) beneath base path '/actuator'
|
||||
2025-07-16 09:03:44 [main] DEBUG [o.s.w.r.r.m.annotation.ControllerMethodResolver] - ControllerAdvice beans: none
|
||||
2025-07-16 09:03:44 [main] INFO [c.a.c.s.gateway.scg.SentinelSCGAutoConfiguration] - [Sentinel SpringCloudGateway] register SentinelGatewayBlockExceptionHandler
|
||||
2025-07-16 09:03:44 [main] DEBUG [o.s.web.server.adapter.HttpWebHandlerAdapter] - enableLoggingRequestDetails='false': form data and headers will be masked to prevent unsafe logging of potentially sensitive data
|
||||
2025-07-16 09:03:44 [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.
|
||||
2025-07-16 09:03:45 [main] INFO [o.s.boot.web.embedded.netty.NettyWebServer] - Netty started on port 19000
|
||||
2025-07-16 09:03:45 [main] DEBUG [o.s.c.gateway.route.RouteDefinitionRouteLocator] - RouteDefinition emotion-user-route applying {_genkey_0=/user/**} to Path
|
||||
2025-07-16 09:03:45 [main] DEBUG [o.s.c.gateway.route.RouteDefinitionRouteLocator] - RouteDefinition emotion-user-route applying filter {_genkey_0=0} to StripPrefix
|
||||
2025-07-16 09:03:45 [main] DEBUG [o.s.c.gateway.route.RouteDefinitionRouteLocator] - RouteDefinition matched: emotion-user-route
|
||||
2025-07-16 09:03:45 [main] DEBUG [o.s.c.gateway.route.RouteDefinitionRouteLocator] - RouteDefinition emotion-captcha-route applying {_genkey_0=/captcha/**} to Path
|
||||
2025-07-16 09:03:45 [main] DEBUG [o.s.c.gateway.route.RouteDefinitionRouteLocator] - RouteDefinition emotion-captcha-route applying filter {_genkey_0=0} to StripPrefix
|
||||
2025-07-16 09:03:45 [main] DEBUG [o.s.c.gateway.route.RouteDefinitionRouteLocator] - RouteDefinition matched: emotion-captcha-route
|
||||
2025-07-16 09:03:45 [main] DEBUG [o.s.c.gateway.route.RouteDefinitionRouteLocator] - RouteDefinition emotion-oauth-route applying {_genkey_0=/oauth/**} to Path
|
||||
2025-07-16 09:03:45 [main] DEBUG [o.s.c.gateway.route.RouteDefinitionRouteLocator] - RouteDefinition emotion-oauth-route applying filter {_genkey_0=0} to StripPrefix
|
||||
2025-07-16 09:03:45 [main] DEBUG [o.s.c.gateway.route.RouteDefinitionRouteLocator] - RouteDefinition matched: emotion-oauth-route
|
||||
2025-07-16 09:03:45 [main] DEBUG [o.s.c.gateway.route.RouteDefinitionRouteLocator] - RouteDefinition emotion-ai-route applying {_genkey_0=/ai/**} to Path
|
||||
2025-07-16 09:03:45 [main] DEBUG [o.s.c.gateway.route.RouteDefinitionRouteLocator] - RouteDefinition emotion-ai-route applying filter {_genkey_0=0} to StripPrefix
|
||||
2025-07-16 09:03:45 [main] DEBUG [o.s.c.gateway.route.RouteDefinitionRouteLocator] - RouteDefinition matched: emotion-ai-route
|
||||
2025-07-16 09:03:45 [main] DEBUG [o.s.cloud.gateway.filter.GatewayMetricsFilter] - New routes count: 4
|
||||
2025-07-16 09:03:45 [main] INFO [com.emotionmuseum.gateway.GatewayApplication] - Started GatewayApplication in 5.105 seconds (process running for 5.704)
|
||||
2025-07-16 09:03:59 [reactor-http-nio-2] DEBUG [o.s.web.server.adapter.HttpWebHandlerAdapter] - [42be3651-1] HTTP GET "/actuator/health"
|
||||
INFO: Sentinel log output type is: file
|
||||
INFO: Sentinel log charset is: utf-8
|
||||
INFO: Sentinel log base directory is: /Users/huazhongmin/logs/csp/
|
||||
INFO: Sentinel log name use pid is: false
|
||||
INFO: Sentinel log level is: INFO
|
||||
2025-07-16 09:03:59 [lettuce-nioEventLoop-5-1] DEBUG [o.s.w.r.r.m.annotation.ResponseEntityResultHandler] - [42be3651-1] Using 'application/vnd.spring-boot.actuator.v3+json' given [*/*] and supported [application/vnd.spring-boot.actuator.v3+json, application/vnd.spring-boot.actuator.v2+json, application/json]
|
||||
2025-07-16 09:03:59 [lettuce-nioEventLoop-5-1] DEBUG [o.s.w.r.r.m.annotation.ResponseEntityResultHandler] - [42be3651-1] 0..1 [org.springframework.boot.actuate.health.SystemHealth]
|
||||
2025-07-16 09:03:59 [lettuce-nioEventLoop-5-1] DEBUG [org.springframework.web.HttpLogging] - [42be3651-1] Encoding [org.springframework.boot.actuate.health.SystemHealth@6fdce5a3]
|
||||
2025-07-16 09:03:59 [reactor-http-nio-2] DEBUG [o.s.web.server.adapter.HttpWebHandlerAdapter] - [42be3651-1] Completed 200 OK
|
||||
2025-07-16 09:04:12 [reactor-http-nio-3] DEBUG [o.s.web.server.adapter.HttpWebHandlerAdapter] - [127c1f50-2] HTTP GET "/actuator/health"
|
||||
2025-07-16 09:04:12 [lettuce-nioEventLoop-5-1] DEBUG [o.s.w.r.r.m.annotation.ResponseEntityResultHandler] - [127c1f50-2] Using 'application/vnd.spring-boot.actuator.v3+json' given [*/*] and supported [application/vnd.spring-boot.actuator.v3+json, application/vnd.spring-boot.actuator.v2+json, application/json]
|
||||
2025-07-16 09:04:12 [lettuce-nioEventLoop-5-1] DEBUG [o.s.w.r.r.m.annotation.ResponseEntityResultHandler] - [127c1f50-2] 0..1 [org.springframework.boot.actuate.health.SystemHealth]
|
||||
2025-07-16 09:04:12 [lettuce-nioEventLoop-5-1] DEBUG [org.springframework.web.HttpLogging] - [127c1f50-2] Encoding [org.springframework.boot.actuate.health.SystemHealth@3fb8c67f]
|
||||
2025-07-16 09:04:12 [reactor-http-nio-3] DEBUG [o.s.web.server.adapter.HttpWebHandlerAdapter] - [127c1f50-2] Completed 200 OK
|
||||
2025-07-16 09:04:22 [reactor-http-nio-4] DEBUG [o.s.web.server.adapter.HttpWebHandlerAdapter] - [7b8bca8e-3] HTTP GET "/user/actuator/health"
|
||||
2025-07-16 09:04:22 [reactor-http-nio-4] DEBUG [o.s.c.gateway.handler.RoutePredicateHandlerMapping] - Route matched: emotion-user-route
|
||||
2025-07-16 09:04:22 [reactor-http-nio-4] DEBUG [o.s.c.gateway.handler.RoutePredicateHandlerMapping] - Mapping [Exchange: GET http://localhost:19000/user/actuator/health] to Route{id='emotion-user-route', uri=http://localhost:19001, order=0, predicate=Paths: [/user/**], match trailing slash: true, gatewayFilters=[[[StripPrefix parts = 0], order = 1]], metadata={}}
|
||||
2025-07-16 09:04:22 [reactor-http-nio-4] DEBUG [o.s.c.gateway.handler.RoutePredicateHandlerMapping] - [7b8bca8e-3] Mapped to org.springframework.cloud.gateway.handler.FilteringWebHandler@373b5ee9
|
||||
2025-07-16 09:04:22 [reactor-http-nio-4] DEBUG [o.s.cloud.gateway.handler.FilteringWebHandler] - Sorted gatewayFilterFactories: [[GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.RemoveCachedBodyFilter@451f87af}, order = -2147483648], [GatewayFilterAdapter{delegate=com.alibaba.csp.sentinel.adapter.gateway.sc.SentinelGatewayFilter@3051e0b2}, order = -2147483648], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.AdaptCachedBodyGlobalFilter@4dafba3e}, order = -2147482648], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.NettyWriteResponseFilter@287f7811}, order = -1], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.ForwardPathFilter@17271176}, order = 0], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.GatewayMetricsFilter@2e34384c}, order = 0], [[StripPrefix parts = 0], order = 1], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.RouteToRequestUrlFilter@2b556bb2}, order = 10000], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.ReactiveLoadBalancerClientFilter@57b75756}, order = 10150], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.LoadBalancerServiceInstanceCookieFilter@5327a06e}, order = 10151], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.WebsocketRoutingFilter@2e3cdec2}, order = 2147483646], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.NettyRoutingFilter@2679311f}, order = 2147483647], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.ForwardRoutingFilter@44cb460e}, order = 2147483647]]
|
||||
2025-07-16 09:04:22 [reactor-http-nio-4] DEBUG [o.s.c.g.f.h.o.ObservedRequestHttpHeadersFilter] - Will instrument the HTTP request headers [Host:"localhost:19000", User-Agent:"curl/8.7.1", Accept:"*/*", Forwarded:"proto=http;host="localhost:19000";for="[0:0:0:0:0:0:0:1]:62291"", X-Forwarded-For:"0:0:0:0:0:0:0:1", X-Forwarded-Proto:"http", X-Forwarded-Port:"19000", X-Forwarded-Host:"localhost:19000"]
|
||||
2025-07-16 09:04:22 [reactor-http-nio-4] DEBUG [o.s.c.g.f.h.o.ObservedRequestHttpHeadersFilter] - Client observation {name=http.client.requests(null), error=null, context=name='http.client.requests', contextualName='null', error='null', lowCardinalityKeyValues=[http.method='GET', http.status_code='UNKNOWN', spring.cloud.gateway.route.id='emotion-user-route', spring.cloud.gateway.route.uri='http://localhost:19001'], highCardinalityKeyValues=[http.uri='http://localhost:19000/user/actuator/health'], map=[class io.micrometer.core.instrument.Timer$Sample='io.micrometer.core.instrument.Timer$Sample@4443fec4', class io.micrometer.core.instrument.LongTaskTimer$Sample='SampleImpl{duration(seconds)=4.93244E-4, duration(nanos)=493244.0, startTimeNanos=302639138304957}'], parentObservation={name=http.server.requests(null), error=null, context=name='http.server.requests', contextualName='null', error='null', lowCardinalityKeyValues=[exception='none', method='GET', outcome='SUCCESS', status='200', uri='UNKNOWN'], highCardinalityKeyValues=[http.url='/user/actuator/health'], map=[class io.micrometer.core.instrument.Timer$Sample='io.micrometer.core.instrument.Timer$Sample@62ceb8d8', class io.micrometer.core.instrument.LongTaskTimer$Sample='SampleImpl{duration(seconds)=0.131310068, duration(nanos)=1.31310068E8, startTimeNanos=302639007609097}'], parentObservation=null}} created for the request. New headers are [Host:"localhost:19000", User-Agent:"curl/8.7.1", Accept:"*/*", Forwarded:"proto=http;host="localhost:19000";for="[0:0:0:0:0:0:0:1]:62291"", X-Forwarded-For:"0:0:0:0:0:0:0:1", X-Forwarded-Proto:"http", X-Forwarded-Port:"19000", X-Forwarded-Host:"localhost:19000"]
|
||||
2025-07-16 09:04:22 [reactor-http-nio-4] DEBUG [o.s.c.g.f.h.o.ObservedResponseHttpHeadersFilter] - Will instrument the response
|
||||
2025-07-16 09:04:22 [reactor-http-nio-4] DEBUG [o.s.c.g.f.h.o.ObservedResponseHttpHeadersFilter] - The response was handled for observation {name=http.client.requests(null), error=null, context=name='http.client.requests', contextualName='null', error='null', lowCardinalityKeyValues=[http.method='GET', http.status_code='UNKNOWN', spring.cloud.gateway.route.id='emotion-user-route', spring.cloud.gateway.route.uri='http://localhost:19001'], highCardinalityKeyValues=[http.uri='http://localhost:19000/user/actuator/health'], map=[class io.micrometer.core.instrument.Timer$Sample='io.micrometer.core.instrument.Timer$Sample@4443fec4', class io.micrometer.core.instrument.LongTaskTimer$Sample='SampleImpl{duration(seconds)=0.078344915, duration(nanos)=7.8344915E7, startTimeNanos=302639138304957}'], parentObservation={name=http.server.requests(null), error=null, context=name='http.server.requests', contextualName='null', error='null', lowCardinalityKeyValues=[exception='none', method='GET', outcome='SUCCESS', status='200', uri='UNKNOWN'], highCardinalityKeyValues=[http.url='/user/actuator/health'], map=[class io.micrometer.core.instrument.Timer$Sample='io.micrometer.core.instrument.Timer$Sample@62ceb8d8', class io.micrometer.core.instrument.LongTaskTimer$Sample='SampleImpl{duration(seconds)=0.209234105, duration(nanos)=2.09234105E8, startTimeNanos=302639007609097}'], parentObservation=null}}
|
||||
2025-07-16 09:04:22 [reactor-http-nio-4] DEBUG [o.s.web.server.adapter.HttpWebHandlerAdapter] - [7b8bca8e-3] Completed 403 FORBIDDEN
|
||||
2025-07-16 09:04:31 [reactor-http-nio-5] DEBUG [o.s.web.server.adapter.HttpWebHandlerAdapter] - [37305ece-4] HTTP GET "/ai/actuator/health"
|
||||
2025-07-16 09:04:31 [reactor-http-nio-5] DEBUG [o.s.c.gateway.handler.RoutePredicateHandlerMapping] - Route matched: emotion-ai-route
|
||||
2025-07-16 09:04:31 [reactor-http-nio-5] DEBUG [o.s.c.gateway.handler.RoutePredicateHandlerMapping] - Mapping [Exchange: GET http://localhost:19000/ai/actuator/health] to Route{id='emotion-ai-route', uri=http://localhost:19002, order=0, predicate=Paths: [/ai/**], match trailing slash: true, gatewayFilters=[[[StripPrefix parts = 0], order = 1]], metadata={}}
|
||||
2025-07-16 09:04:31 [reactor-http-nio-5] DEBUG [o.s.c.gateway.handler.RoutePredicateHandlerMapping] - [37305ece-4] Mapped to org.springframework.cloud.gateway.handler.FilteringWebHandler@373b5ee9
|
||||
2025-07-16 09:04:31 [reactor-http-nio-5] DEBUG [o.s.cloud.gateway.handler.FilteringWebHandler] - Sorted gatewayFilterFactories: [[GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.RemoveCachedBodyFilter@451f87af}, order = -2147483648], [GatewayFilterAdapter{delegate=com.alibaba.csp.sentinel.adapter.gateway.sc.SentinelGatewayFilter@3051e0b2}, order = -2147483648], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.AdaptCachedBodyGlobalFilter@4dafba3e}, order = -2147482648], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.NettyWriteResponseFilter@287f7811}, order = -1], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.ForwardPathFilter@17271176}, order = 0], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.GatewayMetricsFilter@2e34384c}, order = 0], [[StripPrefix parts = 0], order = 1], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.RouteToRequestUrlFilter@2b556bb2}, order = 10000], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.ReactiveLoadBalancerClientFilter@57b75756}, order = 10150], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.LoadBalancerServiceInstanceCookieFilter@5327a06e}, order = 10151], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.WebsocketRoutingFilter@2e3cdec2}, order = 2147483646], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.NettyRoutingFilter@2679311f}, order = 2147483647], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.ForwardRoutingFilter@44cb460e}, order = 2147483647]]
|
||||
2025-07-16 09:04:31 [reactor-http-nio-5] DEBUG [o.s.c.g.f.h.o.ObservedRequestHttpHeadersFilter] - Will instrument the HTTP request headers [Host:"localhost:19000", User-Agent:"curl/8.7.1", Accept:"*/*", Forwarded:"proto=http;host="localhost:19000";for="[0:0:0:0:0:0:0:1]:62323"", X-Forwarded-For:"0:0:0:0:0:0:0:1", X-Forwarded-Proto:"http", X-Forwarded-Port:"19000", X-Forwarded-Host:"localhost:19000"]
|
||||
2025-07-16 09:04:31 [reactor-http-nio-5] DEBUG [o.s.c.g.f.h.o.ObservedRequestHttpHeadersFilter] - Client observation {name=http.client.requests(null), error=null, context=name='http.client.requests', contextualName='null', error='null', lowCardinalityKeyValues=[http.method='GET', http.status_code='UNKNOWN', spring.cloud.gateway.route.id='emotion-ai-route', spring.cloud.gateway.route.uri='http://localhost:19002'], highCardinalityKeyValues=[http.uri='http://localhost:19000/ai/actuator/health'], map=[class io.micrometer.core.instrument.Timer$Sample='io.micrometer.core.instrument.Timer$Sample@14138b12', class io.micrometer.core.instrument.LongTaskTimer$Sample='SampleImpl{duration(seconds)=1.69279E-4, duration(nanos)=169279.0, startTimeNanos=302648957485505}'], parentObservation={name=http.server.requests(null), error=null, context=name='http.server.requests', contextualName='null', error='null', lowCardinalityKeyValues=[exception='none', method='GET', outcome='SUCCESS', status='200', uri='UNKNOWN'], highCardinalityKeyValues=[http.url='/ai/actuator/health'], map=[class io.micrometer.core.instrument.Timer$Sample='io.micrometer.core.instrument.Timer$Sample@3973cc2a', class io.micrometer.core.instrument.LongTaskTimer$Sample='SampleImpl{duration(seconds)=0.003046764, duration(nanos)=3046764.0, startTimeNanos=302648954707166}'], parentObservation=null}} created for the request. New headers are [Host:"localhost:19000", User-Agent:"curl/8.7.1", Accept:"*/*", Forwarded:"proto=http;host="localhost:19000";for="[0:0:0:0:0:0:0:1]:62323"", X-Forwarded-For:"0:0:0:0:0:0:0:1", X-Forwarded-Proto:"http", X-Forwarded-Port:"19000", X-Forwarded-Host:"localhost:19000"]
|
||||
2025-07-16 09:04:32 [reactor-http-nio-5] DEBUG [o.s.c.g.f.h.o.ObservedResponseHttpHeadersFilter] - Will instrument the response
|
||||
2025-07-16 09:04:32 [reactor-http-nio-5] DEBUG [o.s.c.g.f.h.o.ObservedResponseHttpHeadersFilter] - The response was handled for observation {name=http.client.requests(null), error=null, context=name='http.client.requests', contextualName='null', error='null', lowCardinalityKeyValues=[http.method='GET', http.status_code='UNKNOWN', spring.cloud.gateway.route.id='emotion-ai-route', spring.cloud.gateway.route.uri='http://localhost:19002'], highCardinalityKeyValues=[http.uri='http://localhost:19000/ai/actuator/health'], map=[class io.micrometer.core.instrument.Timer$Sample='io.micrometer.core.instrument.Timer$Sample@14138b12', class io.micrometer.core.instrument.LongTaskTimer$Sample='SampleImpl{duration(seconds)=0.078077624, duration(nanos)=7.8077624E7, startTimeNanos=302648957485505}'], parentObservation={name=http.server.requests(null), error=null, context=name='http.server.requests', contextualName='null', error='null', lowCardinalityKeyValues=[exception='none', method='GET', outcome='SUCCESS', status='200', uri='UNKNOWN'], highCardinalityKeyValues=[http.url='/ai/actuator/health'], map=[class io.micrometer.core.instrument.Timer$Sample='io.micrometer.core.instrument.Timer$Sample@3973cc2a', class io.micrometer.core.instrument.LongTaskTimer$Sample='SampleImpl{duration(seconds)=0.080973745, duration(nanos)=8.0973745E7, startTimeNanos=302648954707166}'], parentObservation=null}}
|
||||
2025-07-16 09:04:32 [reactor-http-nio-5] DEBUG [o.s.web.server.adapter.HttpWebHandlerAdapter] - [37305ece-4] Completed 404 NOT_FOUND
|
||||
Reference in New Issue
Block a user