2017-04-03 163 views
2

是否可以將AWS Lambda與Apache Kafka集成? 我想把一個消費者放在一個lambda函數中。當消費者收到消息時,執行lambda函數。Kafka + AWS lambda

+0

您真的應該考慮AWS Kinesis,它與Kafka相當,並且本地與Lambda集成。 – wanghq

回答

2

是的,這是很可能在AWS lambda函數卡夫卡消費者。

但是請注意,您將無法調用使用某種形式的通知拉姆達。您將不得不輪詢卡夫卡話題。而最簡單的方法可以是使用計劃的Lamda

3

這裏是AWS article on scheduled lambdas

由於您的Kafka安裝將在VPC中運行,因此最佳做法是將您的Lambda配置爲在VPC內運行 - 這將簡化運行Kafka的EC2實例的安全組配置。

Here是配置lambda表達式在一個VPC運行AWS博客文章。

4

繼續阿拉法特的觀點。我們已經成功構建了一個使用AWS Lambdas從卡夫卡消費的基礎設施。以下是一些疑難問題:

  • 確保在消費時持續批量和提交。
  • 如果要將批次存儲到s3,請確保清理文件描述符。
  • 如果您要將批次轉發到其他服務,請確保清理變量。 AWS Lambda中的變量緩存可能導致內存溢出。
  • 一個好主意是檢查你有多少時間留給而從拉姆達的context對象,並給自己一些迴旋餘地做可能不會被讀取到,除非你一個文件你在消費填充緩衝東西致電close()

我們使用的是Apache氣流進行調度。我聽說Cloudwatch也可以做到這一點。