Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.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 使用Mandrill邮件服务排队(SQS)_Amazon Web Services_Aws Lambda_Amazon Sqs - Fatal编程技术网

Amazon web services 使用Mandrill邮件服务排队(SQS)

Amazon web services 使用Mandrill邮件服务排队(SQS),amazon-web-services,aws-lambda,amazon-sqs,Amazon Web Services,Aws Lambda,Amazon Sqs,我想创建一个包装mandrill api的mailer微服务,这样我的所有服务都不需要知道我们的mandrill api密钥。理想情况下,我会有一个消息队列,在向队列添加消息时,lambda会向mandrill发送一个电话来发送电子邮件 然而,这种方法存在两个问题 SQS没有lambdas的触发器 这在本质上是事务性的,我希望避免发送电子邮件和lambda超时,然后才能从队列中删除消息,这样就不会再次发送消息 这里的问题是,每次readMessage呼叫,我最多可以收到10条消息。为什么会这样?

我想创建一个包装mandrill api的mailer微服务,这样我的所有服务都不需要知道我们的mandrill api密钥。理想情况下,我会有一个消息队列,在向队列添加消息时,lambda会向mandrill发送一个电话来发送电子邮件

然而,这种方法存在两个问题

  • SQS没有lambdas的触发器
  • 这在本质上是事务性的,我希望避免发送电子邮件和lambda超时,然后才能从队列中删除消息,这样就不会再次发送消息 这里的问题是,每次
    readMessage
    呼叫,我最多可以收到10条消息。为什么会这样?我想他们希望人们使用SES来实现这一点,但什么是获得这一功能的好方法呢?希望这是异步的,不需要附加到我们的API,这样我们就可以避免对请求进行身份验证


    此服务的良好体系结构解决方案是什么?

    “这里的问题是,每次readMessage调用最多可以收到10条消息。为什么会这样?”为什么会这样?其思想是,如果获取少量消息,则处理它们,然后将它们从队列中删除。如果速度(messages/sec)是一个优先事项,那么几乎可以肯定的是,您可以通过拥有多个消费者来解决这一问题——每个消费者都会自动获取一组当前未在传输中的消息(即,当前正在处理另一个消费者)。在这样的应用程序中,您可能只希望一次获取1个,而不是10个,处理它,然后从队列中删除。还要注意的是,AWS承诺未来将进行SQS+Lambda集成,但没有提供任何日期。