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

Spring Cloud Feign性能優(yōu)化代碼實(shí)例

 更新時(shí)間:2020年03月04日 10:38:57   作者:趙小胖0914  
這篇文章主要介紹了Spring Cloud Feign性能優(yōu)化代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

1、替換 tomcat

首先,把 tomcat 換成 undertow,這個(gè)性能在 Jmeter 的壓測(cè)下,undertow 比 tomcat 高一倍第一步,pom 修改去除tomcat

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</artifactId>
  <exclusions>
    <exclusion>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-tomcat</artifactId>
    </exclusion>
  </exclusions>
</dependency>
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-undertow</artifactId>
</dependency>

第二步,配置

server:
 undertow:
  max-http-post-size: 0
# 設(shè)置IO線程數(shù), 它主要執(zhí)行非阻塞的任務(wù),它們會(huì)負(fù)責(zé)多個(gè)連接, 默認(rèn)設(shè)置每個(gè)CPU核心一個(gè)線程,數(shù)量和CPU 內(nèi)核數(shù)目一樣即可
  io-threads: 4
# 阻塞任務(wù)線程池, 當(dāng)執(zhí)行類(lèi)似servlet請(qǐng)求阻塞操作, undertow會(huì)從這個(gè)線程池中取得線程,它的值設(shè)置取決于系統(tǒng)的負(fù)載 io-threads*8
  worker-threads: 32
# 以下的配置會(huì)影響buffer,這些buffer會(huì)用于服務(wù)器連接的IO操作,有點(diǎn)類(lèi)似netty的池化內(nèi)存管理
# 每塊buffer的空間大小,越小的空間被利用越充分
  buffer-size: 1024
# 每個(gè)區(qū)分配的buffer數(shù)量 , 所以pool的大小是buffer-size * buffers-per-region
#  buffers-per-region: 1024 # 這個(gè)參數(shù)不需要寫(xiě)了
# 是否分配的直接內(nèi)存
  direct-buffers: true

2、替換 HTTPClient

第一步,加依賴

<dependency>
  <groupId>io.github.openfeign</groupId>
  <artifactId>feign-httpclient</artifactId>
</dependency>

第二部,在 application.yml或者 bootstrap.yml 里面配置

# feign配置
feign:
 hystrix:
  # 在feign中開(kāi)啟hystrix功能,默認(rèn)情況下feign不開(kāi)啟hystrix功能
  enabled: true
 ## 配置httpclient線程池
 httpclient:
  enabled: true
 okhttp:
  enabled: false

第三步,配置 HTTPClient Bean

import java.util.Timer;
import java.util.TimerTask;
import java.util.concurrent.TimeUnit;

import org.apache.http.client.HttpClient;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.impl.client.DefaultConnectionKeepAliveStrategy;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class HttpPool {

  @Bean
  public HttpClient httpClient(){
    System.out.println("===== Apache httpclient 初始化連接池開(kāi)始===" );
    // 生成默認(rèn)請(qǐng)求配置
    RequestConfig.Builder requestConfigBuilder = RequestConfig.custom();
    // 超時(shí)時(shí)間
    requestConfigBuilder.setSocketTimeout(5 * 1000);
    // 連接時(shí)間
    requestConfigBuilder.setConnectTimeout(5 * 1000);
    RequestConfig defaultRequestConfig = requestConfigBuilder.build();
    // 連接池配置
    // 長(zhǎng)連接保持30秒
    final PoolingHttpClientConnectionManager pollingConnectionManager = new PoolingHttpClientConnectionManager(30, TimeUnit.MILLISECONDS);
    // 總連接數(shù)
    pollingConnectionManager.setMaxTotal(1000);
    // 同路由的并發(fā)數(shù)
    pollingConnectionManager.setDefaultMaxPerRoute(100);

    // httpclient 配置
    HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
    // 保持長(zhǎng)連接配置,需要在頭添加Keep-Alive
    httpClientBuilder.setKeepAliveStrategy(new DefaultConnectionKeepAliveStrategy());
    httpClientBuilder.setConnectionManager(pollingConnectionManager);
    httpClientBuilder.setDefaultRequestConfig(defaultRequestConfig);
    HttpClient client = httpClientBuilder.build();

    // 啟動(dòng)定時(shí)器,定時(shí)回收過(guò)期的連接
    Timer timer = new Timer();
    timer.schedule(new TimerTask() {
      @Override
      public void run() {
        System.out.println("=====closeIdleConnections===");
        pollingConnectionManager.closeExpiredConnections();
        pollingConnectionManager.closeIdleConnections(5, TimeUnit.SECONDS);
      }
    }, 10 * 1000, 5 * 1000);
    System.out.println("===== Apache httpclient 初始化連接池完畢===");

    return client;
  }
}

