![](/img/trans.png)
[英]What'd the behaviour be when 2 lambdas has the same kinesis stream?
[英]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.