我正在尝试使用上面提到的技术设计一个IoT平台。如果有人能评论这个架构,我会很高兴,如果它是好的和可伸缩的!
我通过mqtt获取IoT传感器数据,我将通过spark streaming接收这些数据(有一个用于spark streaming的mqtt连接器,它可以做到这一点)。我只需要订阅主题,并且有一个第三方服务器将IoT数据发布到主题。
然后我解析数据,并将其插入到亚马逊网络服务DynamoDB中。是的,整个安装程序将在AWS上运行。
根据IoT用例,我将来可能需要处理/转换数据,所以我认为spark可能会很有用。我也听说spark流媒体的速度很快。
这是一个简单的概述,我不确定它是否是一个好的架构。使用spark streaming会不会有点过火?是否有其他方法可以将从mqtt收到的数据直接存储在DynamoDB上?
发布于 2017-06-24 08:12:34
我不能说明您的组件是否会产生可伸缩的体系结构,因为您没有详细说明如何扩展它们,也没有详细说明这种系统应该处理的估计负载,或者负载是否会达到峰值。
如果你谈论的是性能方面的可扩展性,你也应该考虑价格方面的可扩展性,这可能对你的项目很重要。
例如,DynamoDB是一个可伸缩的NoSQL数据库服务,它以非常有效的价格提供弹性性能。我对Apache Spark了解不多,即使它被设计成在规模上非常有效,您将如何分发传入的数据?您是否会在EC2上托管多个实例并使用自动伸缩来管理实例?
我的建议是,根据组件来隔离您的需求,以便进行成功的分析。总结您的语句:
DynamoDB中,我想您需要对这些数据执行一些分析,或者以接近实时的方式,或者以批处理的方式,以便从您的数据中构建价值。我的建议是在AWS中使用无服务器的托管服务,这样你就可以只为你真正使用的东西付费,忘记维护或可伸缩性,专注于你的项目。
DynamoDB的本机连接器,这将允许您将经过丰富或转换的数据插入到表中。这样做的好处是,您可以组装组件并使用它们,这意味着您在开始时不需要全功能堆栈,但仍然可以灵活地在未来进行更改。
亚马逊网络服务IoT服务概述。

https://stackoverflow.com/questions/44716773
复制相似问题