Kinesis基礎知識及優化指導

2022-08-24 14:36:11 字數 1455 閱讀 1896

1、資料存放

1)每個putrecords請求最多可支援500條記錄。

2)請求中的每條記錄可以大到1 mib,整個請求的最大限制為5 mib,包括分割槽鍵。

3)每個分片可以支援每秒最多1,000條記錄的寫入,最大資料寫入總量為每秒1 mib。

2、資料處理

1)每個分片均提供 2 mib/秒的讀取吞吐量。

2)每個分片每秒可支援多達 5 個讀取事務。每個讀取事務可提供多達 10,000 個記錄,每個事務的上限為 10 mib。

3)每個分片可以通過 getrecords 支援每秒 2 mib 的最大總資料讀取速率。如果對 getrecords 的呼叫返回 10 mib,則在接下來的五秒內發出的後續呼叫將會引發異常。因4)此將 idletimebetweenreadsinmillis 屬性設定為少於 200ms 可能導致您的應用程式觀察到 provisionedthroughputexceededexception 異常。

5)在使用 kcl 時,您應確保例項的數量不超過分片的數量(故障待機除外)。每個分片正好由乙個 kcl 工作程式處理並且正好有乙個對應的記錄處理器,因此您永遠不需要多個例項來處理乙個分片。但是,乙個工作程式可處理任意數量的分片,因此分片的數量超過例項的數量沒有關係。

3、使用者應用程式的讀取速率比預期的慢,讀取吞吐量低於預期的最常見原因如下:

1)多個使用者應用程式的總讀取量超過每個分片的限制。有關更多資訊,請參閱 kinesis data streams 限制。在這種情況下,請增加 kinesis data stream 中的分片數。

2)指定每個呼叫的最大 getrecords 數的 limit 可能已配置為較低的值。如果您正在使用 kcl,您可能已經使用乙個較低的 maxrecords 屬性值配置了工作程式。一般來說,我們推薦對此屬性使用系統預設值。

3)出於很多可能的原因,您的 processrecords 呼叫內的邏輯花費的時間可能超過預期;該邏輯可能是 cpu 使用率高、i/o 阻止或同步出現瓶頸。要測試是否如此,請對空的記錄處理器進行測試執行並比較讀取吞吐量。有關如何跟蹤傳入資料的資訊,請參閱重新分片、擴充套件和並行處理。

5、要擴充套件您的應用程式中的處理,您應測試以下方法的組合:

1)增加例項大小(因為所有記錄處理器都在程序內並行執行)

2)增加例項的數量,最多為開放分片的最大數量(因為分片可以單獨處理)

3)增加分片的數量(這會提高並行機制的級別)

6、其他建議

1)建議針對每個應用程式每秒輪詢每個分片一次。這使您能夠具有並行處理流的多個使用者應用程式,而不會達到每秒 5 次 getrecords 呼叫的 amazon kinesis data streams 限制。流的吞吐量在分片級別進行配置。每個分片具有乙個 最多 每秒 5 次交易 可用於讀取,最多可達的最大總資料讀取速率為 每秒 2 mb 的讀取吞吐量。如果您發現您的應用程式一直受到限制,則應考慮增加流的分片的數量。

2)若要處理大批量的資料,降低您的應用程式中的網路和其他下游延遲時往往更高效。

凸優化基礎知識

一.凸函式相關定義 1.首先定義凸集,如果x,y 屬於某個集合 c,並且所有的 也屬於c,那麼c 為乙個凸集 2.進一步,如果乙個函式其定義域是凸集,並且 則該函式為凸函式。上述條件還能推出更一般的結果,3.如果函式有二階導數,那麼如果函式二階導數為正,或者對於多元函式,hessian 矩陣半正定則...

SEO優化基礎知識

很多人忽略了標點符號對爬蟲的重要性,爬蟲並不是對所有標點符號都爬取,下面列舉幾個對關鍵字分隔有幫助的符號。1.1 逗號 千萬千萬要使用英文的逗號,而不是中文的逗號。英文逗號是作為詞與詞之間的分隔符,而中文逗號則不是分隔符,搜尋引擎會把含有中文逗號的看作乙個整體。1.2 空格 空格在英文裡面能起到分隔...

DTU原理及基礎知識

現場採集點 現場採集點的使用者串列埠裝置 可以是各種儀表 plc 微控制器 pc等 通過rs232或rs485 rs422介面與gprs dtu終端相連,使用者串列埠裝置傳送的資料通過gprs dtu終端的內部嵌入式處理器對資料進行網路協議封裝後通過gprs無線網路傳送到資料中心。監控中心 a 公網...