簡體   English   中英

如何讓超過5個Lambda消耗相同的Kinesis流?

[英]How can I have more than 5 Lambdas consume the same Kinesis stream?

我希望有一個帶有許多Lambda使用者的Kinesis流(不同的Lambda函數,而不僅僅是同一個Lambda的許多實例)。

Kinesis的每秒讀取事務數限制為5( docs )。 Lambda函數將每秒輪詢一個分片。

這是否意味着當我向流中添加第六個Lambda使用者時,我應該期望讀取量受到限制?

我知道使用新的增強型扇出功能可以在一個流上實現5個以上的消費者,但是我沒有提到有關此新功能的Lambda函數。 他們只談論KCL2。

取而代之的是,我發現一些較老的文章描述了他們自己的扇出實現,以避免落后於Lambda消費者,例如, 這個 我想知道是否仍然需要這樣做,還是Lambda消費者也可以利用新的增強型扇出功能。

你可以嘗試這樣的事情嗎?

/* in the parent lambda */

var consumers = [
  {
    id: "consumer",
    eventData: someData // stream data inserted here
  }
]

var params = {
  ClientContext: "MyApp", 
  FunctionName: "MyFunction", 
  InvocationType: "Event", 
  LogType: "Tail", 
  Payload:  null,        // <Binary String> 
  Qualifier: "1"
 };

let invoke = () => {
  return new Promise((resolve, reject) => {
    lambda.invoke(params, function(err, data) {
      if (err) reject(err);
      else     resolve(data);
    });
  })
}

invokeArr = []
consumers.map((consumer) => {
  params.Payload = consumer.eventData
  invokeArr.push(invoke)
})

Promise.all(invokeArr).then((data) => console.log('were done'))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM