2015-07-13 66 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