首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kinesis shard具有多个生产者

Kinesis shard具有多个生产者
EN

Stack Overflow用户
提问于 2016-09-22 20:06:41
回答 1查看 783关注 0票数 1

我需要从大量的数据源(例如手机)收集数据。例如,1000部手机,每部手机每20分钟上传一批1MB。我正在考虑使用具有单个分片的Kinesis流来摄取数据(总吞吐量大约为1MB/s)。让单个手机直接访问Kinesis API是否有意义,或者我是否应该将自己的前端(例如,web服务器)放在前面?在做出此决定时,需要牢记的主要限制/考虑因素是什么?

备注:使用亚马逊网络服务IoT基础设施的替代方案成本要高得多

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-07 06:23:11

您应该有一个从客户端接收数据并将其发送到Kinesis的web服务。此web服务器可以使用Kinesis Producer Library (KPL),该库在邮件传送速率、超时、策略重试和可伸缩性方面提供最佳性能。KPL可以创建许多工作者,并且可以进行调整以优化消息速率,并且不会超过Kinesys分片设置的写限制。

在性能、维护成本和交付方面,让每个向kinesis发送数据的客户端都可能是一种过度的杀伤力。如果客户端开始以高速率流量发送数据,会发生什么情况?分片有写操作速率限制(最高1000条记录/秒,数据写入速率最高1MB/s)。一个“侵略性”的客户端可能会产生不稳定的流量,使一个分片暂时不响应,并阻止发送本应存储在同一分片中的记录的所有其他客户端。

此外,考虑到超过数千个客户的交付成本。如果您想要更改流名称,会发生什么?或者更改访问or /密钥?或者只是从kinesis切换到kafka?您必须管理数千个客户端的更新。

使用web服务器,您可以隐藏复杂性,并使任何更改对客户端透明。您可以考虑直接在EC2中运行web服务。让生产者直接在AWS中使用应该可以减少网络延迟。此外,您还可以利用AWS提供的所有可扩展性/弹性/容错功能。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39638615

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档