集羣環境下,利用多實例處理複雜的單一請求

1 集羣環境下,利用多實例處理複雜的單一請求

	我們開發之中常常遇到這樣的場景,單一的一個請求處理某一批數據,
	或者對某一批數據進行計算,例如定時任務需要批量處理某些數據,
	那麼定時任務的job服務,調用對應服務的時候,由網關分配了某一個實例進行處理,
	這種場景,如果用普通的開發方式會有一些弊端,無法合理的利用服務器資源,
	出現某一個實例一直高負荷運轉,其他實例空閒的情況,
	對請求的處理也花了更多的執行時間。
	
	## 2 思路:
			利用生產者消費者的方式,單一的請求負責生產數據,
			獲取到需要計算的資源放到共享隊列裏,利用每個服務實例實現多消費者去消費。
	## 2 方案:
			定時任務調用的接口只負責將待處理的數據放到數據庫,或者redis,
			每個實例啓動對應的監控線程或線程池,檢測到數據,
			則加鎖取一部分數據(根據計算機的處理能力)進行處理,處理完之後再次檢測,
			如果有數據則繼續獲取進行處理。獲取數據的同時修改當前數據的狀態,
			防止其他實例再次獲取,引起重複消費。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章