spring-cloud-gateway网关落地遇到的几个问题

代码在:
https://gitee.com/sleepforests/spring-cloud-gateway-demo

1、scg采用webflux,不支持servlet协议,很多历史代码使用HttpServletRequest和HttpServletResponse都没法用了,需要重新开发组件。

2、原来嵌入服务里面的Interceptor,使用了各种线程变量和request上下文,独立的物理网关和业务服务不在一个jvm里面,需要使用header传递参数,且需要考虑header的安全、大小问题。

3、原业务服务使用了各种注解,Interceptor处理@注解逻辑。独立网关无法获取配置的注解,导致有些逻辑遇到问题。本质上注解也是一种配置,如果移到网关配置也是可行的,但是感觉步子有点迈得太大。这个最佳实践是如何,还需要考虑。

4、body的处理有点恶心,webflux的body读取目前scg没有提供友好的api接口,可以通过一些hack的方式拿到body,但是需要对于请求头类型特别处理,比如上传文件的请求,拿到body也不好搞。建议规范下,将网关需要获取的变量通过header、cookie或者queryparam的方式传递过来,body里面的内容网关就不要动了。

你可能感兴趣的:(spring-cloud-gateway网关落地遇到的几个问题)