Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 微服务和AWS物联网_Amazon Web Services_Amazon Ec2_Aws Lambda_Microservices_Aws Iot - Fatal编程技术网

Amazon web services 微服务和AWS物联网

Amazon web services 微服务和AWS物联网,amazon-web-services,amazon-ec2,aws-lambda,microservices,aws-iot,Amazon Web Services,Amazon Ec2,Aws Lambda,Microservices,Aws Iot,我计划将AWS物联网用于我的现场设备,以连接到我的云微服务。 这里的想法是,这些设备将发布到微服务将订阅的主题。微服务将发布设备订阅的主题 因此,例如,有两个装置d1和d2。以及2个微服务ms1和ms2。 d1将订阅设备/d1主题 d2将订阅设备/d2主题 以及, ms1将订阅服务/ms1主题 ms2将订阅服务/ms2主题 当d1希望向ms1发送信息时,d1将发布到服务/ms1主题,并将信息发送到ms2,d1将发布到服务/ms2主题等。 类似地,当ms1希望向d1发送信息时,ms1将发布到设备/

我计划将AWS物联网用于我的现场设备,以连接到我的云微服务。 这里的想法是,这些设备将发布到微服务将订阅的主题。微服务将发布设备订阅的主题

因此,例如,有两个装置d1和d2。以及2个微服务ms1和ms2。 d1将订阅设备/d1主题 d2将订阅设备/d2主题 以及, ms1将订阅服务/ms1主题 ms2将订阅服务/ms2主题

当d1希望向ms1发送信息时,d1将发布到服务/ms1主题,并将信息发送到ms2,d1将发布到服务/ms2主题等。 类似地,当ms1希望向d1发送信息时,ms1将发布到设备/d1主题等 我附上了一张关于我如何想象它的图片

我关心的是,一个微服务可以同时运行多个实例。因此,ms1的所有实例都将订阅服务/ms1主题。当设备将消息发布到该主题时,我们如何确保只有一个实例处理该消息,而不是多个实例? 我知道处理这个问题的方法之一是使用Lambda,其中消息被传递给Lambda,Lambda可以在微服务上调用restapi。然而,Lambda可能会限制我想要达到的规模(100000台设备,每小时1000条消息)


因此,我想看看是否有更好的方法。我建议花点时间熟悉AWS物联网。您提到使用Lambda作为中介服务,但正确地指出了可能存在的问题。对于您的用例来说,两个更好的服务是Kinesis和SQS。您可以将IoT主题配置为向Kinesis流或SQS队列发送消息,然后您的微服务可以订阅这些主题,以便它们可以单独处理消息,而不是每个微服务实例都接收每个消息的副本