最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot?OpenFeign整合okHttpClient實(shí)踐

 更新時(shí)間:2026年04月20日 09:33:03   作者:倒流時(shí)光三十年  
SpringCloud默認(rèn)使用JDK自帶HttpURLConnection進(jìn)行數(shù)據(jù)傳輸,但沒(méi)有連接池,意味著每發(fā)起一個(gè)請(qǐng)求都會(huì)創(chuàng)建一個(gè)新連接,為提高系統(tǒng)的穩(wěn)定,需要使用池化技術(shù),這里使用OkHttpClient進(jìn)行池化配置,并給出配置示例和注意事項(xiàng)

前言

SpringCloud微服務(wù)之間數(shù)據(jù)傳輸一般使用?? OpenFeign??,簡(jiǎn)單又易用。ta默認(rèn)狀態(tài)下使用 JDK 自帶的 HttpURLconnection,這種沒(méi)有連接池的。

就意味著每發(fā)起一個(gè)請(qǐng)求,都會(huì)創(chuàng)建一個(gè)新連接,并且不會(huì)對(duì)最大連接數(shù)加以限制(操作系統(tǒng)的限制,實(shí)際上能夠創(chuàng)建的連接數(shù)量是有限的。) 

這種略顯野蠻的方式可能會(huì)威脅到系統(tǒng)的穩(wěn)定。所以必須使用池化技術(shù)啦。

默認(rèn)客戶端 HttpURLConnection

代碼在 package feign 下的 Client 接口類中 , 類中 Default 靜態(tài)內(nèi)部類,此類使用jdk提供的客戶端實(shí)現(xiàn)真正的網(wǎng)絡(luò)調(diào)用.

依賴

  • Gradle
implementation 'io.github.openfeign:feign-okhttp'
  • Maven
<dependency>
    <groupId>io.github.openfeign</groupId>
    <artifactId>feign-okhttp</artifactId>
</dependency>

配置池化Config

OkHttpClient 這里要導(dǎo)入okhttp3 的依賴,不要使用Feign提供的包裝類. 不要導(dǎo)錯(cuò).

package io.github.diehao;

import okhttp3.ConnectionPool;
import okhttp3.OkHttpClient;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.concurrent.TimeUnit;

@Configuration
public class FeignConfig {

    @Bean
    public OkHttpClient feignClient() {
        return new OkHttpClient.Builder()
                .connectTimeout(5, TimeUnit.SECONDS)
                .readTimeout(5, TimeUnit.SECONDS)
                .writeTimeout(5, TimeUnit.SECONDS)
                .connectionPool(new ConnectionPool(250, 1, TimeUnit.MINUTES))
                .build();
    }
}
# 超時(shí)設(shè)置  
方法含義

當(dāng)前值  

connectTimeout建立連接的最大等待時(shí)間5 秒
readTimeout從服務(wù)器讀取響應(yīng)的最大等待時(shí)間5 秒
writeTimeout發(fā)送請(qǐng)求的最大等待時(shí)間5 秒
# 池化設(shè)置
maxIdleConnections最大空閑連接數(shù)250
keepAliveDuration空閑連接最大存活時(shí)間1
timeUnit時(shí)間單位分鐘
?? 注意點(diǎn):
關(guān)于空閑連接設(shè)置除非你有非常高的并發(fā)需求,否則 50 - 100 之間即可.默認(rèn)OkHttp 的連接池默認(rèn)最大空閑連接數(shù)為 5,存活時(shí)間是 1 分鐘

Yml 配置

feign:
  okhttp:
    enabled: true

一開(kāi)始配置成這樣,就是不生效.原來(lái)是不符合 FeignAutoConfiguration類中 okHttpClient 要求的裝配條件.

feign:
  client:
    config:
      default:
        http-method: okhttp

測(cè)試

你的 OkHttpClient 已就緒!

總結(jié)

池化技術(shù)一直是作為提升系統(tǒng)性能有力的手段,連接池、線程池、對(duì)象池等等。ta有其鋒利得地方,但是也不是萬(wàn)無(wú)一失的。

既然是池,資源是有限的!有耗盡用完時(shí)!有等待分配時(shí)!會(huì)有等不到報(bào)錯(cuò)時(shí)!資源閑置回收時(shí)!問(wèn)題就不單單是網(wǎng)絡(luò)調(diào)用請(qǐng)求的事情。

