分布式服務呼叫問題處理總結

2021-09-21 18:01:31 字數 1460 閱讀 7613

面試:你懂什麼是分布式系統嗎?redis分布式鎖都不會?>>>

業務特點:

運營push傳送數量較大,傳送時間密集,同一時間段呼叫baixin傳送push的數量幾十萬上百萬不等。

問題描述:

之前我們的push傳送使用兩個專案實現,分別是:

在運營push業務裡,push專案使用執行緒數量為200的固定執行緒池傳送push資訊給baixin專案,傳送很快,五分鐘傳送五十萬左右的push,但是使用者收到push資訊很慢,查詢baixin專案的日誌發現,大量push資訊阻塞在了baixin專案的執行緒池佇列中。

原因——執行緒池太小

下游baixin專案的傳送push資訊執行緒池太小。

解決辦法——擴大執行緒池:

將baixin專案執行緒池由100擴為500後,執行緒池處理push傳送的速度明顯加快,執行緒池佇列堆積減少。

歷史解決辦法——兩個簡單限流措施:

經驗總結:

分布式環境中,乙個應用呼叫另乙個應用同時大批量集中處理任務時,要考慮另乙個應用的處理能力,在採用執行緒池提高系統併發能力的同時,必要時候採取限流等措施保證其他應用的可用性。

問題描述:

內網測試傳送十萬動態push,速度突然變慢,主要是磁碟io影響。檢視日誌發現,push呼叫pushcenter正常,但是會出現sockettimeoutexception響應異常,傳送速度很慢,二十分鐘傳送了兩萬條資料,正常10分鐘處理十萬資料。

原因:

pushcenter所在伺服器的磁碟滿了。

解決辦法:

1、top命令檢視系統負載:push伺服器負載正常,pushcenter伺服器5、10、15分鐘系統負載數值在2.0左右,cpu空閒90%,記憶體使用不大。

2、查詢最大檔案:檢視pushcenter伺服器磁碟空間,發現磁碟空間已滿:

df -h
懷疑是日誌檔案導致的,接著去日誌目錄查詢最大的日誌檔案:

找到最大的日誌檔案後,使用rm命令進行刪除。push呼叫pushcenter的速度變快。

經驗總結:

分布式服務呼叫

分布式服務呼叫策略 1.lvs 中間 負載均衡系統做 優點 代價低,可控性強 缺點 流量壓力大 必由之路,雞蛋不在乙個籃子裡 應用 面向c端 2.名稱服務 各呼叫方機器 自己根據策略進行負載均衡 優點 名稱服務不會直接影響功能 減少了中間的頻寬消耗 缺點 公升級較複雜 當拉起一台伺服器,需要把新的i...

分布式架構服務呼叫

和傳統的單體架構相比,分布式多了乙個遠端服務之間的通訊,不管是 soa 還是微服務,他們本 質上都是對於業務服務的提煉和復用。那麼遠端服務之間的呼叫才是實現分布式的關鍵因素 j a 原生 httpurlconnection是基於http協議的,支援get,post,put,delete等各種請求方 ...

分布式之遠端呼叫服務open feign

1.feign是乙個宣告式的web service客戶端。它的出現使開發web service客戶端變得很簡單。使用feign只需要建立乙個介面加上對應的註解,比如 feignclient註解。feign有可插拔的註解,包括feign註解和jax rs註解。feign也支援編碼器和解碼器,sprin...