我正在構建一個處理大量圖像的應用程序,我們需要處理每個圖像以應用各種轉換,例如縮放/調整大小,過濾器等。我應該如何構建它以便可以像我們一樣擴展成長,我不需要經歷像Instagram和其他人不得不做的成長的痛苦?什麼是構建可執行大量圖像處理的可伸縮應用程序的好方法?
順便說一句,我們現在使用ImageMagick處理圖像。
我正在構建一個處理大量圖像的應用程序,我們需要處理每個圖像以應用各種轉換,例如縮放/調整大小,過濾器等。我應該如何構建它以便可以像我們一樣擴展成長,我不需要經歷像Instagram和其他人不得不做的成長的痛苦?什麼是構建可執行大量圖像處理的可伸縮應用程序的好方法?
順便說一句,我們現在使用ImageMagick處理圖像。
當人們像Instagram一樣快速成長時,每個人都會遇到問題。
我一般建議是使用一個工作隊列系統分發到N個工人圖像的處理,使您可以輕鬆地添加更多的工人拉作業從隊列中更快。
如果你使用這個存儲像amazon s3那樣的圖像,並且可以在ec2上爲更多的工作人員(比如使用puppet,chef,scalr等來啓動更多的工作箱)添加更多的服務器,你應該能夠很好地縮放。
我在另一個線程回答這個問題太,但這裏要做到這一點,而無需擔心縮放方法之一:
你可以使用一個服務像IronWorker做圖像處理在後臺,並採取負載關閉你的服務器。因爲它是一個服務,你不需要任何管理或設置其他任何東西了,並隨着你的成長,所以如果你可以用它做一個形象,你可以擴展到數百萬的圖像毫不費力將與您縮放。
下面是關於如何做一堆圖像處理轉換的文章: