springcloud
fayeyiwang
这个作者很懒,什么都没留下…
展开
-
Springcloud gateway 学习(一)
1. Spring Cloud Gateway 特性基于 Java 8 编码; 基于Spring Framework 5,Project Reactor和Spring Boot 2.0构建 支持动态路由,能够匹配任何请求属性上的路由。 支持 内置 到 Spring Handler 映射 中的 路 由 匹配; 支持 基于 HTTP 请求 的 路 由 匹配( Path、 Method、 H...转载 2019-01-18 14:24:24 · 1532 阅读 · 0 评论 -
Filter中获取请求体body后再次读取的问题
工作需要,要将请求和响应做一些处理,写一个filter拦截请求,拦截request中body内容后,字符流关闭,controller取到的请求体内容为空。从Request中获取输入流,InputStream只能被读取一次。解决方案:给request添加一个包装类BodyWrapper,继承HttpServletRequestWrapper,先从request中取输入流,读取流中的数据,然后...原创 2019-06-19 16:33:54 · 3864 阅读 · 2 评论 -
springcloud gateway 获取post请求体Json分段导致不全的解决方案
开发版本springboot 2.0.8.RELEASE + springcloud Finchley.SR2 + spring cloud gateway前端客户端采用post发送请求,content_type: application/json,spring cloud gateway需要从request的中取出body进行网关的鉴权处理,然后把处理之后的数据重新封装到body中转发...原创 2019-06-13 15:53:46 · 3759 阅读 · 2 评论 -
springcloud gateway 解决请求接口的响应报文内容不全或者错误的方案
Springcloud默认的返回内容格式为HTML,但我们微服务系统之间的调用格式通常为json格式,对于post请求,有时后响应的报文为JSON的时候就报错,接口测试的时候通常返回如下错误:<Not JSON content>但通过查看html报文时 确实有响应内容,只是内容不全,json体只显示了一部分,存在丢失问题。解决此问题的方式就是修改原始响应内容的参数设置。重新设置he...原创 2019-02-11 10:31:45 · 13162 阅读 · 1 评论 -
SpringCloud Zuul 由Edgware升级到最新版本Finchley改动点
Spring Boot 2.1.0 已经发布,现在 Spring Cloud 格林威治版本也发布了,现在为项目网关zuul做一次整体框架升级到最新稳定版 基于Spring Boot 2.0.x 的 Finchley 版本。升级前 => 升级后Spring Boot 1.5.14 => Spring Boot 2.0.7Spring Cloud Edgware SR4 =&g...原创 2019-01-17 09:49:42 · 2593 阅读 · 0 评论 -
springcloud gateway 获取post请求的请求体和返回的响应内容
1. 获取post请求的下游微服务返回的响应内容:import java.nio.charset.Charset;import org.reactivestreams.Publisher;import org.springframework.cloud.gateway.filter.GatewayFilterChain;import org.springframework.cloud.g...原创 2019-01-18 16:31:56 · 20153 阅读 · 9 评论 -
Springcloud gateway 学习(四) filter
GatewayFilterFactory 简介路由过滤器允许以某种方式修改传入的HTTP请求或传出的HTTP响应。 路径过滤器的范围限定为特定路径。 Spring Cloud Gateway包含许多内置的GatewayFilter工厂。网关过滤器工厂接口有多个实现类,在每个 GatewayFilterFactory 实现类的 apply( T config) 方法里,都声明了一个实现...转载 2019-01-18 14:45:34 · 3624 阅读 · 0 评论 -
Springcloud gateway 学习(三) filter
转载自https://www.fangzhipeng.com filter的作用和生命周期由filter工作流程点,可以知道filter有着非常重要的作用,在“pre”类型的过滤器可以做参数校验、权限校验、流量监控、日志输出、协议转换等,在“post”类型的过滤器中可以做响应内容、响应头的修改,日志的输出,流量监控等。 生命周期与zuul不同的是,filter除了分...转载 2019-01-18 14:38:03 · 773 阅读 · 0 评论 -
Springcloud gateway 学习(二)
路由谓词工厂 Spring Cloud Gateway 创建 Route 对象时, 使用 RoutePredicateFactory 创建 Predicate 对象,Predicate 对象可以赋值给 Route。 Spring Cloud Gateway 包含许多内置的Route Predicate Factories。所有这些谓词都匹配HTTP请求的不同属性。多种谓词工厂可以组合,并通过逻...转载 2019-01-18 14:33:34 · 2060 阅读 · 0 评论 -
springcloud gateway 业务系统返回的响应报文内容分段传输导致不全的解决方案
1.我们在实际开发中由网关路由到业务系统处理后返回响应报文。对于返回小内容响应报文通过super.writeWith(fluxBody.map(dataBuffer -> {}))是没有问题的,但有时业务系统需要返回过大的响应报文的时候就有问题了,fluxBody返回体会存在分段传输,从而导致返回的json报文只有一半,前端无法解析而导致错误。解决方案如下:既然返回内容过大存在分段传...原创 2019-06-10 14:53:09 · 8645 阅读 · 11 评论