所以結(jié)合自身業(yè)務(wù)如何設(shè)置調(diào)用參數(shù),就無(wú)比重要。更要提高報(bào)錯(cuò)分析問(wèn)題的能力,要理解池子的概念。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java SpringBoot安全框架整合Spring Security詳解

    Java SpringBoot安全框架整合Spring Security詳解

    這篇文章主要介紹了Spring Boot整合Spring Security的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2021-09-09
  • 詳解MyBatis Plus中分頁(yè)插件的使用

    詳解MyBatis Plus中分頁(yè)插件的使用

    這篇文章主要為大家詳細(xì)介紹了MyBatis Plus中分頁(yè)插件使用的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的小伙伴可以了解一下
    2023-02-02
  • 解決Spring boot整合mybatis,xml資源文件放置及路徑配置問(wèn)題

    解決Spring boot整合mybatis,xml資源文件放置及路徑配置問(wèn)題

    這篇文章主要介紹了解決Spring boot整合mybatis,xml資源文件放置及路徑配置問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-12-12
  • Springboot actuator生產(chǎn)就緒功能實(shí)現(xiàn)解析

    Springboot actuator生產(chǎn)就緒功能實(shí)現(xiàn)解析

    這篇文章主要介紹了Springboot actuator生產(chǎn)就緒功能實(shí)現(xiàn)解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • Java實(shí)現(xiàn)郵件發(fā)送功能

    Java實(shí)現(xiàn)郵件發(fā)送功能

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)郵件發(fā)送功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • 解決問(wèn)題:Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources

    解決問(wèn)題:Failed to execute goal org.apache.m

    這篇文章主要給大家介紹了關(guān)于解決問(wèn)題:Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources的相關(guān)資料,文中將解決的辦法介紹的非常詳細(xì),需要的朋友可以參考下
    2023-03-03
  • mybatisplus中返回Vo的案例講解

    mybatisplus中返回Vo的案例講解

    這篇文章主要介紹了mybatisplus中返回Vo的案例,mybatisplus內(nèi)置的幾個(gè)方法使用泛型限制了方法的返回類型,所以實(shí)現(xiàn)返回Vo還是得自定義方法,?這個(gè)方法名盡量不要和原有的名字類似,本文通過(guò)實(shí)例代碼給大家詳解講解,需要的朋友可以參考下
    2023-03-03
  • java解析xml之sax解析xml示例分享

    java解析xml之sax解析xml示例分享

    SAX基于事件的解析,解析器在一次讀取XML文件中根據(jù)讀取的數(shù)據(jù)產(chǎn)生相應(yīng)的事件,由應(yīng)用程序?qū)崿F(xiàn)相應(yīng)的事件處理邏輯,即它是一種“推”的解析方式;這種解析方法速度快、占用內(nèi)存少,但是它需要應(yīng)用程序自己處理解析器的狀態(tài),實(shí)現(xiàn)起來(lái)會(huì)比較麻煩
    2014-01-01
  • Java 普通代碼塊靜態(tài)代碼塊執(zhí)行順序(實(shí)例講解)

    Java 普通代碼塊靜態(tài)代碼塊執(zhí)行順序(實(shí)例講解)

    下面小編就為大家?guī)?lái)一篇Java 普通代碼塊靜態(tài)代碼塊執(zhí)行順序(實(shí)例講解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-08-08
  • java實(shí)現(xiàn)文件上傳下載和圖片壓縮代碼示例

    java實(shí)現(xiàn)文件上傳下載和圖片壓縮代碼示例

    本文給大家介紹的是項(xiàng)目中經(jīng)常需要用到的一個(gè)常用的功能,使用java實(shí)現(xiàn)文件的上傳下載和圖片的壓縮功能,這里推薦給大家,有需要的小伙伴參考下。
    2015-03-03

最新評(píng)論

无锡市| 玛多县| 达孜县| 皋兰县| 晴隆县| 朔州市| 北碚区| 西贡区| 四会市| 称多县| 乌鲁木齐市| 黑山县| 陆河县| 湾仔区| 乌拉特前旗| 大英县| 贵德县| 怀远县| 西藏| 贵定县| 永吉县| 泰和县| 宜州市| 寻甸| 福清市| 克拉玛依市| 武邑县| 德州市| 宁都县| 晋江市| 聊城市| 宝丰县| 北票市| 牡丹江市| 吉水县| 正镶白旗| 富锦市| 武定县| 徐州市| 台山市| 巴彦县|