2015-07-13 65 views
1

我想弄清楚可以將數據寫入kinesis的託管服務。用這種方式我需要我的消息應該至少有一個交付kinesis流。 是否推薦或使用SQS寫入Kinesis是一個好主意。我正在尋找可以水平擴展的解決方案。將數據寫入Amazon Kinesis的推薦方式

+0

看看這個線程:http://stackoverflow.com/questions/24343445/how-to-put-data-from-server-to-kinesis-stream/26840091#26840091 – az3

回答

4

有多種選擇寫室壁運動,根據你的經驗和環境。

最海峽前進的方法是直接調用put記錄API。您可以在put-record的時間寫出一條記錄,或者與put-records一起批量記錄。這些API調用由各種SDK的支持(Java.NETphprubyjavascriptpython ..)。

由於室壁運動的最有用的一個用例是從數百萬在他們的移動設備或瀏覽器的用戶收集信息,也有在瀏覽器適用於iOS,Android和JavaScript的專用移動SDK。見這裏:http://aws.amazon.com/mobile/sdk/。您可以使用這些SDK去除Kinesis之外的攝取基礎設施。

一些其他的選擇是使用像FluentD工具,這是非常流行的航運日誌。看到這裏的連接器,可以讓你的生活更輕鬆:那也加入到聚集許多事件一起到一個單一的事件來優化碎片的能力發揮到極致的能力https://github.com/awslabs/aws-fluent-plugin-kinesis

最近的另一個選擇是使用Kinesis Producer Library(KPL)。它也允許異步由生產者寫入Kinesis,並且KPL將處理阻塞,退役和其他引起延遲的方法。

log4j的追加程序也直接寫日誌事件與開發商的側最小的努力,室壁運動的流行方式。這裏看到更多的細節:https://github.com/awslabs/kinesis-log4j-appender

+0

但是,針對node js的AWS SDK太重,無法放入瀏覽器(1.5Mb)。沒有更好的方法將瀏覽器的記錄直接發送到kinesis嗎? – Dienow

+1

您可以配置AWS SDK,你需要更小的使用AWS文檔中的說明,使部分:https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/building -sdk-for-browsers.html – Guy

+0

謝謝,我已經看到這個選項,即使我只在版本中包含kinesis,我也會得到200k的縮小代碼,這太多了。我會說額外重量10k是我可以忍受的極限。我(可能是天真的)期望是發送簡單的http請求應該足夠了 – Dienow