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里面的内容网关就不要动了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容