因此,我們正在爲我們的應用程序一個通訊系統,該系統必須發送20K-40K的電子郵件多達每天數次能力。
偏好的工具:
- 亞馬遜SES - 定價和可擴展性
- Azure的功能 - 無服務器計算髮送電子郵件
亞馬遜SES的侷限性:
- 亞馬遜SES節流具有最大發送速率 - 亞馬遜SES節流通過施加最大發送速率通過其服務發送。現在,出於沙箱SES環境,我們的容量是每秒14封電子郵件,每天有50K封電子郵件。但是這個限制可以通過支持票證來增加。
限制Azure的功能:
在一個消費計劃,有沒有辦法來限制其規模爲您的Azure的功能的多少實例執行。目前,縮放由Azure內部處理,因此該功能可以在幾個到幾百個實例之間執行。
從閱讀關於Azure函數的其他文章,Azure函數似乎有一個「熱身期」,這意味着函數可能無法在通過記錄的觸發器之一觸發時立即執行。 Azure的功能
限制與SES:
明顯的問題是亞馬遜SES節流發送從Azure的功能,電子郵件,因爲Azure的功能的比例執行發送一封電子郵件會遠高於SES允許的發送速率。
由於Azure函數消息的「預熱」期可能最終會堆積在一個隊列中,然後Azure函數實際開始按比例處理它們併發出電子郵件,因此很有可能點擊發送/速率限制。
問:
- 我們如何來利用通過Azure的功能發送電子郵件,同時在X電子郵件/ SES的第二個限制仍然?有沒有辦法限制Azure功能每次可以執行多少次?那麼就讓我們說我們不希望每秒鐘運行超過30個Azure函數實例?
其他的想法:
亞馬遜SES可能不喜歡爲客戶SES的持續限制,如果客戶實現不斷衝擊了該節流限制。亞馬遜SES人,請你評論?
Azure函數 - 根據文檔,消費計劃中的Azure函數的擴展在內部處理。但是沒有辦法在縮放上加上手動「上限」嗎?從客戶的角度來看,這似乎是一個常見的要求。 問題不在於Azure函數無法處理負載,問題是系統中與Azure函數接口的其他組件無法在Azure函數可以處理的大規模負載中處理負載。
謝謝你的幫助。
這是真的會成爲一個定製系統,並與我們的CMS緊密集成。所以我們不想依賴外部組件。 「數十億的電子郵件」聽起來非常吸引人......再次,亞馬遜SES會扼殺你。我們也是一個.NET/Azure商店,寧願只通過.NET API與其他雲提供商合作。謝謝你的建議。 – CloudDev