网关api-gateway
天涯泪小武
开源贡献者,有代码洁癖。京东coder。
展开
-
SpringCloud-gateway全局GlobalFilter获取post的请求参数
gateway里面可以自定义普通filter,也可以创建自定义的GlobalFilter。GlobalFilter实际上还是比较常用的,譬如可以在GlobalFilter里做日志处理、认证鉴权等,这里就涉及一个获取到请求参数的问题。用户发起Get、Post请求,经过网关gateway,gateway的GlobalFilter进行拦截——获取参数——处理并包装——转到下一级,我们就来看看该怎...原创 2018-10-25 11:04:29 · 62877 阅读 · 66 评论 -
spring-webflux中Flux<DataBuffer> 转String
Spring WebFlux既支持像Tomcat,Jetty这样的的传统容器(前提是支持Servlet 3.1 Non-Blocking IO API),又支持像Netty,Undertow那样的异步容器。不管是何种容器,Spring WebFlux都会将其输入输出流适配成Flux<DataBuffer>格式,以便进行统一处理。在使用SpringCloud-gateway时,在各个f...原创 2018-10-24 18:09:36 · 26896 阅读 · 20 评论 -
springcloud gateway代理get正常、post请求报错的问题
在上一篇时,我们在使用gateway的反向代理功能时,发现了一个很严重的问题,那就是通过gateway去访问后端服务时,如果发起的是Get请求,就一切正常,如果是Post请求,就会报错。无论是使用什么filter。java.lang.IllegalStateException: Only one connection receive subscriber allowed. at react...原创 2018-10-24 12:08:23 · 10862 阅读 · 3 评论 -
springcloud gateway之addRequestParameter详细使用及踩坑注意
SpringCloud的网关gateway提供了多个内置Filter,其中addRequestHeader是添加header的,这个无坑,比较简单。还有一个添加参数的,addRequestParameter,这个就有点问题了。具体往下看。版本如下,请注意Springboot版本,这是本篇Post请求异常的关键。1 对应的uri只能是get请求看一个简单的示例,addReques...原创 2018-10-23 11:47:09 · 12129 阅读 · 0 评论 -
详解SpringCloud-gateway动态路由两种方式,以及路由加载过程
gateway配置路由主要有两种方式,一种是用yml配置文件,一种是写代码里,这两种方式都是不支持动态配置的。如:下面就来看看gateway是如何加载这些配置信息的。1 路由初始化无论是yml还是代码,这些配置最终都是被封装到RouteDefinition对象中。一个RouteDefinition有个唯一的ID,如果不指定,就默认是UUID,多个RouteDefinitio...原创 2018-10-26 16:21:29 · 152591 阅读 · 30 评论 -
获取SpringCloud gateway 响应的response的值,可以查看、修改
gateway获取、修改客户端请求Request的参数,我们在上一篇已经讲过了。那么网关发起请求后,微服务返回回来的response的值,还是要经过网关才发给客户端的。很多时候,我们希望能看到响应的值,或者修改它。那么怎么做呢?import org.reactivestreams.Publisher;import org.springframework.cloud.gateway.filt...原创 2018-11-01 11:51:34 · 50795 阅读 · 51 评论 -
SpringCloud gateway跨域配置
gateway允许跨域的配置和zuul的不一样,记录一下。版本 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <...原创 2018-11-01 20:05:14 · 17489 阅读 · 14 评论 -
SpringCloud gateway全局异常处理,以及后台的服务异常response的异常包装
gateway自己服务的全局异常处理,参考这篇https://segmentfault.com/a/1190000016854364?utm_source=tag-newest有两个类/** * @author wuweifeng wrote on 2018/11/2. */@Configurationpublic class ExceptionConfig { /**...原创 2018-11-02 16:52:58 · 22677 阅读 · 6 评论 -
zuul集成Sentinel,使用zookeeper完成动态规则限流
上一篇做了简单的zuul集成Sentinel,是在zuul代码中直接写的rule规则,无法完成动态变化的功能。那么和普通的实例限流一样,zuul的限流也支持动态的。话不多说,直接上代码,在pom中,把我注释掉的部分给放开。还是在原来的config类里加上这一个方法private void initZookeeperApis() { final String r...原创 2019-07-03 17:55:57 · 2500 阅读 · 2 评论