對於我近期實時處理大量數據的項目,我有一個架構困境。因此,這裏是目前的架構圖:使用kinesis流和流水線對流數據進行排序
這裏是我的想法的解釋,這使我那張照片:
當API網關接收它把數據流中的請求(這是因爲我的應用 - 「射後不理的性質)That's how I came up to that conclusion,輸入數據在此基礎上保證了我正確的順序一個特定的請求屬性碎片分離。
然後,我有哪管它一個lambda用於驗證輸入和異常檢測,這是一種抽象,可以保持數據的下一層的數據清潔 - 數據豐富。所以這個lambda將數據發送到kinesis firehose,因爲它可以備份「原始」數據(我肯定希望擁有這些數據),並且還附加了一個轉換lambda,它將進行富集 - 因此我不會在意保存數據在S3中,它會從盒子裏出來。所以一切都很好,直到我需要一個保存的接收數據排序的時候(濃縮器正在進行會話化),這在流水線中丟失了,因爲沒有數據分離,因爲它在kinesis流中。
所以我唯一能想到的就是在第一個lambda中移動分割,這將破壞我的抽象,因爲它將開始關注數據豐富,而更大的缺點是備份數據將豐富數據在裏面,這也是打破了架構。而所有這一切都是因爲失敗的分裂概念而發生的。
那麼有人可以想到這個問題的解決方案,而不會失去aws爲我們提供的開箱即用功能嗎?