澄潭
澄潭
It seems we should perform a version check on the resources before sending them to Envoy, to ensure that Envoy does not get overwritten with older versions of the resources...
cc @rinfx 把 http 调用相关的日志优先级也一并调整一下吧
Streamable HTTP的MCP官方SDK目前还没有,我们是根据官方spec的协议实现的。可以看下 REST API MCPServer,就是支持的:https://higress.cn/ai/mcp-quick-start/?spm=36971b57.7beea2de.0.0.d85f20a9nVjyp6#%E9%85%8D%E7%BD%AE-rest-api-mcp-server Streamable HTTP模式是不局限于无状态的,只是对无状态比较友好而已。目前Higress对[有状态的Streamable HTTP模式](https://spec.modelcontextprotocol.io/specification/2025-03-26/basic/transports/#session-management)还尚未支持。
@JooKS-me 基于redis做的session同步
@Linux-yangyang 用这个可以么 https://github.com/alibaba/higress/blob/6a40d83ec0a04026238fd90ca315c5323a24c14a/plugins/wasm-go/pkg/wrapper/redis_wrapper.go#L33
可以考虑先直接用 Command
@Linux-yangyang 如果用command实现了,其实可以考虑给仓库提个PR,支持这个Scan的接口
是不是配置了 proxy-next-upstream-timeout 呢,如果超过这个时间,是不会进行重试的,这个nginx也是这样的
@SpecialYang 确认下目前实现,我看envoy的实现机制和nginx还是有差异,必须指定per-try-timeout比总的超时时间短才会做超时重试,相当于如果配置了timeout注解,就等价于配置了nginx的proxy-next-upstream-timeout :https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/router_filter#config-http-filters-router-x-envoy-retry-on
https://github.com/alibaba/higress/blob/a140f780d299de66f2d30840b184d671e56f25e7/pkg/ingress/kube/annotations/retry.go#L66-L70 现在将proxy-next-upstream-timeout映射到perRetryTimeout,会和nginx ingress行为不一致。 我觉得可以加个注解来指定perRetryTimeout,如果注解未指定时,则默认设置为比路由超时小(比如减1秒),这样来做兼容 nginx的行为可以参考: https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/#custom-timeouts https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_next_upstream_timeout 如果设置了proxy-next-upstream-timeout,当超过这个timeout后不会重试,不设置则超时会一直重试。虽然一般最佳实践也是把这个值配成和路由超时时间一致。 envoy的行为可以参考: https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/route/v3/route_components.proto.html#config-route-v3-retrypolicy 当每次重试超过per_try_timeout时,会进行重试,但如果整体超时时间超过路由的timeout,就不会重试。