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() 新的响应构建器(上面的数据,可按需修改)
相关推荐
一个有梦有戏的人1 分钟前
Python3基础:进阶基础,筑牢编程底层能力
后端·python
YCY^v^1 分钟前
JeecgBoot 项目运行指南
java·学习
人间打气筒(Ada)13 分钟前
jenkins基于Pipeline发布项目
java·pipeline·jenkins·流水线·ci·cd·cicd
爬山算法18 分钟前
Hibernate(88)如何在负载测试中使用Hibernate?
java·后端·hibernate
自不量力的A同学22 分钟前
Solon AI v3.9 正式发布:全能 Skill 爆发
java·网络·人工智能
万岳科技系统开发33 分钟前
食堂采购系统源码库存扣减算法与并发控制实现详解
java·前端·数据库·算法
独断万古他化37 分钟前
【Spring 原理】Bean 的作用域与生命周期
java·后端·spring
*小海豚*42 分钟前
在linux服务器上DNS正常,但是java应用调用第三方解析域名报错
java·linux·服务器
我爱加班、、1 小时前
Websocket能携带token过去后端吗
前端·后端·websocket
撩得Android一次心动1 小时前
Android LiveData 全面解析:使用Java构建响应式UI【源码篇】
android·java·android jetpack·livedata