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
- Netty、MINA、Twisted一起學系列04:定製自己的協議Netty協議
- 使用 Dockerfile 定製映象【轉】Docker
- logrus的使用及格式定製
- netty系列之:在netty中使用proxy protocolNettyProtocol
- Netty的LengthFieldBasedFrameDecoder使用Netty
- netty系列之:在netty中使用protobuf協議Netty協議
- netty系列之:使用netty搭建websocket客戶端NettyWeb客戶端
- netty系列之:使用netty搭建websocket伺服器NettyWeb伺服器
- 使用者定製再度興起,定製產品小程式將迎來春天!
- PSQL基本使用(定製維護指令碼)SQL指令碼
- PSQL基本使用(定製PSQL提示符)SQL
- Netty-BIO、NIO、AIO、零複製-2NettyAI
- netty系列之:在netty中使用native傳輸協議Netty協議
- .NET中使用DebuggerDisplay輕鬆定製除錯除錯
- Netty使用及事件傳遞Netty事件
- 定製Tinycore
- 使用 PubSubHubbub 製作 RSS 定時器 —— Laravel RSS (三)定時器Laravel
- 多使用者商城系統定製開發
- Netty入門系列(3) --使用Netty進行編解碼的操作Netty
- 初識Netty原理(一)—— 基本使用Netty
- 使用Netty模擬發生OOMNettyOOM
- netty系列之:使用POJO替代bufNettyPOJO
- netty系列之:使用UDP協議NettyUDP協議
- 在Netty使用中TLSv1.3NettyTLS
- Netty中使用的設計模式Netty設計模式
- Netty入門系列(1) --使用Netty搭建服務端和客戶端Netty服務端客戶端
- netty系列之:使用netty實現支援http2的伺服器NettyHTTP伺服器
- Dockerfile定製映象Docker
- SpringBoot:定製 ActuatorSpring Boot
- 使用NineData定製企業級資料庫規範資料庫
- 實戰-使用 Cobbler 定製化安裝指定系統
- 精通併發與 Netty (一)如何使用Netty
- Netty入門系列(2) --使用Netty解決粘包和拆包問題Netty
- 使用 Bitnami PostgreSQL Docker 映象快速設定流複製叢集SQLDocker
- Netty3:分隔符和定長解碼器Netty
- netty系列之:netty初探Netty
- Netty series: handling CORS in nettyNettyCORS