04-spring-boot-resttemplate netty定製使用
04-spring-boot-resttemplate netty定製使用
rest template可以使用netty定製的工廠類-Netty4ClientHttpRequestFactory,完成相關rest介面訪問工作,由於上一節已經大致介紹了相關rest template的使用,本文的重點放在替換的處理要點盤點以及Netty4ClientHttpRequestFactory的實現討論上。
1 核心依賴
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation group: 'io.netty', name: 'netty-all', version: '4.1.53.Final'
https://www.jianshu.com/p/c99bfdb5bf11
2 Netty4ClientHttpRequestFactory定製程式碼
其實主要程式碼與上一節相同,僅Supplier requestFactory的工場bean換成了我們的Supplier requestFactory。
3 工作原理探究
為了證實相關程式碼的工作,使用了arthas監控相關程式碼,列印出了Netty4ClientHttpRequestFactory的具體堆疊呼叫,arthas指令如下是所示
stack org.springframework.http.client.Netty4ClientHttpRequestFactory
如下圖所示,可以看到兩個堆疊,一個是netty執行緒的訊息傳送,通道相關處理,另外一個則是傳送rest請求的相關介面的底層呼叫棧,可以看到,相關rest介面的傳送,底層實際上是Netty4ClientHttpRequestFactory呼叫netty完成的,從兩個堆疊就可以非常明確。
4 不推薦理由
spring官方目前已經不支援netty底層實現,這裡是原因說明:
原來底層netty實現的方式每次都會關閉http連線,這裡確實不值得推薦。
相關文章
- 使用 Dockerfile 定製映象Docker
- 使用Dockerfile定製映象Docker
- 使用 Dockerfile 定製映象【轉】Docker
- 使用shell定製awr指令碼指令碼
- Netty、MINA、Twisted一起學系列04:定製自己的協議Netty協議
- 用 WebSphere CloudBurst 實現定製: 使用指令碼包定製超級模式WebCloud指令碼模式
- 使用Yeoman定製前端腳手架前端
- 使用shell定製addm指令碼指令碼
- 使用shell來定製dbms_sqltuneSQL
- netty系列之:在netty中使用proxy protocolNettyProtocol
- 使用者定製再度興起,定製產品小程式將迎來春天!
- 使用VundleVim定製vim開發環境開發環境
- Netty-BIO、NIO、AIO、零複製-2NettyAI
- netty系列之:在netty中使用protobuf協議Netty協議
- netty系列之:使用netty搭建websocket伺服器NettyWeb伺服器
- netty系列之:使用netty搭建websocket客戶端NettyWeb客戶端
- Netty的LengthFieldBasedFrameDecoder使用Netty
- PSQL基本使用(定製維護指令碼)SQL指令碼
- 定製Tinycore
- Netty使用及事件傳遞Netty事件
- 多使用者商城系統定製開發
- PSQL基本使用(定製PSQL提示符)SQL
- 使用 PubSubHubbub 製作 RSS 定時器 —— Laravel RSS (三)定時器Laravel
- 使用SQL-DMO實現定製SQL Scripts (轉)SQL
- netty系列之:在netty中使用native傳輸協議Netty協議
- Dockerfile定製映象Docker
- C++模板的定製二:定製C++類 (轉)C++
- C++模板的定製一:定製函式模板 (轉)C++函式
- 實戰-使用 Cobbler 定製化安裝指定系統
- .NET中使用DebuggerDisplay輕鬆定製除錯除錯
- 使用NineData定製企業級資料庫規範資料庫
- 定製gridview使其在listview中當作item使用View
- 使用定製工作流程更新 RSS 資料來源
- 初識Netty原理(一)—— 基本使用Netty
- netty系列之:使用POJO替代bufNettyPOJO
- netty系列之:使用UDP協議NettyUDP協議
- 使用Netty模擬發生OOMNettyOOM
- 在Netty使用中TLSv1.3NettyTLS