Solon Cloud Gateway 开发:熟悉 ExContext 及相关接口

分布式网关的主要工作是路由及数据交换,在定义时,会经常用到:

接口 说明
RouteFilterFactory 路由过滤器工厂
RoutePredicateFactory 路由检测器工厂
CloudGatewayFilter 分布式网关过滤器
ExFilter 交换过滤器
ExPredicate 交换检测器
ExContext 交换上下文

ExFilter

应用场景

  • CloudGatewayFilter extends ExFilter
  • RouteFilterFactory::cteate()
java 复制代码
@FunctionalInterface
public interface ExFilter {
    /**
     * 过滤
     *
     * @param ctx   交换上下文
     * @param chain 过滤链
     */
    Completable doFilter(ExContext ctx, ExFilterChain chain);
}

ExPredicate

应用场景

  • RoutePredicateFactory::create() -> ExPredicate
java 复制代码
@FunctionalInterface
public interface ExPredicate extends Predicate<ExContext> {
}

ExContext

方法 说明
attr(name) 获取属性
attrSet(name, value) 设置属性
target() 路由目标
timeout() 超时配置
remoteAddress() 远程地址
localAddress() 本地地址
realIp() 客户端真实IP
isSecure() 是否安全请求(即 ssl)
rawMethod() 获取原始请求方法
rawURI() 获取原始完整请求地址 uri
rawPath() 原始请求路径
rawQueryString() 获取原始查询字符串
rawQueryParam(name) 获取原始查询参数
rawQueryParams() 获取原始所有查询参数
rawHeader(name) 原始请求头
rawHeaders() 获取原始所有头
rawCookie(name) 原始请求小饼
rawCookies() 获取原始所有小饼
newRequest() 新的请求构建器(上面的数据,可按需修改)
newResponse() 新的响应构建器(上面的数据,可按需修改)
相关推荐
葫芦和十三37 分钟前
图解 MongoDB 17|大集合与工作集:数据超过内存怎么办
后端·mongodb·面试
kfaino8 小时前
码农的AI翻身(三)你好,我叫 Embedding
后端·ai编程
葫芦和十三9 小时前
图解 MongoDB 18|复制集拓扑:Primary、Secondary 和 Arbiter 的分工
后端·mongodb·面试
爱勇宝9 小时前
大多数人不是在使用 AI 赚钱,而是在帮 AI 公司赚钱
前端·后端·程序员
程序员cxuan12 小时前
虽迟但到!GPT-5.6 终于来了!
人工智能·后端·程序员
IT_陈寒14 小时前
React的这个渲染问题连官方文档都没说清楚
前端·人工智能·后端
狼爷15 小时前
吃透 Java Function 接口,搞定 99% 的 Stream 场景
java·函数式编程
葫芦和十三15 小时前
图解 MongoDB 15|journal 与持久化:写入怎么不丢,崩溃怎么恢复
后端·mongodb·面试
葫芦和十三15 小时前
图解 MongoDB 16|压缩:snappy、zstd 和 zlib 的取舍
后端·mongodb·面试
苍何15 小时前
终于找到免费开源TTS模型,克隆声音不要钱,本地电脑也能跑
后端