2016-04-20 36 views
0

我有一個使用Spring啓動構建的測試微服務應用程序,我正在進行負載測試。在這樣做的過程中,我似乎遇到了阻止RestClient在服務之間調用的問題。我沒有做任何配置更改,所以線程池等都使用默認值。我所有的測試都在AWS微型實例上,並使用loader.io來完成初始客戶端請求。在Spring Boot中使用RestClient時的併發連接限制

的應用程序在不同的服務器上運行

  1. 服務返回最近的用戶帖子的列表中有兩個服務(響應無負荷爲340mS)
  2. 服務的任務用戶標識的列表,並返回檔案信息(響應無負載是(80毫秒)

的服務#1的執行過程中,存在於服務#2進行的呼叫,美化細節有關發佈用戶,包括如果我跟隨他們等

即使在負載情況下,配置文件服務能夠在大約50ms內響應,緩存仍在服務內。如果我將post服務的內部請求移除到配置文件服務,它會保持在400ms左右。

我在觀察的是,負載下的這些服務之間的往返時間調用隨着併發請求數量的增加而線性增加。在相同的負載條件下(80tps),服務間通話的響應時間可達4s左右。

的代碼使用一個簡單的RestTemplate服務之間的調用,例如:

 RestTemplate restTemplate = new RestTemplate(); 
     HttpHeaders headers = new HttpHeaders(); 
     HttpEntity<String> httpEntity = new HttpEntity<String>(headers); 
     responseVal = restTemplate.exchange(url, HttpMethod.GET, httpEntity,String.class); 

是否有可服務之間在春季進行,如果是併發請求數的任何限制,這怎麼可能增加?

+0

爲什麼會有任意限制的請求?您是否對應用程序進行了剖析,以查看時間的使用情況? – Kayaman

回答

0

調用服務正在使用@Transactional註釋,然後強制GET按順序處理。刪除了這一切,現在所有的運行都很好

相關問題