我被坑了
1.背景
因為spring boot 和spring cloud 出現遠程攻擊漏洞,不得不升級到最新的,而最新的不支持以前用的微服務框架,需要重新搭建
不再支持zuul網關,只能更換功能強大的gateway
。。。。。。。巨坑來了,沒有老師,沒有詳細的文檔,只能把博客都翻了一遍,最后雖然成功了,但是走過的坑無數
最難受的是各種包沖突
請棄用zuul的操作邏輯,在這里不頂用
zuul是同步阻塞的,而gateway是非全異步非阻塞
說人話就是
zuul每次處理請求和響應都是生成一個線程做同步阻塞處理,邏輯不結束線程不結束,可以在主線程操作,可以在任何的地方做阻塞操作,如調用微服務接口和訪問http互聯網接口
然而 gateway這個奇葩
雖然也是在任何時候都可以做同步阻塞,但是不是任何地方都可以,做全局攔截器,可以隨時獲取請求信息,此時此地可以做同步阻塞操作,如調用微服務等,但是響應時,
必須new一個ServerHttpResponseDecorator 來操作,內部重寫匿名類的實現方法來修改響應體等信息,注意了,此時此刻不允許做同步阻塞操作,即不允許調用微服務、
查詢數據庫等操作,如果在這里有統一攔截響應體然后需要調微服務接口的需求,趁早換方案吧,這里最多做點本地處理,如更換響應內容和加密解密等操作
還有很多坑,沒時間寫了,等有空再整理一下