3、配置 Hystrix

第一步,依賴

<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-hystrix</artifactId>
</dependency>

第二步,配置

# 配置hystrix的參數(shù)
hystrix:
 threadpool:
  # default: 默認(rèn)參數(shù),作用的所有的hystrix的客戶端,如果需要對(duì)某個(gè)具體的接口,可以寫(xiě)接口 方法名稱
  default:
   coreSize: 500
 command:
  default:
   fallback:
    # 是否開(kāi)啟回退方法
    enabled: true
   execution:
    isolation:
     thread:
      timeoutInMilliseconds: 30000 #缺省為1000

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 老生常談spring的事務(wù)傳播機(jī)制

    老生常談spring的事務(wù)傳播機(jī)制

    這篇文章主要介紹了spring的事務(wù)傳播機(jī)制,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Javafx簡(jiǎn)單實(shí)現(xiàn)【我的電腦資源管理器】效果

    Javafx簡(jiǎn)單實(shí)現(xiàn)【我的電腦資源管理器】效果

    這篇文章主要介紹了Javafx簡(jiǎn)單實(shí)現(xiàn)【我的電腦資源管理器】效果,涉及Javafx操作系統(tǒng)文件模擬資源管理器的實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-09-09
  • Jenkins遷移job插件Job Import Plugin流程詳解

    Jenkins遷移job插件Job Import Plugin流程詳解

    這篇文章主要介紹了Jenkins遷移job插件Job Import Plugin流程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • Java?中不全部使用?Static?方法的理由

    Java?中不全部使用?Static?方法的理由

    這篇文章主要介紹了Java?中不全部使用?Static?方法的理由,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-08-08
  • MySql多表查詢 事務(wù)及DCL

    MySql多表查詢 事務(wù)及DCL

    這篇文章主要介紹了MySql多表查詢 、事務(wù)、DCL的相關(guān)資料,需要的朋友可以參考下面文章內(nèi)容
    2021-09-09
  • Java多線程及分布式爬蟲(chóng)架構(gòu)原理解析

    Java多線程及分布式爬蟲(chóng)架構(gòu)原理解析

    這篇文章主要介紹了Java多線程及分布式爬蟲(chóng)架構(gòu)原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • Java操作MongoDB模糊查詢和分頁(yè)查詢

    Java操作MongoDB模糊查詢和分頁(yè)查詢

    這篇文章主要介紹了Java操作MongoDB模糊查詢和分頁(yè)查詢的相關(guān)資料,需要的朋友可以參考下
    2016-04-04
  • 如何解決Spring的UnsatisfiedDependencyException異常問(wèn)題

    如何解決Spring的UnsatisfiedDependencyException異常問(wèn)題

    這篇文章主要介紹了如何解決Spring的UnsatisfiedDependencyException異常問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • spring data jpa使用詳解(推薦)

    spring data jpa使用詳解(推薦)

    這篇文章主要介紹了spring data jpa使用詳解(推薦),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • Java中SpringBoot的TCC事務(wù)詳解

    Java中SpringBoot的TCC事務(wù)詳解

    這篇文章主要介紹了Java中SpringBoot的TCC事務(wù)詳解,近年來(lái),隨著微服務(wù)架構(gòu)的普及,TCC?事務(wù)成為了一種非常流行的分布式事務(wù)解決方案,在?Spring?Boot?中,我們可以很容易地使用?TCC?事務(wù)來(lái)管理分布式事務(wù),需要的朋友可以參考下
    2023-07-07

最新評(píng)論

双牌县| 石泉县| 苍南县| 甘德县| 宁德市| 页游| 连云港市| 观塘区| 霍州市| 彩票| 揭东县| 临泽县| 唐山市| 泰来县| 化德县| 牟定县| 定日县| 潮安县| 印江| 保康县| 厦门市| 平武县| 遂川县| 中山市| 宣武区| 平舆县| 镇赉县| 沙坪坝区| 金湖县| 德州市| 德钦县| 达州市| 青神县| 福海县| 阜城县| 柘城县| 郴州市| 米泉市| 榆林市| 瑞安市| 偃师市|